pcb 4.1.1
An interactive printed circuit board layout editor.
|
00001 00002 /* A Bison parser, made by GNU Bison 2.4.1. */ 00003 00004 /* Skeleton implementation for Bison's Yacc-like parsers in C 00005 00006 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 00007 Free Software Foundation, Inc. 00008 00009 This program is free software: you can redistribute it and/or modify 00010 it under the terms of the GNU General Public License as published by 00011 the Free Software Foundation, either version 3 of the License, or 00012 (at your option) any later version. 00013 00014 This program is distributed in the hope that it will be useful, 00015 but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 GNU General Public License for more details. 00018 00019 You should have received a copy of the GNU General Public License 00020 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 00021 00022 /* As a special exception, you may create a larger work that contains 00023 part or all of the Bison parser skeleton and distribute that work 00024 under terms of your choice, so long as that work isn't itself a 00025 parser generator using the skeleton or a modified version thereof 00026 as a parser skeleton. Alternatively, if you modify or redistribute 00027 the parser skeleton itself, you may (at your option) remove this 00028 special exception, which will cause the skeleton and the resulting 00029 Bison output files to be licensed under the GNU General Public 00030 License without this special exception. 00031 00032 This special exception was added by the Free Software Foundation in 00033 version 2.2 of Bison. */ 00034 00035 /* C LALR(1) parser skeleton written by Richard Stallman, by 00036 simplifying the original so-called "semantic" parser. */ 00037 00038 /* All symbols defined below should begin with yy or YY, to avoid 00039 infringing on user name space. This should be done even for local 00040 variables, as they might otherwise be expanded by user macros. 00041 There are some unavoidable exceptions within include files to 00042 define necessary library symbols; they are noted "INFRINGES ON 00043 USER NAME SPACE" below. */ 00044 00045 /* Identify Bison output. */ 00046 #define YYBISON 1 00047 00048 /* Bison version. */ 00049 #define YYBISON_VERSION "2.4.1" 00050 00051 /* Skeleton name. */ 00052 #define YYSKELETON_NAME "yacc.c" 00053 00054 /* Pure parsers. */ 00055 #define YYPURE 0 00056 00057 /* Push parsers. */ 00058 #define YYPUSH 0 00059 00060 /* Pull parsers. */ 00061 #define YYPULL 1 00062 00063 /* Using locations. */ 00064 #define YYLSP_NEEDED 0 00065 00066 /* Substitute the variable and function names. */ 00067 #define yyparse edifparse 00068 #define yylex ediflex 00069 #define yyerror ediferror 00070 #define yylval ediflval 00071 #define yychar edifchar 00072 #define yydebug edifdebug 00073 #define yynerrs edifnerrs 00074 00075 00076 /* Copy the first part of user declarations. */ 00077 00078 /* Line 189 of yacc.c */ 00079 #line 1 "edif.y" 00080 00081 /* 00082 * PCB Edif parser based heavily on: 00083 * 00084 * Header: edif.y,v 1.18 87/12/07 19:59:49 roger Locked 00085 */ 00086 /************************************************************************ 00087 * * 00088 * edif.y * 00089 * * 00090 * EDIF 2.0.0 parser, Level 0 * 00091 * * 00092 * You are free to copy, distribute, use it, abuse it, make it * 00093 * write bad tracks all over the disk ... or anything else. * 00094 * * 00095 * Your friendly neighborhood Rogue Monster - roger@mips.com * 00096 * * 00097 ************************************************************************/ 00098 #include <stdio.h> 00099 00100 /* for malloc, free, atoi */ 00101 #include <stdlib.h> 00102 00103 /* for strcpy */ 00104 #include <string.h> 00105 00106 #include <ctype.h> 00107 00108 #include "global.h" 00109 #include "data.h" 00110 /* from mymem.h, not include because of the malloc junk */ 00111 LibraryMenuType * GetLibraryMenuMemory (LibraryType *); 00112 LibraryEntryType * GetLibraryEntryMemory (LibraryMenuType *); 00113 00114 /* 00115 * Local definitions. 00116 */ 00117 #define IDENT_LENGTH 255 00118 #define Malloc(s) malloc(s) 00119 #define Free(p) free(p) 00120 #define Getc(s) getc(s) 00121 #define Ungetc(c) ungetc(c,Input) 00122 00123 typedef struct _str_pair 00124 { 00125 char* str1; 00126 char* str2; 00127 struct _str_pair* next; 00128 } str_pair; 00129 00130 typedef struct _pair_list 00131 { 00132 char* name; 00133 str_pair* list; 00134 } pair_list; 00135 00136 str_pair* new_str_pair(char* s1, char* s2) 00137 { 00138 str_pair* ps = (str_pair *)malloc(sizeof(str_pair)); 00139 ps->str1 = s1; 00140 ps->str2 = s2; 00141 ps->next = NULL; 00142 return ps; 00143 } 00144 00145 pair_list* new_pair_list(str_pair* ps) 00146 { 00147 pair_list* pl = (pair_list *)malloc(sizeof(pair_list)); 00148 pl->list = ps; 00149 pl->name = NULL; 00150 return pl; 00151 } 00152 00153 void str_pair_free(str_pair* ps) 00154 { 00155 str_pair* node; 00156 while ( ps ) 00157 { 00158 free(ps->str1); 00159 free(ps->str2); 00160 node = ps; 00161 ps = ps->next; 00162 free(node); 00163 } 00164 } 00165 00166 void pair_list_free(pair_list* pl) 00167 { 00168 str_pair_free(pl->list); 00169 free(pl->name); 00170 free(pl); 00171 } 00172 00173 void define_pcb_net(str_pair* name, pair_list* nodes) 00174 { 00175 int tl; 00176 str_pair* done_node; 00177 str_pair* node; 00178 char* buf; 00179 char* p; 00180 LibraryEntryType *entry; 00181 LibraryMenuType *menu = GetLibraryMenuMemory (&PCB->NetlistLib); 00182 00183 if ( !name->str1 ) 00184 { 00185 /* no net name given, stop now */ 00186 /* if renamed str2 also exists and must be freed */ 00187 if ( name->str2 ) free(name->str2); 00188 free(name); 00189 pair_list_free(nodes); 00190 return; 00191 } 00192 menu->Name = strdup (name->str1); 00193 free(name->str1); 00194 /* if renamed str2 also exists and must be freed */ 00195 if ( name->str2 ) free(name->str2); 00196 free(name); 00197 buf = (char *)malloc(256); 00198 if ( !buf ) 00199 { 00200 /* no memory */ 00201 pair_list_free(nodes); 00202 return; 00203 } 00204 00205 node = nodes->list; 00206 free(nodes->name); 00207 free(nodes); 00208 while ( node ) 00209 { 00210 /* check for node with no instance */ 00211 if ( !node->str1 ) 00212 { 00213 /* toss it and move on */ 00214 free(node->str2); 00215 done_node = node; 00216 node = node->next; 00217 free(done_node); 00218 continue; 00219 } 00220 tl = strlen(node->str1) + strlen(node->str2); 00221 if ( tl + 3 > 256 ) 00222 { 00223 free(buf); 00224 buf = (char *)malloc(tl+3); 00225 if ( !buf ) 00226 { 00227 /* no memory */ 00228 str_pair_free(node); 00229 return; 00230 } 00231 } 00232 strcpy(buf,node->str1); 00233 /* make all upper case, because of PCB funky behaviour */ 00234 p=buf; 00235 while ( *p ) 00236 { 00237 *p = toupper( (int) *p); 00238 p++; 00239 } 00240 /* add dash separating designator from node */ 00241 *(buf+strlen(node->str1)) = '-'; 00242 /* check for the edif number prefix */ 00243 if ( node->str2[0] == '&' ) 00244 { 00245 /* skip number prefix */ 00246 strcpy(buf+strlen(node->str1)+1,node->str2 +1); 00247 } 00248 else 00249 { 00250 strcpy(buf+strlen(node->str1)+1,node->str2); 00251 } 00252 /* free the strings */ 00253 free(node->str1); 00254 free(node->str2); 00255 entry = GetLibraryEntryMemory (menu); 00256 entry->ListEntry = strdup(buf); 00257 done_node = node; 00258 node = node->next; 00259 free(done_node); 00260 } 00261 } 00262 00263 00264 /* forward function declarations */ 00265 static int yylex(void); 00266 static void yyerror(const char *); 00267 static void PopC(void); 00268 00269 00270 /* Line 189 of yacc.c */ 00271 #line 272 "edif.c" 00272 00273 /* Enabling traces. */ 00274 #ifndef YYDEBUG 00275 # define YYDEBUG 0 00276 #endif 00277 00278 /* Enabling verbose error messages. */ 00279 #ifdef YYERROR_VERBOSE 00280 # undef YYERROR_VERBOSE 00281 # define YYERROR_VERBOSE 1 00282 #else 00283 # define YYERROR_VERBOSE 0 00284 #endif 00285 00286 /* Enabling the token table. */ 00287 #ifndef YYTOKEN_TABLE 00288 # define YYTOKEN_TABLE 0 00289 #endif 00290 00291 00292 /* Tokens. */ 00293 #ifndef YYTOKENTYPE 00294 # define YYTOKENTYPE 00295 /* Put the tokens into the symbol table, so that GDB and other debuggers 00296 know about them. */ 00297 enum yytokentype { 00298 EDIF_TOK_IDENT = 258, 00299 EDIF_TOK_INT = 259, 00300 EDIF_TOK_KEYWORD = 260, 00301 EDIF_TOK_STR = 261, 00302 EDIF_TOK_ANGLE = 262, 00303 EDIF_TOK_BEHAVIOR = 263, 00304 EDIF_TOK_CALCULATED = 264, 00305 EDIF_TOK_CAPACITANCE = 265, 00306 EDIF_TOK_CENTERCENTER = 266, 00307 EDIF_TOK_CENTERLEFT = 267, 00308 EDIF_TOK_CENTERRIGHT = 268, 00309 EDIF_TOK_CHARGE = 269, 00310 EDIF_TOK_CONDUCTANCE = 270, 00311 EDIF_TOK_CURRENT = 271, 00312 EDIF_TOK_DISTANCE = 272, 00313 EDIF_TOK_DOCUMENT = 273, 00314 EDIF_TOK_ENERGY = 274, 00315 EDIF_TOK_EXTEND = 275, 00316 EDIF_TOK_FLUX = 276, 00317 EDIF_TOK_FREQUENCY = 277, 00318 EDIF_TOK_GENERIC = 278, 00319 EDIF_TOK_GRAPHIC = 279, 00320 EDIF_TOK_INDUCTANCE = 280, 00321 EDIF_TOK_INOUT = 281, 00322 EDIF_TOK_INPUT = 282, 00323 EDIF_TOK_LOGICMODEL = 283, 00324 EDIF_TOK_LOWERCENTER = 284, 00325 EDIF_TOK_LOWERLEFT = 285, 00326 EDIF_TOK_LOWERRIGHT = 286, 00327 EDIF_TOK_MASKLAYOUT = 287, 00328 EDIF_TOK_MASS = 288, 00329 EDIF_TOK_MEASURED = 289, 00330 EDIF_TOK_MX = 290, 00331 EDIF_TOK_MXR90 = 291, 00332 EDIF_TOK_MY = 292, 00333 EDIF_TOK_MYR90 = 293, 00334 EDIF_TOK_NETLIST = 294, 00335 EDIF_TOK_OUTPUT = 295, 00336 EDIF_TOK_PCBLAYOUT = 296, 00337 EDIF_TOK_POWER = 297, 00338 EDIF_TOK_R0 = 298, 00339 EDIF_TOK_R180 = 299, 00340 EDIF_TOK_R270 = 300, 00341 EDIF_TOK_R90 = 301, 00342 EDIF_TOK_REQUIRED = 302, 00343 EDIF_TOK_RESISTANCE = 303, 00344 EDIF_TOK_RIPPER = 304, 00345 EDIF_TOK_ROUND = 305, 00346 EDIF_TOK_SCHEMATIC = 306, 00347 EDIF_TOK_STRANGER = 307, 00348 EDIF_TOK_SYMBOLIC = 308, 00349 EDIF_TOK_TEMPERATURE = 309, 00350 EDIF_TOK_TIE = 310, 00351 EDIF_TOK_TIME = 311, 00352 EDIF_TOK_TRUNCATE = 312, 00353 EDIF_TOK_UPPERCENTER = 313, 00354 EDIF_TOK_UPPERLEFT = 314, 00355 EDIF_TOK_UPPERRIGHT = 315, 00356 EDIF_TOK_VOLTAGE = 316, 00357 EDIF_TOK_ACLOAD = 317, 00358 EDIF_TOK_AFTER = 318, 00359 EDIF_TOK_ANNOTATE = 319, 00360 EDIF_TOK_APPLY = 320, 00361 EDIF_TOK_ARC = 321, 00362 EDIF_TOK_ARRAY = 322, 00363 EDIF_TOK_ARRAYMACRO = 323, 00364 EDIF_TOK_ARRAYRELATEDINFO = 324, 00365 EDIF_TOK_ARRAYSITE = 325, 00366 EDIF_TOK_ATLEAST = 326, 00367 EDIF_TOK_ATMOST = 327, 00368 EDIF_TOK_AUTHOR = 328, 00369 EDIF_TOK_BASEARRAY = 329, 00370 EDIF_TOK_BECOMES = 330, 00371 EDIF_TOK_BETWEEN = 331, 00372 EDIF_TOK_BOOLEAN = 332, 00373 EDIF_TOK_BOOLEANDISPLAY = 333, 00374 EDIF_TOK_BOOLEANMAP = 334, 00375 EDIF_TOK_BORDERPATTERN = 335, 00376 EDIF_TOK_BORDERWIDTH = 336, 00377 EDIF_TOK_BOUNDINGBOX = 337, 00378 EDIF_TOK_CELL = 338, 00379 EDIF_TOK_CELLREF = 339, 00380 EDIF_TOK_CELLTYPE = 340, 00381 EDIF_TOK_CHANGE = 341, 00382 EDIF_TOK_CIRCLE = 342, 00383 EDIF_TOK_COLOR = 343, 00384 EDIF_TOK_COMMENT = 344, 00385 EDIF_TOK_COMMENTGRAPHICS = 345, 00386 EDIF_TOK_COMPOUND = 346, 00387 EDIF_TOK_CONNECTLOCATION = 347, 00388 EDIF_TOK_CONTENTS = 348, 00389 EDIF_TOK_CORNERTYPE = 349, 00390 EDIF_TOK_CRITICALITY = 350, 00391 EDIF_TOK_CURRENTMAP = 351, 00392 EDIF_TOK_CURVE = 352, 00393 EDIF_TOK_CYCLE = 353, 00394 EDIF_TOK_DATAORIGIN = 354, 00395 EDIF_TOK_DCFANINLOAD = 355, 00396 EDIF_TOK_DCFANOUTLOAD = 356, 00397 EDIF_TOK_DCMAXFANIN = 357, 00398 EDIF_TOK_DCMAXFANOUT = 358, 00399 EDIF_TOK_DELAY = 359, 00400 EDIF_TOK_DELTA = 360, 00401 EDIF_TOK_DERIVATION = 361, 00402 EDIF_TOK_DESIGN = 362, 00403 EDIF_TOK_DESIGNATOR = 363, 00404 EDIF_TOK_DIFFERENCE = 364, 00405 EDIF_TOK_DIRECTION = 365, 00406 EDIF_TOK_DISPLAY = 366, 00407 EDIF_TOK_DOMINATES = 367, 00408 EDIF_TOK_DOT = 368, 00409 EDIF_TOK_DURATION = 369, 00410 EDIF_TOK_E = 370, 00411 EDIF_TOK_EDIF = 371, 00412 EDIF_TOK_EDIFLEVEL = 372, 00413 EDIF_TOK_EDIFVERSION = 373, 00414 EDIF_TOK_ENCLOSUREDISTANCE = 374, 00415 EDIF_TOK_ENDTYPE = 375, 00416 EDIF_TOK_ENTRY = 376, 00417 EDIF_TOK_EVENT = 377, 00418 EDIF_TOK_EXACTLY = 378, 00419 EDIF_TOK_EXTERNAL = 379, 00420 EDIF_TOK_FABRICATE = 380, 00421 EDIF_TOK_FALSE = 381, 00422 EDIF_TOK_FIGURE = 382, 00423 EDIF_TOK_FIGUREAREA = 383, 00424 EDIF_TOK_FIGUREGROUP = 384, 00425 EDIF_TOK_FIGUREGROUPOBJECT = 385, 00426 EDIF_TOK_FIGUREGROUPOVERRIDE = 386, 00427 EDIF_TOK_FIGUREGROUPREF = 387, 00428 EDIF_TOK_FIGUREPERIMETER = 388, 00429 EDIF_TOK_FIGUREWIDTH = 389, 00430 EDIF_TOK_FILLPATTERN = 390, 00431 EDIF_TOK_FOLLOW = 391, 00432 EDIF_TOK_FORBIDDENEVENT = 392, 00433 EDIF_TOK_GLOBALPORTREF = 393, 00434 EDIF_TOK_GREATERTHAN = 394, 00435 EDIF_TOK_GRIDMAP = 395, 00436 EDIF_TOK_IGNORE = 396, 00437 EDIF_TOK_INCLUDEFIGUREGROUP = 397, 00438 EDIF_TOK_INITIAL = 398, 00439 EDIF_TOK_INSTANCE = 399, 00440 EDIF_TOK_INSTANCEBACKANNOTATE = 400, 00441 EDIF_TOK_INSTANCEGROUP = 401, 00442 EDIF_TOK_INSTANCEMAP = 402, 00443 EDIF_TOK_INSTANCEREF = 403, 00444 EDIF_TOK_INTEGER = 404, 00445 EDIF_TOK_INTEGERDISPLAY = 405, 00446 EDIF_TOK_INTERFACE = 406, 00447 EDIF_TOK_INTERFIGUREGROUPSPACING = 407, 00448 EDIF_TOK_INTERSECTION = 408, 00449 EDIF_TOK_INTRAFIGUREGROUPSPACING = 409, 00450 EDIF_TOK_INVERSE = 410, 00451 EDIF_TOK_ISOLATED = 411, 00452 EDIF_TOK_JOINED = 412, 00453 EDIF_TOK_JUSTIFY = 413, 00454 EDIF_TOK_KEYWORDDISPLAY = 414, 00455 EDIF_TOK_KEYWORDLEVEL = 415, 00456 EDIF_TOK_KEYWORDMAP = 416, 00457 EDIF_TOK_LESSTHAN = 417, 00458 EDIF_TOK_LIBRARY = 418, 00459 EDIF_TOK_LIBRARYREF = 419, 00460 EDIF_TOK_LISTOFNETS = 420, 00461 EDIF_TOK_LISTOFPORTS = 421, 00462 EDIF_TOK_LOADDELAY = 422, 00463 EDIF_TOK_LOGICASSIGN = 423, 00464 EDIF_TOK_LOGICINPUT = 424, 00465 EDIF_TOK_LOGICLIST = 425, 00466 EDIF_TOK_LOGICMAPINPUT = 426, 00467 EDIF_TOK_LOGICMAPOUTPUT = 427, 00468 EDIF_TOK_LOGICONEOF = 428, 00469 EDIF_TOK_LOGICOUTPUT = 429, 00470 EDIF_TOK_LOGICPORT = 430, 00471 EDIF_TOK_LOGICREF = 431, 00472 EDIF_TOK_LOGICVALUE = 432, 00473 EDIF_TOK_LOGICWAVEFORM = 433, 00474 EDIF_TOK_MAINTAIN = 434, 00475 EDIF_TOK_MATCH = 435, 00476 EDIF_TOK_MEMBER = 436, 00477 EDIF_TOK_MINOMAX = 437, 00478 EDIF_TOK_MINOMAXDISPLAY = 438, 00479 EDIF_TOK_MNM = 439, 00480 EDIF_TOK_MULTIPLEVALUESET = 440, 00481 EDIF_TOK_MUSTJOIN = 441, 00482 EDIF_TOK_NAME = 442, 00483 EDIF_TOK_NET = 443, 00484 EDIF_TOK_NETBACKANNOTATE = 444, 00485 EDIF_TOK_NETBUNDLE = 445, 00486 EDIF_TOK_NETDELAY = 446, 00487 EDIF_TOK_NETGROUP = 447, 00488 EDIF_TOK_NETMAP = 448, 00489 EDIF_TOK_NETREF = 449, 00490 EDIF_TOK_NOCHANGE = 450, 00491 EDIF_TOK_NONPERMUTABLE = 451, 00492 EDIF_TOK_NOTALLOWED = 452, 00493 EDIF_TOK_NOTCHSPACING = 453, 00494 EDIF_TOK_NUMBER = 454, 00495 EDIF_TOK_NUMBERDEFINITION = 455, 00496 EDIF_TOK_NUMBERDISPLAY = 456, 00497 EDIF_TOK_OFFPAGECONNECTOR = 457, 00498 EDIF_TOK_OFFSETEVENT = 458, 00499 EDIF_TOK_OPENSHAPE = 459, 00500 EDIF_TOK_ORIENTATION = 460, 00501 EDIF_TOK_ORIGIN = 461, 00502 EDIF_TOK_OVERHANGDISTANCE = 462, 00503 EDIF_TOK_OVERLAPDISTANCE = 463, 00504 EDIF_TOK_OVERSIZE = 464, 00505 EDIF_TOK_OWNER = 465, 00506 EDIF_TOK_PAGE = 466, 00507 EDIF_TOK_PAGESIZE = 467, 00508 EDIF_TOK_PARAMETER = 468, 00509 EDIF_TOK_PARAMETERASSIGN = 469, 00510 EDIF_TOK_PARAMETERDISPLAY = 470, 00511 EDIF_TOK_PATH = 471, 00512 EDIF_TOK_PATHDELAY = 472, 00513 EDIF_TOK_PATHWIDTH = 473, 00514 EDIF_TOK_PERMUTABLE = 474, 00515 EDIF_TOK_PHYSICALDESIGNRULE = 475, 00516 EDIF_TOK_PLUG = 476, 00517 EDIF_TOK_POINT = 477, 00518 EDIF_TOK_POINTDISPLAY = 478, 00519 EDIF_TOK_POINTLIST = 479, 00520 EDIF_TOK_POLYGON = 480, 00521 EDIF_TOK_PORT = 481, 00522 EDIF_TOK_PORTBACKANNOTATE = 482, 00523 EDIF_TOK_PORTBUNDLE = 483, 00524 EDIF_TOK_PORTDELAY = 484, 00525 EDIF_TOK_PORTGROUP = 485, 00526 EDIF_TOK_PORTIMPLEMENTATION = 486, 00527 EDIF_TOK_PORTINSTANCE = 487, 00528 EDIF_TOK_PORTLIST = 488, 00529 EDIF_TOK_PORTLISTALIAS = 489, 00530 EDIF_TOK_PORTMAP = 490, 00531 EDIF_TOK_PORTREF = 491, 00532 EDIF_TOK_PROGRAM = 492, 00533 EDIF_TOK_PROPERTY = 493, 00534 EDIF_TOK_PROPERTYDISPLAY = 494, 00535 EDIF_TOK_PROTECTIONFRAME = 495, 00536 EDIF_TOK_PT = 496, 00537 EDIF_TOK_RANGEVECTOR = 497, 00538 EDIF_TOK_RECTANGLE = 498, 00539 EDIF_TOK_RECTANGLESIZE = 499, 00540 EDIF_TOK_RENAME = 500, 00541 EDIF_TOK_RESOLVES = 501, 00542 EDIF_TOK_SCALE = 502, 00543 EDIF_TOK_SCALEX = 503, 00544 EDIF_TOK_SCALEY = 504, 00545 EDIF_TOK_SECTION = 505, 00546 EDIF_TOK_SHAPE = 506, 00547 EDIF_TOK_SIMULATE = 507, 00548 EDIF_TOK_SIMULATIONINFO = 508, 00549 EDIF_TOK_SINGLEVALUESET = 509, 00550 EDIF_TOK_SITE = 510, 00551 EDIF_TOK_SOCKET = 511, 00552 EDIF_TOK_SOCKETSET = 512, 00553 EDIF_TOK_STATUS = 513, 00554 EDIF_TOK_STEADY = 514, 00555 EDIF_TOK_STRING = 515, 00556 EDIF_TOK_STRINGDISPLAY = 516, 00557 EDIF_TOK_STRONG = 517, 00558 EDIF_TOK_SYMBOL = 518, 00559 EDIF_TOK_SYMMETRY = 519, 00560 EDIF_TOK_TABLE = 520, 00561 EDIF_TOK_TABLEDEFAULT = 521, 00562 EDIF_TOK_TECHNOLOGY = 522, 00563 EDIF_TOK_TEXTHEIGHT = 523, 00564 EDIF_TOK_TIMEINTERVAL = 524, 00565 EDIF_TOK_TIMESTAMP = 525, 00566 EDIF_TOK_TIMING = 526, 00567 EDIF_TOK_TRANSFORM = 527, 00568 EDIF_TOK_TRANSITION = 528, 00569 EDIF_TOK_TRIGGER = 529, 00570 EDIF_TOK_TRUE = 530, 00571 EDIF_TOK_UNCONSTRAINED = 531, 00572 EDIF_TOK_UNDEFINED = 532, 00573 EDIF_TOK_UNION = 533, 00574 EDIF_TOK_UNIT = 534, 00575 EDIF_TOK_UNUSED = 535, 00576 EDIF_TOK_USERDATA = 536, 00577 EDIF_TOK_VERSION = 537, 00578 EDIF_TOK_VIEW = 538, 00579 EDIF_TOK_VIEWLIST = 539, 00580 EDIF_TOK_VIEWMAP = 540, 00581 EDIF_TOK_VIEWREF = 541, 00582 EDIF_TOK_VIEWTYPE = 542, 00583 EDIF_TOK_VISIBLE = 543, 00584 EDIF_TOK_VOLTAGEMAP = 544, 00585 EDIF_TOK_WAVEVALUE = 545, 00586 EDIF_TOK_WEAK = 546, 00587 EDIF_TOK_WEAKJOINED = 547, 00588 EDIF_TOK_WHEN = 548, 00589 EDIF_TOK_WRITTEN = 549 00590 }; 00591 #endif 00592 /* Tokens. */ 00593 #define EDIF_TOK_IDENT 258 00594 #define EDIF_TOK_INT 259 00595 #define EDIF_TOK_KEYWORD 260 00596 #define EDIF_TOK_STR 261 00597 #define EDIF_TOK_ANGLE 262 00598 #define EDIF_TOK_BEHAVIOR 263 00599 #define EDIF_TOK_CALCULATED 264 00600 #define EDIF_TOK_CAPACITANCE 265 00601 #define EDIF_TOK_CENTERCENTER 266 00602 #define EDIF_TOK_CENTERLEFT 267 00603 #define EDIF_TOK_CENTERRIGHT 268 00604 #define EDIF_TOK_CHARGE 269 00605 #define EDIF_TOK_CONDUCTANCE 270 00606 #define EDIF_TOK_CURRENT 271 00607 #define EDIF_TOK_DISTANCE 272 00608 #define EDIF_TOK_DOCUMENT 273 00609 #define EDIF_TOK_ENERGY 274 00610 #define EDIF_TOK_EXTEND 275 00611 #define EDIF_TOK_FLUX 276 00612 #define EDIF_TOK_FREQUENCY 277 00613 #define EDIF_TOK_GENERIC 278 00614 #define EDIF_TOK_GRAPHIC 279 00615 #define EDIF_TOK_INDUCTANCE 280 00616 #define EDIF_TOK_INOUT 281 00617 #define EDIF_TOK_INPUT 282 00618 #define EDIF_TOK_LOGICMODEL 283 00619 #define EDIF_TOK_LOWERCENTER 284 00620 #define EDIF_TOK_LOWERLEFT 285 00621 #define EDIF_TOK_LOWERRIGHT 286 00622 #define EDIF_TOK_MASKLAYOUT 287 00623 #define EDIF_TOK_MASS 288 00624 #define EDIF_TOK_MEASURED 289 00625 #define EDIF_TOK_MX 290 00626 #define EDIF_TOK_MXR90 291 00627 #define EDIF_TOK_MY 292 00628 #define EDIF_TOK_MYR90 293 00629 #define EDIF_TOK_NETLIST 294 00630 #define EDIF_TOK_OUTPUT 295 00631 #define EDIF_TOK_PCBLAYOUT 296 00632 #define EDIF_TOK_POWER 297 00633 #define EDIF_TOK_R0 298 00634 #define EDIF_TOK_R180 299 00635 #define EDIF_TOK_R270 300 00636 #define EDIF_TOK_R90 301 00637 #define EDIF_TOK_REQUIRED 302 00638 #define EDIF_TOK_RESISTANCE 303 00639 #define EDIF_TOK_RIPPER 304 00640 #define EDIF_TOK_ROUND 305 00641 #define EDIF_TOK_SCHEMATIC 306 00642 #define EDIF_TOK_STRANGER 307 00643 #define EDIF_TOK_SYMBOLIC 308 00644 #define EDIF_TOK_TEMPERATURE 309 00645 #define EDIF_TOK_TIE 310 00646 #define EDIF_TOK_TIME 311 00647 #define EDIF_TOK_TRUNCATE 312 00648 #define EDIF_TOK_UPPERCENTER 313 00649 #define EDIF_TOK_UPPERLEFT 314 00650 #define EDIF_TOK_UPPERRIGHT 315 00651 #define EDIF_TOK_VOLTAGE 316 00652 #define EDIF_TOK_ACLOAD 317 00653 #define EDIF_TOK_AFTER 318 00654 #define EDIF_TOK_ANNOTATE 319 00655 #define EDIF_TOK_APPLY 320 00656 #define EDIF_TOK_ARC 321 00657 #define EDIF_TOK_ARRAY 322 00658 #define EDIF_TOK_ARRAYMACRO 323 00659 #define EDIF_TOK_ARRAYRELATEDINFO 324 00660 #define EDIF_TOK_ARRAYSITE 325 00661 #define EDIF_TOK_ATLEAST 326 00662 #define EDIF_TOK_ATMOST 327 00663 #define EDIF_TOK_AUTHOR 328 00664 #define EDIF_TOK_BASEARRAY 329 00665 #define EDIF_TOK_BECOMES 330 00666 #define EDIF_TOK_BETWEEN 331 00667 #define EDIF_TOK_BOOLEAN 332 00668 #define EDIF_TOK_BOOLEANDISPLAY 333 00669 #define EDIF_TOK_BOOLEANMAP 334 00670 #define EDIF_TOK_BORDERPATTERN 335 00671 #define EDIF_TOK_BORDERWIDTH 336 00672 #define EDIF_TOK_BOUNDINGBOX 337 00673 #define EDIF_TOK_CELL 338 00674 #define EDIF_TOK_CELLREF 339 00675 #define EDIF_TOK_CELLTYPE 340 00676 #define EDIF_TOK_CHANGE 341 00677 #define EDIF_TOK_CIRCLE 342 00678 #define EDIF_TOK_COLOR 343 00679 #define EDIF_TOK_COMMENT 344 00680 #define EDIF_TOK_COMMENTGRAPHICS 345 00681 #define EDIF_TOK_COMPOUND 346 00682 #define EDIF_TOK_CONNECTLOCATION 347 00683 #define EDIF_TOK_CONTENTS 348 00684 #define EDIF_TOK_CORNERTYPE 349 00685 #define EDIF_TOK_CRITICALITY 350 00686 #define EDIF_TOK_CURRENTMAP 351 00687 #define EDIF_TOK_CURVE 352 00688 #define EDIF_TOK_CYCLE 353 00689 #define EDIF_TOK_DATAORIGIN 354 00690 #define EDIF_TOK_DCFANINLOAD 355 00691 #define EDIF_TOK_DCFANOUTLOAD 356 00692 #define EDIF_TOK_DCMAXFANIN 357 00693 #define EDIF_TOK_DCMAXFANOUT 358 00694 #define EDIF_TOK_DELAY 359 00695 #define EDIF_TOK_DELTA 360 00696 #define EDIF_TOK_DERIVATION 361 00697 #define EDIF_TOK_DESIGN 362 00698 #define EDIF_TOK_DESIGNATOR 363 00699 #define EDIF_TOK_DIFFERENCE 364 00700 #define EDIF_TOK_DIRECTION 365 00701 #define EDIF_TOK_DISPLAY 366 00702 #define EDIF_TOK_DOMINATES 367 00703 #define EDIF_TOK_DOT 368 00704 #define EDIF_TOK_DURATION 369 00705 #define EDIF_TOK_E 370 00706 #define EDIF_TOK_EDIF 371 00707 #define EDIF_TOK_EDIFLEVEL 372 00708 #define EDIF_TOK_EDIFVERSION 373 00709 #define EDIF_TOK_ENCLOSUREDISTANCE 374 00710 #define EDIF_TOK_ENDTYPE 375 00711 #define EDIF_TOK_ENTRY 376 00712 #define EDIF_TOK_EVENT 377 00713 #define EDIF_TOK_EXACTLY 378 00714 #define EDIF_TOK_EXTERNAL 379 00715 #define EDIF_TOK_FABRICATE 380 00716 #define EDIF_TOK_FALSE 381 00717 #define EDIF_TOK_FIGURE 382 00718 #define EDIF_TOK_FIGUREAREA 383 00719 #define EDIF_TOK_FIGUREGROUP 384 00720 #define EDIF_TOK_FIGUREGROUPOBJECT 385 00721 #define EDIF_TOK_FIGUREGROUPOVERRIDE 386 00722 #define EDIF_TOK_FIGUREGROUPREF 387 00723 #define EDIF_TOK_FIGUREPERIMETER 388 00724 #define EDIF_TOK_FIGUREWIDTH 389 00725 #define EDIF_TOK_FILLPATTERN 390 00726 #define EDIF_TOK_FOLLOW 391 00727 #define EDIF_TOK_FORBIDDENEVENT 392 00728 #define EDIF_TOK_GLOBALPORTREF 393 00729 #define EDIF_TOK_GREATERTHAN 394 00730 #define EDIF_TOK_GRIDMAP 395 00731 #define EDIF_TOK_IGNORE 396 00732 #define EDIF_TOK_INCLUDEFIGUREGROUP 397 00733 #define EDIF_TOK_INITIAL 398 00734 #define EDIF_TOK_INSTANCE 399 00735 #define EDIF_TOK_INSTANCEBACKANNOTATE 400 00736 #define EDIF_TOK_INSTANCEGROUP 401 00737 #define EDIF_TOK_INSTANCEMAP 402 00738 #define EDIF_TOK_INSTANCEREF 403 00739 #define EDIF_TOK_INTEGER 404 00740 #define EDIF_TOK_INTEGERDISPLAY 405 00741 #define EDIF_TOK_INTERFACE 406 00742 #define EDIF_TOK_INTERFIGUREGROUPSPACING 407 00743 #define EDIF_TOK_INTERSECTION 408 00744 #define EDIF_TOK_INTRAFIGUREGROUPSPACING 409 00745 #define EDIF_TOK_INVERSE 410 00746 #define EDIF_TOK_ISOLATED 411 00747 #define EDIF_TOK_JOINED 412 00748 #define EDIF_TOK_JUSTIFY 413 00749 #define EDIF_TOK_KEYWORDDISPLAY 414 00750 #define EDIF_TOK_KEYWORDLEVEL 415 00751 #define EDIF_TOK_KEYWORDMAP 416 00752 #define EDIF_TOK_LESSTHAN 417 00753 #define EDIF_TOK_LIBRARY 418 00754 #define EDIF_TOK_LIBRARYREF 419 00755 #define EDIF_TOK_LISTOFNETS 420 00756 #define EDIF_TOK_LISTOFPORTS 421 00757 #define EDIF_TOK_LOADDELAY 422 00758 #define EDIF_TOK_LOGICASSIGN 423 00759 #define EDIF_TOK_LOGICINPUT 424 00760 #define EDIF_TOK_LOGICLIST 425 00761 #define EDIF_TOK_LOGICMAPINPUT 426 00762 #define EDIF_TOK_LOGICMAPOUTPUT 427 00763 #define EDIF_TOK_LOGICONEOF 428 00764 #define EDIF_TOK_LOGICOUTPUT 429 00765 #define EDIF_TOK_LOGICPORT 430 00766 #define EDIF_TOK_LOGICREF 431 00767 #define EDIF_TOK_LOGICVALUE 432 00768 #define EDIF_TOK_LOGICWAVEFORM 433 00769 #define EDIF_TOK_MAINTAIN 434 00770 #define EDIF_TOK_MATCH 435 00771 #define EDIF_TOK_MEMBER 436 00772 #define EDIF_TOK_MINOMAX 437 00773 #define EDIF_TOK_MINOMAXDISPLAY 438 00774 #define EDIF_TOK_MNM 439 00775 #define EDIF_TOK_MULTIPLEVALUESET 440 00776 #define EDIF_TOK_MUSTJOIN 441 00777 #define EDIF_TOK_NAME 442 00778 #define EDIF_TOK_NET 443 00779 #define EDIF_TOK_NETBACKANNOTATE 444 00780 #define EDIF_TOK_NETBUNDLE 445 00781 #define EDIF_TOK_NETDELAY 446 00782 #define EDIF_TOK_NETGROUP 447 00783 #define EDIF_TOK_NETMAP 448 00784 #define EDIF_TOK_NETREF 449 00785 #define EDIF_TOK_NOCHANGE 450 00786 #define EDIF_TOK_NONPERMUTABLE 451 00787 #define EDIF_TOK_NOTALLOWED 452 00788 #define EDIF_TOK_NOTCHSPACING 453 00789 #define EDIF_TOK_NUMBER 454 00790 #define EDIF_TOK_NUMBERDEFINITION 455 00791 #define EDIF_TOK_NUMBERDISPLAY 456 00792 #define EDIF_TOK_OFFPAGECONNECTOR 457 00793 #define EDIF_TOK_OFFSETEVENT 458 00794 #define EDIF_TOK_OPENSHAPE 459 00795 #define EDIF_TOK_ORIENTATION 460 00796 #define EDIF_TOK_ORIGIN 461 00797 #define EDIF_TOK_OVERHANGDISTANCE 462 00798 #define EDIF_TOK_OVERLAPDISTANCE 463 00799 #define EDIF_TOK_OVERSIZE 464 00800 #define EDIF_TOK_OWNER 465 00801 #define EDIF_TOK_PAGE 466 00802 #define EDIF_TOK_PAGESIZE 467 00803 #define EDIF_TOK_PARAMETER 468 00804 #define EDIF_TOK_PARAMETERASSIGN 469 00805 #define EDIF_TOK_PARAMETERDISPLAY 470 00806 #define EDIF_TOK_PATH 471 00807 #define EDIF_TOK_PATHDELAY 472 00808 #define EDIF_TOK_PATHWIDTH 473 00809 #define EDIF_TOK_PERMUTABLE 474 00810 #define EDIF_TOK_PHYSICALDESIGNRULE 475 00811 #define EDIF_TOK_PLUG 476 00812 #define EDIF_TOK_POINT 477 00813 #define EDIF_TOK_POINTDISPLAY 478 00814 #define EDIF_TOK_POINTLIST 479 00815 #define EDIF_TOK_POLYGON 480 00816 #define EDIF_TOK_PORT 481 00817 #define EDIF_TOK_PORTBACKANNOTATE 482 00818 #define EDIF_TOK_PORTBUNDLE 483 00819 #define EDIF_TOK_PORTDELAY 484 00820 #define EDIF_TOK_PORTGROUP 485 00821 #define EDIF_TOK_PORTIMPLEMENTATION 486 00822 #define EDIF_TOK_PORTINSTANCE 487 00823 #define EDIF_TOK_PORTLIST 488 00824 #define EDIF_TOK_PORTLISTALIAS 489 00825 #define EDIF_TOK_PORTMAP 490 00826 #define EDIF_TOK_PORTREF 491 00827 #define EDIF_TOK_PROGRAM 492 00828 #define EDIF_TOK_PROPERTY 493 00829 #define EDIF_TOK_PROPERTYDISPLAY 494 00830 #define EDIF_TOK_PROTECTIONFRAME 495 00831 #define EDIF_TOK_PT 496 00832 #define EDIF_TOK_RANGEVECTOR 497 00833 #define EDIF_TOK_RECTANGLE 498 00834 #define EDIF_TOK_RECTANGLESIZE 499 00835 #define EDIF_TOK_RENAME 500 00836 #define EDIF_TOK_RESOLVES 501 00837 #define EDIF_TOK_SCALE 502 00838 #define EDIF_TOK_SCALEX 503 00839 #define EDIF_TOK_SCALEY 504 00840 #define EDIF_TOK_SECTION 505 00841 #define EDIF_TOK_SHAPE 506 00842 #define EDIF_TOK_SIMULATE 507 00843 #define EDIF_TOK_SIMULATIONINFO 508 00844 #define EDIF_TOK_SINGLEVALUESET 509 00845 #define EDIF_TOK_SITE 510 00846 #define EDIF_TOK_SOCKET 511 00847 #define EDIF_TOK_SOCKETSET 512 00848 #define EDIF_TOK_STATUS 513 00849 #define EDIF_TOK_STEADY 514 00850 #define EDIF_TOK_STRING 515 00851 #define EDIF_TOK_STRINGDISPLAY 516 00852 #define EDIF_TOK_STRONG 517 00853 #define EDIF_TOK_SYMBOL 518 00854 #define EDIF_TOK_SYMMETRY 519 00855 #define EDIF_TOK_TABLE 520 00856 #define EDIF_TOK_TABLEDEFAULT 521 00857 #define EDIF_TOK_TECHNOLOGY 522 00858 #define EDIF_TOK_TEXTHEIGHT 523 00859 #define EDIF_TOK_TIMEINTERVAL 524 00860 #define EDIF_TOK_TIMESTAMP 525 00861 #define EDIF_TOK_TIMING 526 00862 #define EDIF_TOK_TRANSFORM 527 00863 #define EDIF_TOK_TRANSITION 528 00864 #define EDIF_TOK_TRIGGER 529 00865 #define EDIF_TOK_TRUE 530 00866 #define EDIF_TOK_UNCONSTRAINED 531 00867 #define EDIF_TOK_UNDEFINED 532 00868 #define EDIF_TOK_UNION 533 00869 #define EDIF_TOK_UNIT 534 00870 #define EDIF_TOK_UNUSED 535 00871 #define EDIF_TOK_USERDATA 536 00872 #define EDIF_TOK_VERSION 537 00873 #define EDIF_TOK_VIEW 538 00874 #define EDIF_TOK_VIEWLIST 539 00875 #define EDIF_TOK_VIEWMAP 540 00876 #define EDIF_TOK_VIEWREF 541 00877 #define EDIF_TOK_VIEWTYPE 542 00878 #define EDIF_TOK_VISIBLE 543 00879 #define EDIF_TOK_VOLTAGEMAP 544 00880 #define EDIF_TOK_WAVEVALUE 545 00881 #define EDIF_TOK_WEAK 546 00882 #define EDIF_TOK_WEAKJOINED 547 00883 #define EDIF_TOK_WHEN 548 00884 #define EDIF_TOK_WRITTEN 549 00885 00886 00887 00888 00889 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 00890 typedef union YYSTYPE 00891 { 00892 00893 /* Line 214 of yacc.c */ 00894 #line 193 "edif.y" 00895 00896 char* s; 00897 pair_list* pl; 00898 str_pair* ps; 00899 00900 00901 00902 /* Line 214 of yacc.c */ 00903 #line 904 "edif.c" 00904 } YYSTYPE; 00905 # define YYSTYPE_IS_TRIVIAL 1 00906 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 00907 # define YYSTYPE_IS_DECLARED 1 00908 #endif 00909 00910 00911 /* Copy the second part of user declarations. */ 00912 00913 00914 /* Line 264 of yacc.c */ 00915 #line 916 "edif.c" 00916 00917 #ifdef short 00918 # undef short 00919 #endif 00920 00921 #ifdef YYTYPE_UINT8 00922 typedef YYTYPE_UINT8 yytype_uint8; 00923 #else 00924 typedef unsigned char yytype_uint8; 00925 #endif 00926 00927 #ifdef YYTYPE_INT8 00928 typedef YYTYPE_INT8 yytype_int8; 00929 #elif (defined __STDC__ || defined __C99__FUNC__ \ 00930 || defined __cplusplus || defined _MSC_VER) 00931 typedef signed char yytype_int8; 00932 #else 00933 typedef short int yytype_int8; 00934 #endif 00935 00936 #ifdef YYTYPE_UINT16 00937 typedef YYTYPE_UINT16 yytype_uint16; 00938 #else 00939 typedef unsigned short int yytype_uint16; 00940 #endif 00941 00942 #ifdef YYTYPE_INT16 00943 typedef YYTYPE_INT16 yytype_int16; 00944 #else 00945 typedef short int yytype_int16; 00946 #endif 00947 00948 #ifndef YYSIZE_T 00949 # ifdef __SIZE_TYPE__ 00950 # define YYSIZE_T __SIZE_TYPE__ 00951 # elif defined size_t 00952 # define YYSIZE_T size_t 00953 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 00954 || defined __cplusplus || defined _MSC_VER) 00955 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 00956 # define YYSIZE_T size_t 00957 # else 00958 # define YYSIZE_T unsigned int 00959 # endif 00960 #endif 00961 00962 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 00963 00964 #ifndef YY_ 00965 # if YYENABLE_NLS 00966 # if ENABLE_NLS 00967 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 00968 # define YY_(msgid) dgettext ("bison-runtime", msgid) 00969 # endif 00970 # endif 00971 # ifndef YY_ 00972 # define YY_(msgid) msgid 00973 # endif 00974 #endif 00975 00976 /* Suppress unused-variable warnings by "using" E. */ 00977 #if ! defined lint || defined __GNUC__ 00978 # define YYUSE(e) ((void) (e)) 00979 #else 00980 # define YYUSE(e) /* empty */ 00981 #endif 00982 00983 /* Identity function, used to suppress warnings about constant conditions. */ 00984 #ifndef lint 00985 # define YYID(n) (n) 00986 #else 00987 #if (defined __STDC__ || defined __C99__FUNC__ \ 00988 || defined __cplusplus || defined _MSC_VER) 00989 static int 00990 YYID (int yyi) 00991 #else 00992 static int 00993 YYID (yyi) 00994 int yyi; 00995 #endif 00996 { 00997 return yyi; 00998 } 00999 #endif 01000 01001 #if ! defined yyoverflow || YYERROR_VERBOSE 01002 01003 /* The parser invokes alloca or malloc; define the necessary symbols. */ 01004 01005 # ifdef YYSTACK_USE_ALLOCA 01006 # if YYSTACK_USE_ALLOCA 01007 # ifdef __GNUC__ 01008 # define YYSTACK_ALLOC __builtin_alloca 01009 # elif defined __BUILTIN_VA_ARG_INCR 01010 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */ 01011 # elif defined _AIX 01012 # define YYSTACK_ALLOC __alloca 01013 # elif defined _MSC_VER 01014 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */ 01015 # define alloca _alloca 01016 # else 01017 # define YYSTACK_ALLOC alloca 01018 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 01019 || defined __cplusplus || defined _MSC_VER) 01020 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 01021 # ifndef _STDLIB_H 01022 # define _STDLIB_H 1 01023 # endif 01024 # endif 01025 # endif 01026 # endif 01027 # endif 01028 01029 # ifdef YYSTACK_ALLOC 01030 /* Pacify GCC's `empty if-body' warning. */ 01031 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) 01032 # ifndef YYSTACK_ALLOC_MAXIMUM 01033 /* The OS might guarantee only one guard page at the bottom of the stack, 01034 and a page size can be as small as 4096 bytes. So we cannot safely 01035 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number 01036 to allow for a few compiler-allocated temporary stack slots. */ 01037 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ 01038 # endif 01039 # else 01040 # define YYSTACK_ALLOC YYMALLOC 01041 # define YYSTACK_FREE YYFREE 01042 # ifndef YYSTACK_ALLOC_MAXIMUM 01043 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 01044 # endif 01045 # if (defined __cplusplus && ! defined _STDLIB_H \ 01046 && ! ((defined YYMALLOC || defined malloc) \ 01047 && (defined YYFREE || defined free))) 01048 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 01049 # ifndef _STDLIB_H 01050 # define _STDLIB_H 1 01051 # endif 01052 # endif 01053 # ifndef YYMALLOC 01054 # define YYMALLOC malloc 01055 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 01056 || defined __cplusplus || defined _MSC_VER) 01057 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 01058 # endif 01059 # endif 01060 # ifndef YYFREE 01061 # define YYFREE free 01062 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 01063 || defined __cplusplus || defined _MSC_VER) 01064 void free (void *); /* INFRINGES ON USER NAME SPACE */ 01065 # endif 01066 # endif 01067 # endif 01068 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ 01069 01070 01071 #if (! defined yyoverflow \ 01072 && (! defined __cplusplus \ 01073 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 01074 01075 /* A type that is properly aligned for any stack member. */ 01076 union yyalloc 01077 { 01078 yytype_int16 yyss_alloc; 01079 YYSTYPE yyvs_alloc; 01080 }; 01081 01082 /* The size of the maximum gap between one aligned stack and the next. */ 01083 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 01084 01085 /* The size of an array large to enough to hold all stacks, each with 01086 N elements. */ 01087 # define YYSTACK_BYTES(N) \ 01088 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 01089 + YYSTACK_GAP_MAXIMUM) 01090 01091 /* Copy COUNT objects from FROM to TO. The source and destination do 01092 not overlap. */ 01093 # ifndef YYCOPY 01094 # if defined __GNUC__ && 1 < __GNUC__ 01095 # define YYCOPY(To, From, Count) \ 01096 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 01097 # else 01098 # define YYCOPY(To, From, Count) \ 01099 do \ 01100 { \ 01101 YYSIZE_T yyi; \ 01102 for (yyi = 0; yyi < (Count); yyi++) \ 01103 (To)[yyi] = (From)[yyi]; \ 01104 } \ 01105 while (YYID (0)) 01106 # endif 01107 # endif 01108 01109 /* Relocate STACK from its old location to the new one. The 01110 local variables YYSIZE and YYSTACKSIZE give the old and new number of 01111 elements in the stack, and YYPTR gives the new location of the 01112 stack. Advance YYPTR to a properly aligned location for the next 01113 stack. */ 01114 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 01115 do \ 01116 { \ 01117 YYSIZE_T yynewbytes; \ 01118 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 01119 Stack = &yyptr->Stack_alloc; \ 01120 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 01121 yyptr += yynewbytes / sizeof (*yyptr); \ 01122 } \ 01123 while (YYID (0)) 01124 01125 #endif 01126 01127 /* YYFINAL -- State number of the termination state. */ 01128 #define YYFINAL 11 01129 /* YYLAST -- Last index in YYTABLE. */ 01130 #define YYLAST 2619 01131 01132 /* YYNTOKENS -- Number of terminals. */ 01133 #define YYNTOKENS 296 01134 /* YYNNTS -- Number of nonterminals. */ 01135 #define YYNNTS 472 01136 /* YYNRULES -- Number of rules. */ 01137 #define YYNRULES 1129 01138 /* YYNRULES -- Number of states. */ 01139 #define YYNSTATES 1626 01140 01141 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 01142 #define YYUNDEFTOK 2 01143 #define YYMAXUTOK 549 01144 01145 #define YYTRANSLATE(YYX) \ 01146 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 01147 01148 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 01149 static const yytype_uint16 yytranslate[] = 01150 { 01151 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01152 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01153 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01154 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01155 2, 295, 2, 2, 2, 2, 2, 2, 2, 2, 01156 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01157 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01158 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01159 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01160 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01161 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01162 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01163 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01168 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01169 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01170 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01171 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01172 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01173 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01174 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01175 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 01176 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 01177 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 01178 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 01179 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 01180 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 01181 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 01182 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 01183 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 01184 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 01185 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 01186 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 01187 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 01188 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 01189 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 01190 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 01191 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 01192 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 01193 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 01194 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 01195 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 01196 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 01197 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 01198 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 01199 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 01200 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 01201 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 01202 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 01203 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 01204 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 01205 285, 286, 287, 288, 289, 290, 291, 292, 293, 294 01206 }; 01207 01208 #if YYDEBUG 01209 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 01210 YYRHS. */ 01211 static const yytype_uint16 yyprhs[] = 01212 { 01213 0, 0, 3, 5, 13, 14, 17, 20, 23, 26, 01214 29, 32, 34, 38, 44, 48, 50, 52, 56, 58, 01215 61, 64, 67, 70, 73, 77, 79, 81, 85, 87, 01216 90, 93, 96, 99, 105, 111, 112, 114, 118, 122, 01217 124, 126, 128, 131, 134, 138, 142, 146, 150, 153, 01218 157, 159, 161, 163, 168, 170, 172, 174, 176, 180, 01219 181, 184, 187, 190, 194, 196, 199, 203, 205, 207, 01220 213, 217, 221, 226, 228, 231, 234, 237, 240, 243, 01221 246, 248, 253, 254, 256, 258, 262, 264, 266, 268, 01222 273, 275, 277, 279, 280, 282, 284, 290, 291, 294, 01223 300, 304, 305, 308, 312, 313, 316, 319, 322, 325, 01224 328, 331, 334, 338, 342, 343, 346, 349, 352, 355, 01225 358, 361, 364, 367, 370, 373, 376, 379, 382, 385, 01226 388, 391, 394, 398, 399, 401, 405, 407, 409, 411, 01227 415, 417, 419, 423, 427, 428, 431, 434, 439, 440, 01228 442, 447, 448, 450, 454, 456, 458, 462, 464, 466, 01229 470, 472, 474, 478, 480, 482, 486, 488, 490, 494, 01230 495, 498, 502, 504, 506, 508, 513, 515, 518, 521, 01231 524, 527, 531, 533, 535, 537, 541, 542, 545, 548, 01232 551, 554, 557, 560, 563, 566, 569, 572, 575, 578, 01233 581, 584, 588, 590, 592, 595, 598, 602, 604, 606, 01234 608, 615, 617, 619, 620, 622, 623, 625, 626, 628, 01235 632, 633, 636, 640, 642, 645, 649, 656, 658, 660, 01236 663, 666, 670, 672, 674, 676, 682, 684, 686, 688, 01237 690, 692, 694, 696, 697, 699, 701, 705, 707, 709, 01238 711, 713, 715, 718, 721, 725, 731, 733, 736, 739, 01239 742, 745, 750, 753, 757, 759, 762, 765, 768, 771, 01240 774, 777, 780, 783, 786, 789, 792, 795, 798, 800, 01241 802, 806, 808, 810, 812, 816, 818, 821, 824, 827, 01242 830, 833, 836, 839, 842, 845, 848, 851, 854, 859, 01243 860, 862, 866, 868, 870, 873, 876, 879, 882, 885, 01244 888, 891, 894, 897, 903, 905, 907, 910, 913, 915, 01245 917, 919, 921, 923, 929, 931, 933, 936, 939, 945, 01246 947, 949, 952, 955, 961, 966, 968, 970, 972, 974, 01247 977, 980, 984, 986, 989, 993, 994, 997, 1000, 1003, 01248 1006, 1010, 1014, 1019, 1022, 1026, 1028, 1030, 1033, 1038, 01249 1040, 1042, 1045, 1048, 1051, 1054, 1057, 1060, 1063, 1066, 01250 1071, 1072, 1074, 1076, 1080, 1082, 1085, 1088, 1091, 1094, 01251 1098, 1099, 1102, 1106, 1107, 1110, 1113, 1116, 1119, 1121, 01252 1123, 1125, 1127, 1131, 1133, 1136, 1140, 1141, 1144, 1147, 01253 1150, 1154, 1155, 1158, 1161, 1164, 1167, 1170, 1173, 1176, 01254 1179, 1182, 1185, 1188, 1191, 1194, 1197, 1200, 1203, 1210, 01255 1212, 1214, 1217, 1220, 1224, 1226, 1228, 1231, 1234, 1240, 01256 1242, 1244, 1247, 1250, 1254, 1256, 1258, 1261, 1265, 1266, 01257 1269, 1272, 1275, 1279, 1281, 1283, 1285, 1287, 1289, 1291, 01258 1293, 1295, 1297, 1301, 1303, 1306, 1310, 1314, 1316, 1319, 01259 1321, 1323, 1327, 1329, 1331, 1337, 1339, 1342, 1345, 1348, 01260 1351, 1355, 1359, 1360, 1363, 1367, 1368, 1371, 1374, 1379, 01261 1381, 1383, 1389, 1391, 1393, 1395, 1397, 1399, 1400, 1402, 01262 1404, 1408, 1410, 1412, 1414, 1417, 1421, 1422, 1425, 1428, 01263 1431, 1435, 1436, 1439, 1443, 1444, 1447, 1449, 1451, 1455, 01264 1456, 1459, 1462, 1466, 1468, 1470, 1472, 1475, 1479, 1481, 01265 1484, 1487, 1490, 1495, 1496, 1498, 1502, 1504, 1507, 1510, 01266 1513, 1516, 1519, 1522, 1525, 1528, 1531, 1534, 1537, 1540, 01267 1543, 1546, 1550, 1551, 1554, 1557, 1560, 1563, 1568, 1570, 01268 1572, 1573, 1575, 1577, 1582, 1584, 1586, 1588, 1590, 1592, 01269 1594, 1599, 1601, 1604, 1608, 1609, 1612, 1615, 1618, 1622, 01270 1624, 1627, 1629, 1631, 1637, 1639, 1641, 1643, 1647, 1648, 01271 1651, 1655, 1656, 1659, 1662, 1665, 1668, 1672, 1674, 1677, 01272 1679, 1681, 1683, 1685, 1687, 1692, 1694, 1697, 1700, 1703, 01273 1706, 1709, 1712, 1715, 1718, 1721, 1725, 1727, 1730, 1733, 01274 1736, 1739, 1744, 1746, 1749, 1752, 1755, 1758, 1761, 1766, 01275 1768, 1771, 1774, 1778, 1779, 1782, 1785, 1789, 1790, 1793, 01276 1796, 1799, 1802, 1804, 1806, 1808, 1810, 1815, 1816, 1818, 01277 1820, 1822, 1825, 1829, 1830, 1833, 1836, 1841, 1843, 1846, 01278 1849, 1855, 1857, 1859, 1862, 1865, 1869, 1870, 1873, 1876, 01279 1879, 1883, 1885, 1888, 1892, 1893, 1896, 1899, 1902, 1906, 01280 1908, 1911, 1914, 1917, 1920, 1925, 1929, 1931, 1934, 1938, 01281 1940, 1942, 1944, 1946, 1948, 1950, 1952, 1954, 1958, 1965, 01282 1967, 1969, 1972, 1975, 1982, 1984, 1986, 1989, 1992, 1998, 01283 2000, 2002, 2006, 2010, 2012, 2015, 2018, 2021, 2024, 2027, 01284 2030, 2033, 2036, 2039, 2043, 2047, 2049, 2052, 2058, 2059, 01285 2061, 2066, 2070, 2072, 2075, 2079, 2081, 2084, 2088, 2092, 01286 2093, 2096, 2099, 2102, 2106, 2107, 2110, 2114, 2115, 2118, 01287 2121, 2124, 2128, 2130, 2133, 2137, 2138, 2141, 2146, 2150, 01288 2152, 2155, 2159, 2161, 2164, 2167, 2170, 2173, 2176, 2179, 01289 2182, 2185, 2188, 2191, 2194, 2197, 2201, 2203, 2206, 2209, 01290 2212, 2215, 2218, 2221, 2224, 2227, 2230, 2235, 2237, 2240, 01291 2243, 2246, 2251, 2253, 2255, 2258, 2261, 2265, 2266, 2269, 01292 2272, 2276, 2278, 2280, 2283, 2286, 2289, 2292, 2295, 2298, 01293 2301, 2304, 2307, 2311, 2313, 2315, 2318, 2321, 2324, 2327, 01294 2330, 2333, 2336, 2339, 2342, 2345, 2348, 2352, 2353, 2356, 01295 2359, 2364, 2368, 2369, 2372, 2375, 2378, 2381, 2383, 2385, 01296 2387, 2389, 2394, 2395, 2397, 2399, 2401, 2406, 2407, 2409, 01297 2413, 2415, 2418, 2423, 2425, 2428, 2431, 2434, 2437, 2439, 01298 2441, 2445, 2446, 2449, 2452, 2455, 2458, 2461, 2464, 2467, 01299 2470, 2473, 2476, 2479, 2481, 2483, 2485, 2487, 2489, 2491, 01300 2495, 2496, 2499, 2502, 2507, 2509, 2512, 2518, 2520, 2522, 01301 2525, 2528, 2533, 2535, 2537, 2539, 2541, 2545, 2546, 2549, 01302 2551, 2557, 2559, 2564, 2569, 2574, 2578, 2580, 2583, 2586, 01303 2589, 2593, 2595, 2598, 2600, 2604, 2606, 2609, 2612, 2615, 01304 2618, 2621, 2625, 2626, 2629, 2632, 2635, 2639, 2640, 2642, 01305 2647, 2648, 2650, 2654, 2655, 2657, 2661, 2663, 2666, 2670, 01306 2671, 2674, 2677, 2680, 2685, 2687, 2689, 2691, 2693, 2696, 01307 2699, 2703, 2707, 2708, 2711, 2714, 2717, 2719, 2722, 2726, 01308 2730, 2731, 2734, 2737, 2740, 2743, 2746, 2749, 2752, 2755, 01309 2758, 2761, 2764, 2767, 2770, 2774, 2775, 2778, 2782, 2783, 01310 2786, 2789, 2794, 2796, 2798, 2800, 2802, 2803, 2805, 2807, 01311 2811, 2813, 2816, 2819, 2822, 2825, 2828, 2831, 2835, 2840, 01312 2842, 2844, 2846, 2848, 2850, 2859, 2863, 2865, 2868, 2871, 01313 2874, 2877, 2885, 2886, 2888, 2889, 2891, 2892, 2894, 2895, 01314 2897, 2898, 2900, 2905, 2907, 2909, 2911, 2915, 2916, 2919, 01315 2922, 2925, 2928, 2930, 2932, 2934, 2936, 2938, 2940, 2943, 01316 2946, 2950, 2952, 2954, 2957, 2960, 2964, 2966, 2968, 2970, 01317 2972, 2974, 2976, 2978, 2980, 2982, 2984, 2986, 2988, 2990, 01318 2992, 2994, 2996, 2999, 3003, 3005, 3008, 3011, 3014, 3017, 01319 3019, 3021, 3023, 3025, 3029, 3035, 3037, 3040, 3043, 3046, 01320 3049, 3052, 3056, 3057, 3060, 3063, 3067, 3068, 3071, 3074, 01321 3077, 3080, 3083, 3086, 3089, 3092, 3094, 3096, 3101, 3102, 01322 3104, 3108, 3110, 3112, 3114, 3116, 3118, 3120, 3122, 3124, 01323 3126, 3128, 3132, 3136, 3142, 3146, 3150, 3151, 3154, 3157, 01324 3160, 3164, 3166, 3169, 3172, 3175, 3178, 3181, 3184, 3188, 01325 3190, 3193, 3196, 3199, 3202, 3205, 3208, 3210, 3212, 3214 01326 }; 01327 01328 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 01329 static const yytype_int16 yyrhs[] = 01330 { 01331 298, 0, -1, 295, -1, 116, 300, 302, 301, 488, 01332 299, 297, -1, -1, 299, 690, -1, 299, 416, -1, 01333 299, 495, -1, 299, 384, -1, 299, 350, -1, 299, 01334 737, -1, 551, -1, 117, 766, 297, -1, 118, 766, 01335 766, 766, 297, -1, 62, 304, 297, -1, 542, -1, 01336 540, -1, 63, 306, 297, -1, 542, -1, 306, 440, 01337 -1, 306, 530, -1, 306, 504, -1, 306, 350, -1, 01338 306, 737, -1, 64, 308, 297, -1, 765, -1, 695, 01339 -1, 65, 310, 297, -1, 366, -1, 310, 508, -1, 01340 310, 520, -1, 310, 350, -1, 310, 737, -1, 66, 01341 620, 620, 620, 297, -1, 67, 551, 766, 313, 297, 01342 -1, -1, 766, -1, 68, 612, 297, -1, 69, 316, 01343 297, -1, 321, -1, 317, -1, 314, -1, 316, 350, 01344 -1, 316, 737, -1, 70, 686, 297, -1, 71, 670, 01345 297, -1, 72, 670, 297, -1, 73, 765, 297, -1, 01346 74, 297, -1, 75, 323, 297, -1, 517, -1, 510, 01347 -1, 518, -1, 76, 325, 326, 297, -1, 318, -1, 01348 448, -1, 319, -1, 492, -1, 77, 328, 297, -1, 01349 -1, 328, 332, -1, 328, 329, -1, 328, 327, -1, 01350 78, 330, 297, -1, 332, -1, 330, 395, -1, 79, 01351 332, 297, -1, 728, -1, 419, -1, 80, 766, 766, 01352 327, 297, -1, 81, 766, 297, -1, 82, 659, 297, 01353 -1, 83, 338, 337, 297, -1, 342, -1, 337, 690, 01354 -1, 337, 746, -1, 337, 742, -1, 337, 350, -1, 01355 337, 737, -1, 337, 650, -1, 551, -1, 84, 341, 01356 340, 297, -1, -1, 497, -1, 552, -1, 85, 343, 01357 297, -1, 55, -1, 49, -1, 23, -1, 86, 345, 01358 346, 297, -1, 643, -1, 644, -1, 637, -1, -1, 01359 322, -1, 724, -1, 87, 620, 620, 348, 297, -1, 01360 -1, 348, 650, -1, 88, 670, 670, 670, 297, -1, 01361 89, 351, 297, -1, -1, 351, 765, -1, 90, 353, 01362 297, -1, -1, 353, 307, -1, 353, 430, -1, 353, 01363 454, -1, 353, 335, -1, 353, 650, -1, 353, 350, 01364 -1, 353, 737, -1, 91, 517, 297, -1, 93, 356, 01365 297, -1, -1, 356, 454, -1, 356, 582, -1, 356, 01366 430, -1, 356, 673, -1, 356, 553, -1, 356, 557, 01367 -1, 356, 597, -1, 356, 352, -1, 356, 633, -1, 01368 356, 716, -1, 356, 678, -1, 356, 760, -1, 356, 01369 440, -1, 356, 522, -1, 356, 335, -1, 356, 350, 01370 -1, 356, 737, -1, 92, 358, 297, -1, -1, 430, 01371 -1, 94, 360, 297, -1, 20, -1, 50, -1, 57, 01372 -1, 95, 362, 297, -1, 766, -1, 466, -1, 96, 01373 542, 297, -1, 97, 365, 297, -1, -1, 365, 311, 01374 -1, 365, 620, -1, 98, 766, 367, 297, -1, -1, 01375 404, -1, 99, 765, 369, 297, -1, -1, 741, -1, 01376 100, 371, 297, -1, 670, -1, 578, -1, 101, 373, 01377 297, -1, 670, -1, 578, -1, 102, 375, 297, -1, 01378 670, -1, 578, -1, 103, 377, 297, -1, 670, -1, 01379 578, -1, 104, 379, 297, -1, 542, -1, 540, -1, 01380 105, 381, 297, -1, -1, 381, 620, -1, 106, 383, 01381 297, -1, 9, -1, 34, -1, 47, -1, 107, 388, 01382 385, 297, -1, 339, -1, 385, 690, -1, 385, 350, 01383 -1, 385, 650, -1, 385, 737, -1, 108, 387, 297, 01384 -1, 765, -1, 695, -1, 551, -1, 220, 390, 297, 01385 -1, -1, 390, 437, -1, 390, 432, -1, 390, 661, 01386 -1, 390, 435, -1, 390, 592, -1, 390, 590, -1, 01387 390, 405, -1, 390, 472, -1, 390, 476, -1, 390, 01388 574, -1, 390, 572, -1, 390, 420, -1, 390, 350, 01389 -1, 390, 737, -1, 109, 392, 297, -1, 428, -1, 01390 434, -1, 392, 428, -1, 392, 434, -1, 110, 394, 01391 297, -1, 26, -1, 27, -1, 40, -1, 111, 396, 01392 397, 398, 399, 297, -1, 423, -1, 426, -1, -1, 01393 483, -1, -1, 587, -1, -1, 589, -1, 112, 401, 01394 297, -1, -1, 401, 517, -1, 113, 403, 297, -1, 01395 620, -1, 403, 650, -1, 114, 670, 297, -1, 119, 01396 668, 424, 424, 406, 297, -1, 656, -1, 682, -1, 01397 406, 350, -1, 406, 737, -1, 120, 408, 297, -1, 01398 20, -1, 50, -1, 57, -1, 121, 410, 411, 412, 01399 297, -1, 533, -1, 344, -1, 692, -1, 524, -1, 01400 644, -1, 569, -1, 704, -1, -1, 378, -1, 502, 01401 -1, 122, 414, 297, -1, 644, -1, 637, -1, 631, 01402 -1, 567, -1, 561, -1, 414, 724, -1, 414, 322, 01403 -1, 123, 670, 297, -1, 124, 493, 301, 417, 297, 01404 -1, 709, -1, 417, 690, -1, 417, 336, -1, 417, 01405 350, -1, 417, 737, -1, 125, 491, 423, 297, -1, 01406 126, 297, -1, 129, 421, 297, -1, 422, -1, 421, 01407 359, -1, 421, 407, -1, 421, 609, -1, 421, 334, 01408 -1, 421, 349, -1, 421, 439, -1, 421, 333, -1, 01409 421, 711, -1, 421, 754, -1, 421, 350, -1, 421, 01410 650, -1, 421, 737, -1, 421, 451, -1, 551, -1, 01411 552, -1, 130, 425, 297, -1, 423, -1, 428, -1, 01412 434, -1, 131, 427, 297, -1, 423, -1, 427, 359, 01413 -1, 427, 407, -1, 427, 609, -1, 427, 334, -1, 01414 427, 349, -1, 427, 439, -1, 427, 333, -1, 427, 01415 711, -1, 427, 754, -1, 427, 350, -1, 427, 650, 01416 -1, 427, 737, -1, 132, 423, 429, 297, -1, -1, 01417 497, -1, 127, 431, 297, -1, 422, -1, 426, -1, 01418 431, 347, -1, 431, 402, -1, 431, 585, -1, 431, 01419 605, -1, 431, 621, -1, 431, 659, -1, 431, 675, 01420 -1, 431, 350, -1, 431, 737, -1, 128, 668, 424, 01421 433, 297, -1, 656, -1, 682, -1, 433, 350, -1, 01422 433, 737, -1, 474, -1, 732, -1, 391, -1, 478, 01423 -1, 594, -1, 133, 668, 424, 436, 297, -1, 656, 01424 -1, 682, -1, 436, 350, -1, 436, 737, -1, 134, 01425 668, 424, 438, 297, -1, 656, -1, 682, -1, 438, 01426 350, -1, 438, 737, -1, 135, 766, 766, 327, 297, 01427 -1, 136, 441, 442, 297, -1, 643, -1, 644, -1, 01428 644, -1, 704, -1, 442, 378, -1, 442, 502, -1, 01429 137, 444, 297, -1, 712, -1, 444, 413, -1, 767, 01430 446, 295, -1, -1, 446, 766, -1, 446, 765, -1, 01431 446, 764, -1, 446, 445, -1, 138, 643, 297, -1, 01432 139, 670, 297, -1, 140, 670, 670, 297, -1, 141, 01433 297, -1, 142, 452, 297, -1, 428, -1, 434, -1, 01434 143, 297, -1, 144, 464, 455, 297, -1, 750, -1, 01435 744, -1, 455, 718, -1, 455, 604, -1, 455, 635, 01436 -1, 455, 716, -1, 455, 386, -1, 455, 650, -1, 01437 455, 350, -1, 455, 737, -1, 148, 465, 457, 297, 01438 -1, -1, 456, -1, 750, -1, 145, 459, 297, -1, 01439 456, -1, 459, 386, -1, 459, 716, -1, 459, 650, 01440 -1, 459, 350, -1, 146, 461, 297, -1, -1, 461, 01441 456, -1, 147, 463, 297, -1, -1, 463, 456, -1, 01442 463, 460, -1, 463, 350, -1, 463, 737, -1, 551, 01443 -1, 312, -1, 552, -1, 536, -1, 150, 467, 297, 01444 -1, 766, -1, 467, 395, -1, 149, 469, 297, -1, 01445 -1, 469, 766, -1, 469, 466, -1, 469, 468, -1, 01446 151, 471, 297, -1, -1, 471, 623, -1, 471, 627, 01447 -1, 471, 700, -1, 471, 654, -1, 471, 315, -1, 01448 471, 602, -1, 471, 481, -1, 471, 547, -1, 471, 01449 758, -1, 471, 610, -1, 471, 716, -1, 471, 678, 01450 -1, 471, 386, -1, 471, 650, -1, 471, 350, -1, 01451 471, 737, -1, 152, 668, 424, 424, 473, 297, -1, 01452 656, -1, 682, -1, 473, 350, -1, 473, 737, -1, 01453 153, 475, 297, -1, 428, -1, 434, -1, 475, 428, 01454 -1, 475, 434, -1, 154, 668, 424, 477, 297, -1, 01455 656, -1, 682, -1, 477, 350, -1, 477, 737, -1, 01456 155, 479, 297, -1, 428, -1, 434, -1, 156, 297, 01457 -1, 157, 482, 297, -1, -1, 482, 644, -1, 482, 01458 637, -1, 482, 447, -1, 158, 484, 297, -1, 11, 01459 -1, 12, -1, 13, -1, 29, -1, 30, -1, 31, 01460 -1, 58, -1, 59, -1, 60, -1, 159, 486, 297, 01461 -1, 490, -1, 486, 395, -1, 160, 766, 297, -1, 01462 161, 489, 297, -1, 487, -1, 489, 350, -1, 764, 01463 -1, 551, -1, 162, 670, 297, -1, 551, -1, 552, 01464 -1, 163, 493, 301, 496, 297, -1, 709, -1, 496, 01465 690, -1, 496, 336, -1, 496, 350, -1, 496, 737, 01466 -1, 164, 494, 297, -1, 165, 499, 297, -1, -1, 01467 499, 553, -1, 166, 501, 297, -1, -1, 501, 623, 01468 -1, 501, 627, -1, 167, 503, 503, 297, -1, 542, 01469 -1, 540, -1, 168, 505, 506, 507, 297, -1, 643, 01470 -1, 644, -1, 644, -1, 524, -1, 704, -1, -1, 01471 378, -1, 502, -1, 169, 509, 297, -1, 637, -1, 01472 644, -1, 643, -1, 509, 528, -1, 170, 511, 297, 01473 -1, -1, 511, 517, -1, 511, 518, -1, 511, 450, 01474 -1, 171, 513, 297, -1, -1, 513, 517, -1, 172, 01475 515, 297, -1, -1, 515, 517, -1, 551, -1, 552, 01476 -1, 173, 519, 297, -1, -1, 519, 517, -1, 519, 01477 510, -1, 174, 521, 297, -1, 637, -1, 644, -1, 01478 643, -1, 521, 528, -1, 175, 523, 297, -1, 642, 01479 -1, 523, 650, -1, 523, 350, -1, 523, 737, -1, 01480 176, 517, 525, 297, -1, -1, 497, -1, 177, 527, 01481 297, -1, 516, -1, 527, 755, -1, 527, 363, -1, 01482 527, 331, -1, 527, 354, -1, 527, 757, -1, 527, 01483 699, -1, 527, 400, -1, 527, 514, -1, 527, 512, 01484 -1, 527, 480, -1, 527, 666, -1, 527, 650, -1, 01485 527, 350, -1, 527, 737, -1, 178, 529, 297, -1, 01486 -1, 529, 517, -1, 529, 510, -1, 529, 518, -1, 01487 529, 450, -1, 179, 531, 532, 297, -1, 643, -1, 01488 644, -1, -1, 378, -1, 502, -1, 180, 534, 535, 01489 297, -1, 643, -1, 644, -1, 637, -1, 517, -1, 01490 510, -1, 518, -1, 181, 552, 537, 297, -1, 766, 01491 -1, 537, 766, -1, 182, 539, 297, -1, -1, 539, 01492 542, -1, 539, 540, -1, 539, 538, -1, 183, 541, 01493 297, -1, 542, -1, 541, 395, -1, 543, -1, 670, 01494 -1, 184, 544, 544, 544, 297, -1, 670, -1, 731, 01495 -1, 730, -1, 185, 546, 297, -1, -1, 546, 657, 01496 -1, 186, 548, 297, -1, -1, 548, 644, -1, 548, 01497 637, -1, 548, 758, -1, 548, 481, -1, 187, 550, 01498 297, -1, 764, -1, 550, 395, -1, 764, -1, 549, 01499 -1, 663, -1, 764, -1, 549, -1, 188, 565, 554, 01500 297, -1, 481, -1, 554, 361, -1, 554, 559, -1, 01501 554, 430, -1, 554, 553, -1, 554, 454, -1, 554, 01502 352, -1, 554, 650, -1, 554, 350, -1, 554, 737, 01503 -1, 189, 556, 297, -1, 567, -1, 556, 559, -1, 01504 556, 361, -1, 556, 650, -1, 556, 350, -1, 190, 01505 565, 558, 297, -1, 498, -1, 558, 430, -1, 558, 01506 352, -1, 558, 650, -1, 558, 350, -1, 558, 737, 01507 -1, 191, 382, 560, 297, -1, 378, -1, 560, 724, 01508 -1, 560, 322, -1, 192, 562, 297, -1, -1, 562, 01509 566, -1, 562, 567, -1, 193, 564, 297, -1, -1, 01510 564, 567, -1, 564, 561, -1, 564, 350, -1, 564, 01511 737, -1, 551, -1, 312, -1, 552, -1, 536, -1, 01512 194, 566, 568, 297, -1, -1, 567, -1, 456, -1, 01513 750, -1, 195, 297, -1, 196, 571, 297, -1, -1, 01514 571, 644, -1, 571, 610, -1, 197, 668, 573, 297, 01515 -1, 424, -1, 573, 350, -1, 573, 737, -1, 198, 01516 668, 424, 575, 297, -1, 656, -1, 682, -1, 575, 01517 350, -1, 575, 737, -1, 199, 577, 297, -1, -1, 01518 577, 670, -1, 577, 578, -1, 577, 576, -1, 201, 01519 579, 297, -1, 670, -1, 579, 395, -1, 200, 581, 01520 297, -1, -1, 581, 669, -1, 581, 449, -1, 581, 01521 350, -1, 202, 583, 297, -1, 642, -1, 583, 736, 01522 -1, 583, 650, -1, 583, 350, -1, 583, 737, -1, 01523 203, 413, 670, 297, -1, 204, 586, 297, -1, 364, 01524 -1, 586, 650, -1, 205, 588, 297, -1, 43, -1, 01525 46, -1, 44, -1, 45, -1, 35, -1, 37, -1, 01526 38, -1, 36, -1, 206, 620, 297, -1, 207, 668, 01527 424, 424, 591, 297, -1, 656, -1, 682, -1, 591, 01528 350, -1, 591, 737, -1, 208, 668, 424, 424, 593, 01529 297, -1, 656, -1, 682, -1, 593, 350, -1, 593, 01530 737, -1, 209, 766, 595, 359, 297, -1, 428, -1, 01531 434, -1, 210, 765, 297, -1, 211, 598, 297, -1, 01532 464, -1, 598, 454, -1, 598, 553, -1, 598, 557, 01533 -1, 598, 352, -1, 598, 633, -1, 598, 599, -1, 01534 598, 335, -1, 598, 350, -1, 598, 737, -1, 212, 01535 659, 297, -1, 215, 601, 297, -1, 740, -1, 601, 01536 395, -1, 213, 739, 729, 603, 297, -1, -1, 734, 01537 -1, 214, 740, 729, 297, -1, 216, 606, 297, -1, 01538 618, -1, 606, 650, -1, 217, 608, 297, -1, 378, 01539 -1, 608, 413, -1, 218, 766, 297, -1, 219, 611, 01540 297, -1, -1, 611, 644, -1, 611, 610, -1, 611, 01541 570, -1, 221, 613, 297, -1, -1, 613, 688, -1, 01542 222, 615, 297, -1, -1, 615, 620, -1, 615, 616, 01543 -1, 615, 614, -1, 223, 617, 297, -1, 620, -1, 01544 617, 395, -1, 224, 619, 297, -1, -1, 619, 620, 01545 -1, 241, 766, 766, 297, -1, 225, 622, 297, -1, 01546 618, -1, 622, 650, -1, 226, 624, 297, -1, 642, 01547 -1, 624, 393, -1, 624, 736, -1, 624, 629, -1, 01548 624, 386, -1, 624, 370, -1, 624, 372, -1, 624, 01549 374, -1, 624, 376, -1, 624, 303, -1, 624, 650, 01550 -1, 624, 350, -1, 624, 737, -1, 227, 626, 297, 01551 -1, 644, -1, 626, 386, -1, 626, 629, -1, 626, 01552 370, -1, 626, 372, -1, 626, 374, -1, 626, 376, 01553 -1, 626, 303, -1, 626, 650, -1, 626, 350, -1, 01554 228, 642, 628, 297, -1, 500, -1, 628, 650, -1, 01555 628, 350, -1, 628, 737, -1, 229, 382, 630, 297, 01556 -1, 378, -1, 502, -1, 630, 724, -1, 630, 322, 01557 -1, 230, 632, 297, -1, -1, 632, 643, -1, 632, 01558 644, -1, 231, 634, 297, -1, 644, -1, 643, -1, 01559 634, 357, -1, 634, 430, -1, 634, 454, -1, 634, 01560 352, -1, 634, 648, -1, 634, 485, -1, 634, 650, 01561 -1, 634, 737, -1, 634, 350, -1, 232, 636, 297, 01562 -1, 644, -1, 643, -1, 636, 736, -1, 636, 629, 01563 -1, 636, 386, -1, 636, 370, -1, 636, 372, -1, 01564 636, 374, -1, 636, 376, -1, 636, 303, -1, 636, 01565 650, -1, 636, 350, -1, 636, 737, -1, 233, 638, 01566 297, -1, -1, 638, 644, -1, 638, 643, -1, 234, 01567 642, 637, 297, -1, 235, 641, 297, -1, -1, 641, 01568 644, -1, 641, 631, -1, 641, 350, -1, 641, 737, 01569 -1, 551, -1, 312, -1, 552, -1, 536, -1, 236, 01570 643, 645, 297, -1, -1, 644, -1, 456, -1, 750, 01571 -1, 237, 765, 647, 297, -1, -1, 741, -1, 239, 01572 649, 297, -1, 653, -1, 649, 395, -1, 238, 652, 01573 651, 297, -1, 729, -1, 651, 596, -1, 651, 734, 01574 -1, 651, 650, -1, 651, 350, -1, 551, -1, 552, 01575 -1, 240, 655, 297, -1, -1, 655, 633, -1, 655, 01576 430, -1, 655, 454, -1, 655, 352, -1, 655, 335, 01577 -1, 655, 648, -1, 655, 485, -1, 655, 600, -1, 01578 655, 650, -1, 655, 350, -1, 655, 737, -1, 492, 01579 -1, 448, -1, 319, -1, 318, -1, 415, -1, 324, 01580 -1, 242, 658, 297, -1, -1, 658, 656, -1, 658, 01581 682, -1, 243, 620, 660, 297, -1, 620, -1, 660, 01582 650, -1, 244, 668, 424, 662, 297, -1, 657, -1, 01583 545, -1, 662, 350, -1, 662, 737, -1, 245, 664, 01584 665, 297, -1, 764, -1, 549, -1, 765, -1, 695, 01585 -1, 246, 667, 297, -1, -1, 667, 517, -1, 551, 01586 -1, 247, 670, 670, 734, 297, -1, 766, -1, 115, 01587 766, 766, 297, -1, 248, 766, 766, 297, -1, 249, 01588 766, 766, 297, -1, 250, 674, 297, -1, 765, -1, 01589 674, 673, -1, 674, 765, -1, 674, 454, -1, 251, 01590 676, 297, -1, 364, -1, 676, 650, -1, 551, -1, 01591 252, 679, 297, -1, 677, -1, 679, 639, -1, 679, 01592 756, -1, 679, 309, -1, 679, 350, -1, 679, 737, 01593 -1, 253, 681, 297, -1, -1, 681, 526, -1, 681, 01594 350, -1, 681, 737, -1, 254, 683, 297, -1, -1, 01595 656, -1, 255, 750, 685, 297, -1, -1, 718, -1, 01596 256, 687, 297, -1, -1, 702, -1, 257, 689, 297, 01597 -1, 702, -1, 689, 684, -1, 258, 691, 297, -1, 01598 -1, 691, 762, -1, 691, 350, -1, 691, 737, -1, 01599 259, 693, 694, 297, -1, 643, -1, 644, -1, 637, 01600 -1, 404, -1, 694, 724, -1, 694, 322, -1, 261, 01601 698, 297, -1, 260, 697, 297, -1, -1, 697, 765, 01602 -1, 697, 695, -1, 697, 696, -1, 765, -1, 698, 01603 395, -1, 262, 517, 297, -1, 263, 701, 297, -1, 01604 -1, 701, 633, -1, 701, 430, -1, 701, 454, -1, 01605 701, 352, -1, 701, 307, -1, 701, 599, -1, 701, 01606 335, -1, 701, 648, -1, 701, 485, -1, 701, 600, 01607 -1, 701, 650, -1, 701, 350, -1, 701, 737, -1, 01608 264, 703, 297, -1, -1, 703, 718, -1, 265, 705, 01609 297, -1, -1, 705, 409, -1, 705, 706, -1, 266, 01610 707, 708, 297, -1, 524, -1, 644, -1, 569, -1, 01611 704, -1, -1, 378, -1, 502, -1, 267, 710, 297, 01612 -1, 580, -1, 710, 420, -1, 710, 418, -1, 710, 01613 680, -1, 710, 389, -1, 710, 350, -1, 710, 737, 01614 -1, 268, 766, 297, -1, 269, 713, 714, 297, -1, 01615 413, -1, 584, -1, 413, -1, 584, -1, 404, -1, 01616 270, 766, 766, 766, 766, 766, 766, 297, -1, 271, 01617 717, 297, -1, 382, -1, 717, 607, -1, 717, 443, 01618 -1, 717, 350, -1, 717, 737, -1, 272, 719, 720, 01619 721, 722, 723, 297, -1, -1, 671, -1, -1, 672, 01620 -1, -1, 380, -1, -1, 587, -1, -1, 589, -1, 01621 273, 725, 725, 297, -1, 517, -1, 510, -1, 518, 01622 -1, 274, 727, 297, -1, -1, 727, 344, -1, 727, 01623 692, -1, 727, 453, -1, 275, 297, -1, 327, -1, 01624 468, -1, 538, -1, 576, -1, 614, -1, 696, -1, 01625 276, 297, -1, 277, 297, -1, 278, 733, 297, -1, 01626 428, -1, 434, -1, 733, 428, -1, 733, 434, -1, 01627 279, 735, 297, -1, 17, -1, 10, -1, 16, -1, 01628 48, -1, 54, -1, 56, -1, 61, -1, 33, -1, 01629 22, -1, 25, -1, 19, -1, 42, -1, 14, -1, 01630 15, -1, 21, -1, 7, -1, 280, 297, -1, 281, 01631 738, 297, -1, 764, -1, 738, 766, -1, 738, 765, 01632 -1, 738, 764, -1, 738, 445, -1, 551, -1, 312, 01633 -1, 552, -1, 536, -1, 282, 765, 297, -1, 283, 01634 748, 752, 743, 297, -1, 470, -1, 743, 690, -1, 01635 743, 355, -1, 743, 350, -1, 743, 650, -1, 743, 01636 737, -1, 284, 745, 297, -1, -1, 745, 750, -1, 01637 745, 744, -1, 285, 747, 297, -1, -1, 747, 640, 01638 -1, 747, 625, -1, 747, 462, -1, 747, 458, -1, 01639 747, 563, -1, 747, 555, -1, 747, 350, -1, 747, 01640 737, -1, 551, -1, 552, -1, 286, 749, 751, 297, 01641 -1, -1, 339, -1, 287, 753, 297, -1, 32, -1, 01642 41, -1, 39, -1, 51, -1, 53, -1, 8, -1, 01643 28, -1, 18, -1, 24, -1, 52, -1, 288, 332, 01644 297, -1, 289, 542, 297, -1, 290, 516, 670, 528, 01645 297, -1, 291, 517, 297, -1, 292, 759, 297, -1, 01646 -1, 759, 644, -1, 759, 637, -1, 759, 481, -1, 01647 293, 761, 297, -1, 726, -1, 761, 305, -1, 761, 01648 440, -1, 761, 530, -1, 761, 504, -1, 761, 350, 01649 -1, 761, 737, -1, 294, 763, 297, -1, 715, -1, 01650 763, 320, -1, 763, 646, -1, 763, 368, -1, 763, 01651 650, -1, 763, 350, -1, 763, 737, -1, 3, -1, 01652 6, -1, 4, -1, 5, -1 01653 }; 01654 01655 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 01656 static const yytype_uint16 yyrline[] = 01657 { 01658 0, 505, 505, 508, 511, 512, 513, 514, 515, 516, 01659 517, 520, 523, 526, 530, 533, 534, 537, 540, 541, 01660 542, 543, 544, 545, 548, 551, 552, 555, 558, 559, 01661 560, 561, 562, 565, 568, 571, 572, 575, 578, 581, 01662 582, 583, 584, 585, 588, 591, 594, 597, 600, 603, 01663 606, 607, 608, 611, 614, 615, 618, 619, 622, 625, 01664 626, 627, 628, 631, 634, 635, 638, 641, 642, 645, 01665 648, 651, 654, 657, 658, 659, 660, 661, 662, 663, 01666 666, 669, 672, 673, 676, 679, 682, 683, 684, 687, 01667 690, 691, 692, 695, 696, 697, 700, 703, 704, 707, 01668 710, 713, 714, 717, 720, 721, 722, 723, 724, 725, 01669 726, 727, 730, 733, 736, 737, 738, 739, 740, 741, 01670 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 01671 752, 753, 756, 759, 760, 763, 766, 767, 768, 771, 01672 774, 775, 778, 781, 784, 785, 786, 789, 792, 793, 01673 796, 799, 800, 803, 806, 807, 810, 813, 814, 817, 01674 820, 821, 824, 827, 828, 831, 834, 835, 838, 841, 01675 842, 845, 848, 849, 850, 853, 856, 857, 858, 859, 01676 860, 863, 866, 867, 870, 873, 876, 877, 878, 879, 01677 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 01678 890, 893, 896, 897, 898, 899, 902, 905, 906, 907, 01679 910, 913, 914, 917, 918, 921, 922, 925, 926, 929, 01680 932, 933, 936, 939, 940, 943, 946, 950, 951, 952, 01681 953, 956, 959, 960, 961, 964, 968, 969, 970, 973, 01682 974, 975, 976, 979, 980, 981, 984, 987, 988, 989, 01683 990, 991, 992, 993, 996, 999, 1002, 1003, 1004, 1005, 01684 1006, 1009, 1012, 1015, 1018, 1019, 1020, 1021, 1022, 1023, 01685 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1034, 1037, 01686 1040, 1043, 1044, 1045, 1048, 1051, 1052, 1053, 1054, 1055, 01687 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1066, 1069, 01688 1070, 1073, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 01689 1084, 1085, 1086, 1089, 1092, 1093, 1094, 1095, 1098, 1099, 01690 1100, 1101, 1102, 1105, 1108, 1109, 1110, 1111, 1114, 1117, 01691 1118, 1119, 1120, 1123, 1126, 1129, 1130, 1133, 1134, 1135, 01692 1136, 1139, 1142, 1143, 1146, 1149, 1150, 1151, 1152, 1153, 01693 1156, 1159, 1162, 1165, 1168, 1171, 1172, 1175, 1178, 1181, 01694 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1193, 01695 1196, 1197, 1198, 1201, 1204, 1205, 1206, 1207, 1208, 1211, 01696 1214, 1215, 1218, 1221, 1222, 1223, 1224, 1225, 1228, 1229, 01697 1232, 1233, 1236, 1239, 1240, 1243, 1246, 1247, 1248, 1249, 01698 1252, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 01699 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1274, 1278, 01700 1279, 1280, 1281, 1284, 1287, 1288, 1289, 1290, 1293, 1296, 01701 1297, 1298, 1299, 1302, 1305, 1306, 1309, 1312, 1315, 1316, 01702 1317, 1318, 1321, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 01703 1331, 1332, 1335, 1338, 1339, 1342, 1345, 1348, 1349, 1352, 01704 1355, 1358, 1361, 1364, 1367, 1370, 1371, 1372, 1373, 1374, 01705 1377, 1380, 1383, 1384, 1387, 1390, 1391, 1392, 1395, 1398, 01706 1399, 1402, 1405, 1406, 1409, 1410, 1411, 1414, 1415, 1416, 01707 1419, 1422, 1423, 1424, 1425, 1428, 1431, 1432, 1433, 1434, 01708 1437, 1440, 1441, 1444, 1447, 1448, 1451, 1454, 1457, 1460, 01709 1461, 1462, 1465, 1468, 1469, 1470, 1471, 1474, 1477, 1478, 01710 1479, 1480, 1483, 1486, 1487, 1490, 1493, 1494, 1495, 1496, 01711 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 01712 1507, 1510, 1513, 1514, 1515, 1516, 1517, 1520, 1523, 1524, 01713 1527, 1528, 1529, 1532, 1535, 1536, 1537, 1540, 1541, 1542, 01714 1545, 1548, 1549, 1552, 1555, 1556, 1557, 1558, 1561, 1564, 01715 1565, 1568, 1569, 1572, 1575, 1576, 1577, 1580, 1583, 1584, 01716 1587, 1590, 1591, 1592, 1593, 1594, 1597, 1600, 1601, 1604, 01717 1605, 1606, 1609, 1610, 1613, 1616, 1617, 1618, 1619, 1620, 01718 1621, 1622, 1623, 1624, 1625, 1628, 1631, 1632, 1633, 1634, 01719 1635, 1638, 1641, 1642, 1643, 1644, 1645, 1646, 1649, 1652, 01720 1653, 1654, 1657, 1660, 1661, 1662, 1665, 1668, 1669, 1670, 01721 1671, 1672, 1675, 1676, 1680, 1681, 1684, 1687, 1688, 1689, 01722 1690, 1693, 1696, 1699, 1700, 1701, 1704, 1707, 1708, 1709, 01723 1712, 1715, 1716, 1717, 1718, 1721, 1724, 1725, 1726, 1727, 01724 1730, 1733, 1734, 1737, 1740, 1741, 1742, 1743, 1746, 1749, 01725 1750, 1751, 1752, 1753, 1756, 1759, 1762, 1763, 1766, 1769, 01726 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1779, 1782, 1786, 01727 1787, 1788, 1789, 1792, 1796, 1797, 1798, 1799, 1802, 1805, 01728 1806, 1809, 1812, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 01729 1822, 1823, 1824, 1827, 1830, 1833, 1834, 1837, 1840, 1841, 01730 1844, 1847, 1850, 1851, 1854, 1857, 1858, 1861, 1864, 1867, 01731 1868, 1869, 1870, 1873, 1876, 1877, 1880, 1883, 1884, 1885, 01732 1886, 1889, 1892, 1893, 1896, 1899, 1900, 1903, 1906, 1909, 01733 1910, 1913, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 01734 1924, 1925, 1926, 1927, 1928, 1931, 1934, 1935, 1936, 1937, 01735 1938, 1939, 1940, 1941, 1942, 1943, 1946, 1949, 1950, 1951, 01736 1952, 1955, 1958, 1959, 1960, 1961, 1964, 1967, 1968, 1969, 01737 1972, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 01738 1984, 1985, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 01739 1998, 1999, 2000, 2001, 2002, 2003, 2006, 2009, 2010, 2011, 01740 2014, 2017, 2020, 2021, 2022, 2023, 2024, 2027, 2028, 2031, 01741 2032, 2035, 2050, 2051, 2052, 2053, 2056, 2059, 2060, 2063, 01742 2066, 2067, 2070, 2073, 2074, 2075, 2076, 2077, 2080, 2083, 01743 2086, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 01744 2098, 2099, 2100, 2103, 2104, 2105, 2106, 2107, 2108, 2111, 01745 2114, 2115, 2116, 2119, 2122, 2123, 2126, 2129, 2130, 2131, 01746 2132, 2135, 2139, 2140, 2143, 2144, 2147, 2150, 2151, 2154, 01747 2157, 2160, 2161, 2164, 2167, 2170, 2173, 2174, 2175, 2176, 01748 2179, 2182, 2183, 2186, 2189, 2192, 2193, 2194, 2195, 2196, 01749 2197, 2200, 2203, 2204, 2205, 2206, 2209, 2212, 2213, 2216, 01750 2219, 2220, 2223, 2226, 2227, 2230, 2233, 2234, 2237, 2240, 01751 2241, 2242, 2243, 2246, 2249, 2250, 2251, 2254, 2255, 2256, 01752 2259, 2262, 2265, 2266, 2267, 2268, 2271, 2272, 2275, 2278, 01753 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 01754 2291, 2292, 2293, 2294, 2297, 2300, 2301, 2304, 2307, 2308, 01755 2309, 2312, 2315, 2316, 2317, 2318, 2321, 2322, 2323, 2326, 01756 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2338, 2341, 2344, 01757 2345, 2348, 2349, 2350, 2353, 2357, 2360, 2361, 2362, 2363, 01758 2364, 2367, 2371, 2372, 2375, 2376, 2379, 2380, 2383, 2384, 01759 2387, 2388, 2391, 2394, 2395, 2396, 2399, 2402, 2403, 2404, 01760 2405, 2408, 2411, 2412, 2413, 2414, 2415, 2416, 2419, 2422, 01761 2425, 2428, 2429, 2430, 2431, 2434, 2437, 2438, 2439, 2440, 01762 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 01763 2451, 2452, 2455, 2458, 2461, 2462, 2463, 2464, 2465, 2468, 01764 2469, 2472, 2473, 2476, 2479, 2482, 2483, 2484, 2485, 2486, 01765 2487, 2490, 2493, 2494, 2495, 2498, 2501, 2502, 2503, 2504, 01766 2505, 2506, 2507, 2508, 2509, 2512, 2515, 2518, 2521, 2522, 01767 2525, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 01768 2537, 2540, 2543, 2546, 2549, 2552, 2555, 2556, 2557, 2558, 01769 2561, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2573, 2576, 01770 2577, 2578, 2579, 2580, 2581, 2582, 2585, 2588, 2591, 2594 01771 }; 01772 #endif 01773 01774 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 01775 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 01776 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 01777 static const char *const yytname[] = 01778 { 01779 "$end", "error", "$undefined", "EDIF_TOK_IDENT", "EDIF_TOK_INT", 01780 "EDIF_TOK_KEYWORD", "EDIF_TOK_STR", "EDIF_TOK_ANGLE", 01781 "EDIF_TOK_BEHAVIOR", "EDIF_TOK_CALCULATED", "EDIF_TOK_CAPACITANCE", 01782 "EDIF_TOK_CENTERCENTER", "EDIF_TOK_CENTERLEFT", "EDIF_TOK_CENTERRIGHT", 01783 "EDIF_TOK_CHARGE", "EDIF_TOK_CONDUCTANCE", "EDIF_TOK_CURRENT", 01784 "EDIF_TOK_DISTANCE", "EDIF_TOK_DOCUMENT", "EDIF_TOK_ENERGY", 01785 "EDIF_TOK_EXTEND", "EDIF_TOK_FLUX", "EDIF_TOK_FREQUENCY", 01786 "EDIF_TOK_GENERIC", "EDIF_TOK_GRAPHIC", "EDIF_TOK_INDUCTANCE", 01787 "EDIF_TOK_INOUT", "EDIF_TOK_INPUT", "EDIF_TOK_LOGICMODEL", 01788 "EDIF_TOK_LOWERCENTER", "EDIF_TOK_LOWERLEFT", "EDIF_TOK_LOWERRIGHT", 01789 "EDIF_TOK_MASKLAYOUT", "EDIF_TOK_MASS", "EDIF_TOK_MEASURED", 01790 "EDIF_TOK_MX", "EDIF_TOK_MXR90", "EDIF_TOK_MY", "EDIF_TOK_MYR90", 01791 "EDIF_TOK_NETLIST", "EDIF_TOK_OUTPUT", "EDIF_TOK_PCBLAYOUT", 01792 "EDIF_TOK_POWER", "EDIF_TOK_R0", "EDIF_TOK_R180", "EDIF_TOK_R270", 01793 "EDIF_TOK_R90", "EDIF_TOK_REQUIRED", "EDIF_TOK_RESISTANCE", 01794 "EDIF_TOK_RIPPER", "EDIF_TOK_ROUND", "EDIF_TOK_SCHEMATIC", 01795 "EDIF_TOK_STRANGER", "EDIF_TOK_SYMBOLIC", "EDIF_TOK_TEMPERATURE", 01796 "EDIF_TOK_TIE", "EDIF_TOK_TIME", "EDIF_TOK_TRUNCATE", 01797 "EDIF_TOK_UPPERCENTER", "EDIF_TOK_UPPERLEFT", "EDIF_TOK_UPPERRIGHT", 01798 "EDIF_TOK_VOLTAGE", "EDIF_TOK_ACLOAD", "EDIF_TOK_AFTER", 01799 "EDIF_TOK_ANNOTATE", "EDIF_TOK_APPLY", "EDIF_TOK_ARC", "EDIF_TOK_ARRAY", 01800 "EDIF_TOK_ARRAYMACRO", "EDIF_TOK_ARRAYRELATEDINFO", "EDIF_TOK_ARRAYSITE", 01801 "EDIF_TOK_ATLEAST", "EDIF_TOK_ATMOST", "EDIF_TOK_AUTHOR", 01802 "EDIF_TOK_BASEARRAY", "EDIF_TOK_BECOMES", "EDIF_TOK_BETWEEN", 01803 "EDIF_TOK_BOOLEAN", "EDIF_TOK_BOOLEANDISPLAY", "EDIF_TOK_BOOLEANMAP", 01804 "EDIF_TOK_BORDERPATTERN", "EDIF_TOK_BORDERWIDTH", "EDIF_TOK_BOUNDINGBOX", 01805 "EDIF_TOK_CELL", "EDIF_TOK_CELLREF", "EDIF_TOK_CELLTYPE", 01806 "EDIF_TOK_CHANGE", "EDIF_TOK_CIRCLE", "EDIF_TOK_COLOR", 01807 "EDIF_TOK_COMMENT", "EDIF_TOK_COMMENTGRAPHICS", "EDIF_TOK_COMPOUND", 01808 "EDIF_TOK_CONNECTLOCATION", "EDIF_TOK_CONTENTS", "EDIF_TOK_CORNERTYPE", 01809 "EDIF_TOK_CRITICALITY", "EDIF_TOK_CURRENTMAP", "EDIF_TOK_CURVE", 01810 "EDIF_TOK_CYCLE", "EDIF_TOK_DATAORIGIN", "EDIF_TOK_DCFANINLOAD", 01811 "EDIF_TOK_DCFANOUTLOAD", "EDIF_TOK_DCMAXFANIN", "EDIF_TOK_DCMAXFANOUT", 01812 "EDIF_TOK_DELAY", "EDIF_TOK_DELTA", "EDIF_TOK_DERIVATION", 01813 "EDIF_TOK_DESIGN", "EDIF_TOK_DESIGNATOR", "EDIF_TOK_DIFFERENCE", 01814 "EDIF_TOK_DIRECTION", "EDIF_TOK_DISPLAY", "EDIF_TOK_DOMINATES", 01815 "EDIF_TOK_DOT", "EDIF_TOK_DURATION", "EDIF_TOK_E", "EDIF_TOK_EDIF", 01816 "EDIF_TOK_EDIFLEVEL", "EDIF_TOK_EDIFVERSION", 01817 "EDIF_TOK_ENCLOSUREDISTANCE", "EDIF_TOK_ENDTYPE", "EDIF_TOK_ENTRY", 01818 "EDIF_TOK_EVENT", "EDIF_TOK_EXACTLY", "EDIF_TOK_EXTERNAL", 01819 "EDIF_TOK_FABRICATE", "EDIF_TOK_FALSE", "EDIF_TOK_FIGURE", 01820 "EDIF_TOK_FIGUREAREA", "EDIF_TOK_FIGUREGROUP", 01821 "EDIF_TOK_FIGUREGROUPOBJECT", "EDIF_TOK_FIGUREGROUPOVERRIDE", 01822 "EDIF_TOK_FIGUREGROUPREF", "EDIF_TOK_FIGUREPERIMETER", 01823 "EDIF_TOK_FIGUREWIDTH", "EDIF_TOK_FILLPATTERN", "EDIF_TOK_FOLLOW", 01824 "EDIF_TOK_FORBIDDENEVENT", "EDIF_TOK_GLOBALPORTREF", 01825 "EDIF_TOK_GREATERTHAN", "EDIF_TOK_GRIDMAP", "EDIF_TOK_IGNORE", 01826 "EDIF_TOK_INCLUDEFIGUREGROUP", "EDIF_TOK_INITIAL", "EDIF_TOK_INSTANCE", 01827 "EDIF_TOK_INSTANCEBACKANNOTATE", "EDIF_TOK_INSTANCEGROUP", 01828 "EDIF_TOK_INSTANCEMAP", "EDIF_TOK_INSTANCEREF", "EDIF_TOK_INTEGER", 01829 "EDIF_TOK_INTEGERDISPLAY", "EDIF_TOK_INTERFACE", 01830 "EDIF_TOK_INTERFIGUREGROUPSPACING", "EDIF_TOK_INTERSECTION", 01831 "EDIF_TOK_INTRAFIGUREGROUPSPACING", "EDIF_TOK_INVERSE", 01832 "EDIF_TOK_ISOLATED", "EDIF_TOK_JOINED", "EDIF_TOK_JUSTIFY", 01833 "EDIF_TOK_KEYWORDDISPLAY", "EDIF_TOK_KEYWORDLEVEL", 01834 "EDIF_TOK_KEYWORDMAP", "EDIF_TOK_LESSTHAN", "EDIF_TOK_LIBRARY", 01835 "EDIF_TOK_LIBRARYREF", "EDIF_TOK_LISTOFNETS", "EDIF_TOK_LISTOFPORTS", 01836 "EDIF_TOK_LOADDELAY", "EDIF_TOK_LOGICASSIGN", "EDIF_TOK_LOGICINPUT", 01837 "EDIF_TOK_LOGICLIST", "EDIF_TOK_LOGICMAPINPUT", 01838 "EDIF_TOK_LOGICMAPOUTPUT", "EDIF_TOK_LOGICONEOF", "EDIF_TOK_LOGICOUTPUT", 01839 "EDIF_TOK_LOGICPORT", "EDIF_TOK_LOGICREF", "EDIF_TOK_LOGICVALUE", 01840 "EDIF_TOK_LOGICWAVEFORM", "EDIF_TOK_MAINTAIN", "EDIF_TOK_MATCH", 01841 "EDIF_TOK_MEMBER", "EDIF_TOK_MINOMAX", "EDIF_TOK_MINOMAXDISPLAY", 01842 "EDIF_TOK_MNM", "EDIF_TOK_MULTIPLEVALUESET", "EDIF_TOK_MUSTJOIN", 01843 "EDIF_TOK_NAME", "EDIF_TOK_NET", "EDIF_TOK_NETBACKANNOTATE", 01844 "EDIF_TOK_NETBUNDLE", "EDIF_TOK_NETDELAY", "EDIF_TOK_NETGROUP", 01845 "EDIF_TOK_NETMAP", "EDIF_TOK_NETREF", "EDIF_TOK_NOCHANGE", 01846 "EDIF_TOK_NONPERMUTABLE", "EDIF_TOK_NOTALLOWED", "EDIF_TOK_NOTCHSPACING", 01847 "EDIF_TOK_NUMBER", "EDIF_TOK_NUMBERDEFINITION", "EDIF_TOK_NUMBERDISPLAY", 01848 "EDIF_TOK_OFFPAGECONNECTOR", "EDIF_TOK_OFFSETEVENT", 01849 "EDIF_TOK_OPENSHAPE", "EDIF_TOK_ORIENTATION", "EDIF_TOK_ORIGIN", 01850 "EDIF_TOK_OVERHANGDISTANCE", "EDIF_TOK_OVERLAPDISTANCE", 01851 "EDIF_TOK_OVERSIZE", "EDIF_TOK_OWNER", "EDIF_TOK_PAGE", 01852 "EDIF_TOK_PAGESIZE", "EDIF_TOK_PARAMETER", "EDIF_TOK_PARAMETERASSIGN", 01853 "EDIF_TOK_PARAMETERDISPLAY", "EDIF_TOK_PATH", "EDIF_TOK_PATHDELAY", 01854 "EDIF_TOK_PATHWIDTH", "EDIF_TOK_PERMUTABLE", 01855 "EDIF_TOK_PHYSICALDESIGNRULE", "EDIF_TOK_PLUG", "EDIF_TOK_POINT", 01856 "EDIF_TOK_POINTDISPLAY", "EDIF_TOK_POINTLIST", "EDIF_TOK_POLYGON", 01857 "EDIF_TOK_PORT", "EDIF_TOK_PORTBACKANNOTATE", "EDIF_TOK_PORTBUNDLE", 01858 "EDIF_TOK_PORTDELAY", "EDIF_TOK_PORTGROUP", 01859 "EDIF_TOK_PORTIMPLEMENTATION", "EDIF_TOK_PORTINSTANCE", 01860 "EDIF_TOK_PORTLIST", "EDIF_TOK_PORTLISTALIAS", "EDIF_TOK_PORTMAP", 01861 "EDIF_TOK_PORTREF", "EDIF_TOK_PROGRAM", "EDIF_TOK_PROPERTY", 01862 "EDIF_TOK_PROPERTYDISPLAY", "EDIF_TOK_PROTECTIONFRAME", "EDIF_TOK_PT", 01863 "EDIF_TOK_RANGEVECTOR", "EDIF_TOK_RECTANGLE", "EDIF_TOK_RECTANGLESIZE", 01864 "EDIF_TOK_RENAME", "EDIF_TOK_RESOLVES", "EDIF_TOK_SCALE", 01865 "EDIF_TOK_SCALEX", "EDIF_TOK_SCALEY", "EDIF_TOK_SECTION", 01866 "EDIF_TOK_SHAPE", "EDIF_TOK_SIMULATE", "EDIF_TOK_SIMULATIONINFO", 01867 "EDIF_TOK_SINGLEVALUESET", "EDIF_TOK_SITE", "EDIF_TOK_SOCKET", 01868 "EDIF_TOK_SOCKETSET", "EDIF_TOK_STATUS", "EDIF_TOK_STEADY", 01869 "EDIF_TOK_STRING", "EDIF_TOK_STRINGDISPLAY", "EDIF_TOK_STRONG", 01870 "EDIF_TOK_SYMBOL", "EDIF_TOK_SYMMETRY", "EDIF_TOK_TABLE", 01871 "EDIF_TOK_TABLEDEFAULT", "EDIF_TOK_TECHNOLOGY", "EDIF_TOK_TEXTHEIGHT", 01872 "EDIF_TOK_TIMEINTERVAL", "EDIF_TOK_TIMESTAMP", "EDIF_TOK_TIMING", 01873 "EDIF_TOK_TRANSFORM", "EDIF_TOK_TRANSITION", "EDIF_TOK_TRIGGER", 01874 "EDIF_TOK_TRUE", "EDIF_TOK_UNCONSTRAINED", "EDIF_TOK_UNDEFINED", 01875 "EDIF_TOK_UNION", "EDIF_TOK_UNIT", "EDIF_TOK_UNUSED", 01876 "EDIF_TOK_USERDATA", "EDIF_TOK_VERSION", "EDIF_TOK_VIEW", 01877 "EDIF_TOK_VIEWLIST", "EDIF_TOK_VIEWMAP", "EDIF_TOK_VIEWREF", 01878 "EDIF_TOK_VIEWTYPE", "EDIF_TOK_VISIBLE", "EDIF_TOK_VOLTAGEMAP", 01879 "EDIF_TOK_WAVEVALUE", "EDIF_TOK_WEAK", "EDIF_TOK_WEAKJOINED", 01880 "EDIF_TOK_WHEN", "EDIF_TOK_WRITTEN", "')'", "$accept", "PopC", "Edif", 01881 "_Edif", "EdifFileName", "EdifLevel", "EdifVersion", "AcLoad", "_AcLoad", 01882 "After", "_After", "Annotate", "_Annotate", "Apply", "_Apply", "Arc", 01883 "Array", "_Array", "ArrayMacro", "ArrayRelInfo", "_ArrayRelInfo", 01884 "ArraySite", "AtLeast", "AtMost", "Author", "BaseArray", "Becomes", 01885 "_Becomes", "Between", "__Between", "_Between", "Boolean", "_Boolean", 01886 "BooleanDisp", "_BooleanDisp", "BooleanMap", "BooleanValue", "BorderPat", 01887 "BorderWidth", "BoundBox", "Cell", "_Cell", "CellNameDef", "CellRef", 01888 "_CellRef", "CellNameRef", "CellType", "_CellType", "Change", "__Change", 01889 "_Change", "Circle", "_Circle", "Color", "Comment", "_Comment", 01890 "CommGraph", "_CommGraph", "Compound", "Contents", "_Contents", 01891 "ConnectLoc", "_ConnectLoc", "CornerType", "_CornerType", "Criticality", 01892 "_Criticality", "CurrentMap", "Curve", "_Curve", "Cycle", "_Cycle", 01893 "DataOrigin", "_DataOrigin", "DcFanInLoad", "_DcFanInLoad", 01894 "DcFanOutLoad", "_DcFanOutLoad", "DcMaxFanIn", "_DcMaxFanIn", 01895 "DcMaxFanOut", "_DcMaxFanOut", "Delay", "_Delay", "Delta", "_Delta", 01896 "Derivation", "_Derivation", "Design", "_Design", "Designator", 01897 "_Designator", "DesignNameDef", "DesignRule", "_DesignRule", 01898 "Difference", "_Difference", "Direction", "_Direction", "Display", 01899 "_Display", "_DisplayJust", "_DisplayOrien", "_DisplayOrg", "Dominates", 01900 "_Dominates", "Dot", "_Dot", "Duration", "EncloseDist", "_EncloseDist", 01901 "EndType", "_EndType", "Entry", "___Entry", "__Entry", "_Entry", "Event", 01902 "_Event", "Exactly", "External", "_External", "Fabricate", "False", 01903 "FigGrp", "_FigGrp", "FigGrpNameDef", "FigGrpNameRef", "FigGrpObj", 01904 "_FigGrpObj", "FigGrpOver", "_FigGrpOver", "FigGrpRef", "_FigGrpRef", 01905 "Figure", "_Figure", "FigureArea", "_FigureArea", "FigureOp", 01906 "FigurePerim", "_FigurePerim", "FigureWidth", "_FigureWidth", 01907 "FillPattern", "Follow", "__Follow", "_Follow", "Forbidden", 01908 "_Forbidden", "Form", "_Form", "GlobPortRef", "GreaterThan", "GridMap", 01909 "Ignore", "IncFigGrp", "_IncFigGrp", "Initial", "Instance", "_Instance", 01910 "InstanceRef", "_InstanceRef", "InstBackAn", "_InstBackAn", "InstGroup", 01911 "_InstGroup", "InstMap", "_InstMap", "InstNameDef", "InstNameRef", 01912 "IntDisplay", "_IntDisplay", "Integer", "_Integer", "Interface", 01913 "_Interface", "InterFigGrp", "_InterFigGrp", "Intersection", 01914 "_Intersection", "IntraFigGrp", "_IntraFigGrp", "Inverse", "_Inverse", 01915 "Isolated", "Joined", "_Joined", "Justify", "_Justify", "KeywordDisp", 01916 "_KeywordDisp", "KeywordLevel", "KeywordMap", "_KeywordMap", 01917 "KeywordName", "LayerNameDef", "LessThan", "LibNameDef", "LibNameRef", 01918 "Library", "_Library", "LibraryRef", "ListOfNets", "_ListOfNets", 01919 "ListOfPorts", "_ListOfPorts", "LoadDelay", "_LoadDelay", "LogicAssn", 01920 "___LogicAssn", "__LogicAssn", "_LogicAssn", "LogicIn", "_LogicIn", 01921 "LogicList", "_LogicList", "LogicMapIn", "_LogicMapIn", "LogicMapOut", 01922 "_LogicMapOut", "LogicNameDef", "LogicNameRef", "LogicOneOf", 01923 "_LogicOneOf", "LogicOut", "_LogicOut", "LogicPort", "_LogicPort", 01924 "LogicRef", "_LogicRef", "LogicValue", "_LogicValue", "LogicWave", 01925 "_LogicWave", "Maintain", "__Maintain", "_Maintain", "Match", "__Match", 01926 "_Match", "Member", "_Member", "MiNoMa", "_MiNoMa", "MiNoMaDisp", 01927 "_MiNoMaDisp", "MiNoMaValue", "Mnm", "_Mnm", "MultValSet", "_MultValSet", 01928 "MustJoin", "_MustJoin", "Name", "_Name", "NameDef", "NameRef", "Net", 01929 "_Net", "NetBackAn", "_NetBackAn", "NetBundle", "_NetBundle", "NetDelay", 01930 "_NetDelay", "NetGroup", "_NetGroup", "NetMap", "_NetMap", "NetNameDef", 01931 "NetNameRef", "NetRef", "_NetRef", "NoChange", "NonPermut", "_NonPermut", 01932 "NotAllowed", "_NotAllowed", "NotchSpace", "_NotchSpace", "Number", 01933 "_Number", "NumbDisplay", "_NumbDisplay", "NumberDefn", "_NumberDefn", 01934 "OffPageConn", "_OffPageConn", "OffsetEvent", "OpenShape", "_OpenShape", 01935 "Orientation", "_Orientation", "Origin", "OverhngDist", "_OverhngDist", 01936 "OverlapDist", "_OverlapDist", "Oversize", "_Oversize", "Owner", "Page", 01937 "_Page", "PageSize", "ParamDisp", "_ParamDisp", "Parameter", 01938 "_Parameter", "ParamAssign", "Path", "_Path", "PathDelay", "_PathDelay", 01939 "PathWidth", "Permutable", "_Permutable", "Plug", "_Plug", "Point", 01940 "_Point", "PointDisp", "_PointDisp", "PointList", "_PointList", 01941 "PointValue", "Polygon", "_Polygon", "Port", "_Port", "PortBackAn", 01942 "_PortBackAn", "PortBundle", "_PortBundle", "PortDelay", "_PortDelay", 01943 "PortGroup", "_PortGroup", "PortImpl", "_PortImpl", "PortInst", 01944 "_PortInst", "PortList", "_PortList", "PortListAls", "PortMap", 01945 "_PortMap", "PortNameDef", "PortNameRef", "PortRef", "_PortRef", 01946 "Program", "_Program", "PropDisplay", "_PropDisplay", "Property", 01947 "_Property", "PropNameDef", "PropNameRef", "ProtectFrame", 01948 "_ProtectFrame", "Range", "RangeVector", "_RangeVector", "Rectangle", 01949 "_Rectangle", "RectSize", "_RectSize", "Rename", "__Rename", "_Rename", 01950 "Resolves", "_Resolves", "RuleNameDef", "Scale", "ScaledInt", "ScaleX", 01951 "ScaleY", "Section", "_Section", "Shape", "_Shape", "SimNameDef", 01952 "Simulate", "_Simulate", "SimulInfo", "_SimulInfo", "SingleValSet", 01953 "_SingleValSet", "Site", "_Site", "Socket", "_Socket", "SocketSet", 01954 "_SocketSet", "Status", "_Status", "Steady", "__Steady", "_Steady", 01955 "StrDisplay", "String", "_String", "_StrDisplay", "Strong", "Symbol", 01956 "_Symbol", "Symmetry", "_Symmetry", "Table", "_Table", "TableDeflt", 01957 "__TableDeflt", "_TableDeflt", "Technology", "_Technology", "TextHeight", 01958 "TimeIntval", "__TimeIntval", "_TimeIntval", "TimeStamp", "Timing", 01959 "_Timing", "Transform", "_TransX", "_TransY", "_TransDelta", 01960 "_TransOrien", "_TransOrg", "Transition", "_Transition", "Trigger", 01961 "_Trigger", "True", "TypedValue", "Unconstrained", "Undefined", "Union", 01962 "_Union", "Unit", "_Unit", "Unused", "UserData", "_UserData", 01963 "ValueNameDef", "ValueNameRef", "Version", "View", "_View", "ViewList", 01964 "_ViewList", "ViewMap", "_ViewMap", "ViewNameDef", "ViewNameRef", 01965 "ViewRef", "_ViewRef", "ViewType", "_ViewType", "Visible", "VoltageMap", 01966 "WaveValue", "Weak", "WeakJoined", "_WeakJoined", "When", "_When", 01967 "Written", "_Written", "Ident", "Str", "Int", "Keyword", 0 01968 }; 01969 #endif 01970 01971 # ifdef YYPRINT 01972 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 01973 token YYLEX-NUM. */ 01974 static const yytype_uint16 yytoknum[] = 01975 { 01976 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 01977 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 01978 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 01979 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 01980 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 01981 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 01982 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 01983 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 01984 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 01985 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 01986 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 01987 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 01988 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 01989 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 01990 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 01991 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 01992 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 01993 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 01994 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 01995 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 01996 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 01997 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 01998 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 01999 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 02000 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 02001 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 02002 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 02003 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 02004 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 02005 545, 546, 547, 548, 549, 41 02006 }; 02007 # endif 02008 02009 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 02010 static const yytype_uint16 yyr1[] = 02011 { 02012 0, 296, 297, 298, 299, 299, 299, 299, 299, 299, 02013 299, 300, 301, 302, 303, 304, 304, 305, 306, 306, 02014 306, 306, 306, 306, 307, 308, 308, 309, 310, 310, 02015 310, 310, 310, 311, 312, 313, 313, 314, 315, 316, 02016 316, 316, 316, 316, 317, 318, 319, 320, 321, 322, 02017 323, 323, 323, 324, 325, 325, 326, 326, 327, 328, 02018 328, 328, 328, 329, 330, 330, 331, 332, 332, 333, 02019 334, 335, 336, 337, 337, 337, 337, 337, 337, 337, 02020 338, 339, 340, 340, 341, 342, 343, 343, 343, 344, 02021 345, 345, 345, 346, 346, 346, 347, 348, 348, 349, 02022 350, 351, 351, 352, 353, 353, 353, 353, 353, 353, 02023 353, 353, 354, 355, 356, 356, 356, 356, 356, 356, 02024 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 02025 356, 356, 357, 358, 358, 359, 360, 360, 360, 361, 02026 362, 362, 363, 364, 365, 365, 365, 366, 367, 367, 02027 368, 369, 369, 370, 371, 371, 372, 373, 373, 374, 02028 375, 375, 376, 377, 377, 378, 379, 379, 380, 381, 02029 381, 382, 383, 383, 383, 384, 385, 385, 385, 385, 02030 385, 386, 387, 387, 388, 389, 390, 390, 390, 390, 02031 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 02032 390, 391, 392, 392, 392, 392, 393, 394, 394, 394, 02033 395, 396, 396, 397, 397, 398, 398, 399, 399, 400, 02034 401, 401, 402, 403, 403, 404, 405, 406, 406, 406, 02035 406, 407, 408, 408, 408, 409, 410, 410, 410, 411, 02036 411, 411, 411, 412, 412, 412, 413, 414, 414, 414, 02037 414, 414, 414, 414, 415, 416, 417, 417, 417, 417, 02038 417, 418, 419, 420, 421, 421, 421, 421, 421, 421, 02039 421, 421, 421, 421, 421, 421, 421, 421, 422, 423, 02040 424, 425, 425, 425, 426, 427, 427, 427, 427, 427, 02041 427, 427, 427, 427, 427, 427, 427, 427, 428, 429, 02042 429, 430, 431, 431, 431, 431, 431, 431, 431, 431, 02043 431, 431, 431, 432, 433, 433, 433, 433, 434, 434, 02044 434, 434, 434, 435, 436, 436, 436, 436, 437, 438, 02045 438, 438, 438, 439, 440, 441, 441, 442, 442, 442, 02046 442, 443, 444, 444, 445, 446, 446, 446, 446, 446, 02047 447, 448, 449, 450, 451, 452, 452, 453, 454, 455, 02048 455, 455, 455, 455, 455, 455, 455, 455, 455, 456, 02049 457, 457, 457, 458, 459, 459, 459, 459, 459, 460, 02050 461, 461, 462, 463, 463, 463, 463, 463, 464, 464, 02051 465, 465, 466, 467, 467, 468, 469, 469, 469, 469, 02052 470, 471, 471, 471, 471, 471, 471, 471, 471, 471, 02053 471, 471, 471, 471, 471, 471, 471, 471, 472, 473, 02054 473, 473, 473, 474, 475, 475, 475, 475, 476, 477, 02055 477, 477, 477, 478, 479, 479, 480, 481, 482, 482, 02056 482, 482, 483, 484, 484, 484, 484, 484, 484, 484, 02057 484, 484, 485, 486, 486, 487, 488, 489, 489, 490, 02058 491, 492, 493, 494, 495, 496, 496, 496, 496, 496, 02059 497, 498, 499, 499, 500, 501, 501, 501, 502, 503, 02060 503, 504, 505, 505, 506, 506, 506, 507, 507, 507, 02061 508, 509, 509, 509, 509, 510, 511, 511, 511, 511, 02062 512, 513, 513, 514, 515, 515, 516, 517, 518, 519, 02063 519, 519, 520, 521, 521, 521, 521, 522, 523, 523, 02064 523, 523, 524, 525, 525, 526, 527, 527, 527, 527, 02065 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 02066 527, 528, 529, 529, 529, 529, 529, 530, 531, 531, 02067 532, 532, 532, 533, 534, 534, 534, 535, 535, 535, 02068 536, 537, 537, 538, 539, 539, 539, 539, 540, 541, 02069 541, 542, 542, 543, 544, 544, 544, 545, 546, 546, 02070 547, 548, 548, 548, 548, 548, 549, 550, 550, 551, 02071 551, 551, 552, 552, 553, 554, 554, 554, 554, 554, 02072 554, 554, 554, 554, 554, 555, 556, 556, 556, 556, 02073 556, 557, 558, 558, 558, 558, 558, 558, 559, 560, 02074 560, 560, 561, 562, 562, 562, 563, 564, 564, 564, 02075 564, 564, 565, 565, 566, 566, 567, 568, 568, 568, 02076 568, 569, 570, 571, 571, 571, 572, 573, 573, 573, 02077 574, 575, 575, 575, 575, 576, 577, 577, 577, 577, 02078 578, 579, 579, 580, 581, 581, 581, 581, 582, 583, 02079 583, 583, 583, 583, 584, 585, 586, 586, 587, 588, 02080 588, 588, 588, 588, 588, 588, 588, 589, 590, 591, 02081 591, 591, 591, 592, 593, 593, 593, 593, 594, 595, 02082 595, 596, 597, 598, 598, 598, 598, 598, 598, 598, 02083 598, 598, 598, 599, 600, 601, 601, 602, 603, 603, 02084 604, 605, 606, 606, 607, 608, 608, 609, 610, 611, 02085 611, 611, 611, 612, 613, 613, 614, 615, 615, 615, 02086 615, 616, 617, 617, 618, 619, 619, 620, 621, 622, 02087 622, 623, 624, 624, 624, 624, 624, 624, 624, 624, 02088 624, 624, 624, 624, 624, 625, 626, 626, 626, 626, 02089 626, 626, 626, 626, 626, 626, 627, 628, 628, 628, 02090 628, 629, 630, 630, 630, 630, 631, 632, 632, 632, 02091 633, 634, 634, 634, 634, 634, 634, 634, 634, 634, 02092 634, 634, 635, 636, 636, 636, 636, 636, 636, 636, 02093 636, 636, 636, 636, 636, 636, 637, 638, 638, 638, 02094 639, 640, 641, 641, 641, 641, 641, 642, 642, 643, 02095 643, 644, 645, 645, 645, 645, 646, 647, 647, 648, 02096 649, 649, 650, 651, 651, 651, 651, 651, 652, 653, 02097 654, 655, 655, 655, 655, 655, 655, 655, 655, 655, 02098 655, 655, 655, 656, 656, 656, 656, 656, 656, 657, 02099 658, 658, 658, 659, 660, 660, 661, 662, 662, 662, 02100 662, 663, 664, 664, 665, 665, 666, 667, 667, 668, 02101 669, 670, 670, 671, 672, 673, 674, 674, 674, 674, 02102 675, 676, 676, 677, 678, 679, 679, 679, 679, 679, 02103 679, 680, 681, 681, 681, 681, 682, 683, 683, 684, 02104 685, 685, 686, 687, 687, 688, 689, 689, 690, 691, 02105 691, 691, 691, 692, 693, 693, 693, 694, 694, 694, 02106 695, 696, 697, 697, 697, 697, 698, 698, 699, 700, 02107 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 02108 701, 701, 701, 701, 702, 703, 703, 704, 705, 705, 02109 705, 706, 707, 707, 707, 707, 708, 708, 708, 709, 02110 710, 710, 710, 710, 710, 710, 710, 711, 712, 713, 02111 713, 714, 714, 714, 715, 716, 717, 717, 717, 717, 02112 717, 718, 719, 719, 720, 720, 721, 721, 722, 722, 02113 723, 723, 724, 725, 725, 725, 726, 727, 727, 727, 02114 727, 728, 729, 729, 729, 729, 729, 729, 730, 731, 02115 732, 733, 733, 733, 733, 734, 735, 735, 735, 735, 02116 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 02117 735, 735, 736, 737, 738, 738, 738, 738, 738, 739, 02118 739, 740, 740, 741, 742, 743, 743, 743, 743, 743, 02119 743, 744, 745, 745, 745, 746, 747, 747, 747, 747, 02120 747, 747, 747, 747, 747, 748, 749, 750, 751, 751, 02121 752, 753, 753, 753, 753, 753, 753, 753, 753, 753, 02122 753, 754, 755, 756, 757, 758, 759, 759, 759, 759, 02123 760, 761, 761, 761, 761, 761, 761, 761, 762, 763, 02124 763, 763, 763, 763, 763, 763, 764, 765, 766, 767 02125 }; 02126 02127 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 02128 static const yytype_uint8 yyr2[] = 02129 { 02130 0, 2, 1, 7, 0, 2, 2, 2, 2, 2, 02131 2, 1, 3, 5, 3, 1, 1, 3, 1, 2, 02132 2, 2, 2, 2, 3, 1, 1, 3, 1, 2, 02133 2, 2, 2, 5, 5, 0, 1, 3, 3, 1, 02134 1, 1, 2, 2, 3, 3, 3, 3, 2, 3, 02135 1, 1, 1, 4, 1, 1, 1, 1, 3, 0, 02136 2, 2, 2, 3, 1, 2, 3, 1, 1, 5, 02137 3, 3, 4, 1, 2, 2, 2, 2, 2, 2, 02138 1, 4, 0, 1, 1, 3, 1, 1, 1, 4, 02139 1, 1, 1, 0, 1, 1, 5, 0, 2, 5, 02140 3, 0, 2, 3, 0, 2, 2, 2, 2, 2, 02141 2, 2, 3, 3, 0, 2, 2, 2, 2, 2, 02142 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 02143 2, 2, 3, 0, 1, 3, 1, 1, 1, 3, 02144 1, 1, 3, 3, 0, 2, 2, 4, 0, 1, 02145 4, 0, 1, 3, 1, 1, 3, 1, 1, 3, 02146 1, 1, 3, 1, 1, 3, 1, 1, 3, 0, 02147 2, 3, 1, 1, 1, 4, 1, 2, 2, 2, 02148 2, 3, 1, 1, 1, 3, 0, 2, 2, 2, 02149 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 02150 2, 3, 1, 1, 2, 2, 3, 1, 1, 1, 02151 6, 1, 1, 0, 1, 0, 1, 0, 1, 3, 02152 0, 2, 3, 1, 2, 3, 6, 1, 1, 2, 02153 2, 3, 1, 1, 1, 5, 1, 1, 1, 1, 02154 1, 1, 1, 0, 1, 1, 3, 1, 1, 1, 02155 1, 1, 2, 2, 3, 5, 1, 2, 2, 2, 02156 2, 4, 2, 3, 1, 2, 2, 2, 2, 2, 02157 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 02158 3, 1, 1, 1, 3, 1, 2, 2, 2, 2, 02159 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 02160 1, 3, 1, 1, 2, 2, 2, 2, 2, 2, 02161 2, 2, 2, 5, 1, 1, 2, 2, 1, 1, 02162 1, 1, 1, 5, 1, 1, 2, 2, 5, 1, 02163 1, 2, 2, 5, 4, 1, 1, 1, 1, 2, 02164 2, 3, 1, 2, 3, 0, 2, 2, 2, 2, 02165 3, 3, 4, 2, 3, 1, 1, 2, 4, 1, 02166 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 02167 0, 1, 1, 3, 1, 2, 2, 2, 2, 3, 02168 0, 2, 3, 0, 2, 2, 2, 2, 1, 1, 02169 1, 1, 3, 1, 2, 3, 0, 2, 2, 2, 02170 3, 0, 2, 2, 2, 2, 2, 2, 2, 2, 02171 2, 2, 2, 2, 2, 2, 2, 2, 6, 1, 02172 1, 2, 2, 3, 1, 1, 2, 2, 5, 1, 02173 1, 2, 2, 3, 1, 1, 2, 3, 0, 2, 02174 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 02175 1, 1, 3, 1, 2, 3, 3, 1, 2, 1, 02176 1, 3, 1, 1, 5, 1, 2, 2, 2, 2, 02177 3, 3, 0, 2, 3, 0, 2, 2, 4, 1, 02178 1, 5, 1, 1, 1, 1, 1, 0, 1, 1, 02179 3, 1, 1, 1, 2, 3, 0, 2, 2, 2, 02180 3, 0, 2, 3, 0, 2, 1, 1, 3, 0, 02181 2, 2, 3, 1, 1, 1, 2, 3, 1, 2, 02182 2, 2, 4, 0, 1, 3, 1, 2, 2, 2, 02183 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 02184 2, 3, 0, 2, 2, 2, 2, 4, 1, 1, 02185 0, 1, 1, 4, 1, 1, 1, 1, 1, 1, 02186 4, 1, 2, 3, 0, 2, 2, 2, 3, 1, 02187 2, 1, 1, 5, 1, 1, 1, 3, 0, 2, 02188 3, 0, 2, 2, 2, 2, 3, 1, 2, 1, 02189 1, 1, 1, 1, 4, 1, 2, 2, 2, 2, 02190 2, 2, 2, 2, 2, 3, 1, 2, 2, 2, 02191 2, 4, 1, 2, 2, 2, 2, 2, 4, 1, 02192 2, 2, 3, 0, 2, 2, 3, 0, 2, 2, 02193 2, 2, 1, 1, 1, 1, 4, 0, 1, 1, 02194 1, 2, 3, 0, 2, 2, 4, 1, 2, 2, 02195 5, 1, 1, 2, 2, 3, 0, 2, 2, 2, 02196 3, 1, 2, 3, 0, 2, 2, 2, 3, 1, 02197 2, 2, 2, 2, 4, 3, 1, 2, 3, 1, 02198 1, 1, 1, 1, 1, 1, 1, 3, 6, 1, 02199 1, 2, 2, 6, 1, 1, 2, 2, 5, 1, 02200 1, 3, 3, 1, 2, 2, 2, 2, 2, 2, 02201 2, 2, 2, 3, 3, 1, 2, 5, 0, 1, 02202 4, 3, 1, 2, 3, 1, 2, 3, 3, 0, 02203 2, 2, 2, 3, 0, 2, 3, 0, 2, 2, 02204 2, 3, 1, 2, 3, 0, 2, 4, 3, 1, 02205 2, 3, 1, 2, 2, 2, 2, 2, 2, 2, 02206 2, 2, 2, 2, 2, 3, 1, 2, 2, 2, 02207 2, 2, 2, 2, 2, 2, 4, 1, 2, 2, 02208 2, 4, 1, 1, 2, 2, 3, 0, 2, 2, 02209 3, 1, 1, 2, 2, 2, 2, 2, 2, 2, 02210 2, 2, 3, 1, 1, 2, 2, 2, 2, 2, 02211 2, 2, 2, 2, 2, 2, 3, 0, 2, 2, 02212 4, 3, 0, 2, 2, 2, 2, 1, 1, 1, 02213 1, 4, 0, 1, 1, 1, 4, 0, 1, 3, 02214 1, 2, 4, 1, 2, 2, 2, 2, 1, 1, 02215 3, 0, 2, 2, 2, 2, 2, 2, 2, 2, 02216 2, 2, 2, 1, 1, 1, 1, 1, 1, 3, 02217 0, 2, 2, 4, 1, 2, 5, 1, 1, 2, 02218 2, 4, 1, 1, 1, 1, 3, 0, 2, 1, 02219 5, 1, 4, 4, 4, 3, 1, 2, 2, 2, 02220 3, 1, 2, 1, 3, 1, 2, 2, 2, 2, 02221 2, 3, 0, 2, 2, 2, 3, 0, 1, 4, 02222 0, 1, 3, 0, 1, 3, 1, 2, 3, 0, 02223 2, 2, 2, 4, 1, 1, 1, 1, 2, 2, 02224 3, 3, 0, 2, 2, 2, 1, 2, 3, 3, 02225 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 02226 2, 2, 2, 2, 3, 0, 2, 3, 0, 2, 02227 2, 4, 1, 1, 1, 1, 0, 1, 1, 3, 02228 1, 2, 2, 2, 2, 2, 2, 3, 4, 1, 02229 1, 1, 1, 1, 8, 3, 1, 2, 2, 2, 02230 2, 7, 0, 1, 0, 1, 0, 1, 0, 1, 02231 0, 1, 4, 1, 1, 1, 3, 0, 2, 2, 02232 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 02233 3, 1, 1, 2, 2, 3, 1, 1, 1, 1, 02234 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 02235 1, 1, 2, 3, 1, 2, 2, 2, 2, 1, 02236 1, 1, 1, 3, 5, 1, 2, 2, 2, 2, 02237 2, 3, 0, 2, 2, 3, 0, 2, 2, 2, 02238 2, 2, 2, 2, 2, 1, 1, 4, 0, 1, 02239 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 02240 1, 3, 3, 5, 3, 3, 0, 2, 2, 2, 02241 3, 1, 2, 2, 2, 2, 2, 2, 3, 1, 02242 2, 2, 2, 2, 2, 2, 1, 1, 1, 1 02243 }; 02244 02245 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state 02246 STATE-NUM when YYTABLE doesn't specify something else to do. Zero 02247 means the default is an error. */ 02248 static const yytype_uint16 yydefact[] = 02249 { 02250 0, 0, 0, 1126, 0, 0, 0, 590, 11, 591, 02251 589, 1, 0, 587, 883, 0, 882, 0, 0, 0, 02252 2, 586, 588, 1127, 0, 0, 885, 884, 1128, 0, 02253 0, 0, 0, 213, 211, 212, 593, 279, 592, 0, 02254 946, 881, 0, 0, 0, 4, 285, 0, 0, 215, 02255 214, 940, 947, 0, 12, 0, 457, 0, 0, 0, 02256 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 02257 0, 284, 292, 289, 290, 295, 286, 287, 291, 288, 02258 296, 293, 297, 294, 443, 444, 445, 446, 447, 448, 02259 449, 450, 451, 0, 0, 217, 216, 13, 0, 456, 02260 458, 0, 0, 0, 929, 3, 9, 8, 6, 7, 02261 5, 10, 0, 0, 0, 0, 891, 0, 136, 137, 02262 138, 0, 232, 233, 234, 0, 0, 0, 848, 0, 02263 0, 0, 1054, 0, 0, 0, 68, 67, 442, 683, 02264 686, 684, 685, 679, 681, 682, 680, 0, 0, 0, 02265 218, 455, 0, 184, 0, 462, 0, 0, 0, 70, 02266 0, 0, 100, 102, 135, 231, 0, 727, 59, 396, 02267 564, 656, 737, 942, 1022, 1023, 1024, 1025, 1026, 0, 02268 1027, 843, 987, 1129, 1053, 1058, 1057, 1056, 1055, 345, 02269 262, 1021, 1101, 678, 0, 0, 210, 0, 176, 0, 02270 0, 0, 0, 928, 931, 932, 930, 0, 0, 0, 02271 0, 0, 0, 0, 0, 0, 0, 0, 0, 842, 02272 847, 844, 846, 845, 0, 0, 687, 82, 84, 175, 02273 178, 179, 177, 180, 0, 0, 256, 0, 465, 0, 02274 1119, 0, 69, 892, 99, 333, 0, 58, 62, 61, 02275 60, 0, 395, 398, 399, 397, 0, 0, 563, 567, 02276 566, 565, 571, 572, 0, 655, 659, 658, 657, 0, 02277 736, 740, 739, 738, 941, 944, 945, 943, 0, 1051, 02278 1037, 1048, 1049, 1038, 1036, 1046, 1050, 1044, 1045, 1043, 02279 1047, 1039, 1040, 1041, 1042, 0, 344, 349, 348, 347, 02280 346, 0, 0, 0, 83, 664, 980, 0, 0, 255, 02281 258, 259, 257, 260, 464, 467, 468, 466, 469, 0, 02282 0, 0, 0, 1118, 1120, 1124, 1122, 1121, 1123, 1125, 02283 0, 64, 0, 393, 0, 569, 0, 0, 0, 574, 02284 576, 575, 0, 661, 0, 742, 701, 1035, 747, 0, 02285 463, 81, 0, 0, 0, 186, 912, 979, 985, 984, 02286 982, 981, 983, 986, 0, 80, 0, 0, 151, 837, 02287 63, 65, 392, 394, 568, 570, 1028, 1029, 0, 660, 02288 662, 741, 743, 470, 0, 0, 663, 667, 666, 665, 02289 0, 460, 0, 264, 278, 0, 0, 0, 0, 73, 02290 0, 47, 0, 0, 152, 0, 838, 0, 0, 0, 02291 0, 0, 263, 271, 268, 269, 274, 265, 266, 270, 02292 277, 267, 275, 272, 276, 273, 0, 0, 0, 0, 02293 0, 0, 0, 0, 0, 0, 0, 185, 199, 193, 02294 198, 188, 190, 187, 194, 195, 197, 196, 192, 191, 02295 189, 200, 0, 911, 914, 913, 915, 88, 87, 86, 02296 0, 0, 1076, 72, 77, 79, 74, 78, 76, 75, 02297 0, 0, 150, 836, 573, 0, 0, 261, 0, 0, 02298 0, 0, 0, 0, 320, 355, 356, 0, 318, 321, 02299 322, 319, 889, 0, 0, 0, 0, 0, 0, 0, 02300 0, 0, 0, 0, 526, 0, 506, 85, 1085, 0, 02301 0, 0, 1063, 352, 0, 0, 202, 203, 299, 424, 02302 425, 0, 434, 435, 0, 0, 1031, 1032, 0, 354, 02303 0, 0, 0, 0, 0, 0, 0, 647, 0, 0, 02304 0, 0, 0, 0, 0, 0, 220, 0, 501, 504, 02305 887, 0, 0, 0, 525, 529, 539, 530, 528, 533, 02306 536, 535, 534, 538, 537, 532, 540, 527, 531, 0, 02307 0, 0, 383, 0, 627, 0, 822, 1075, 1083, 1080, 02308 1079, 1082, 1081, 1078, 1077, 1084, 0, 890, 201, 204, 02309 205, 0, 300, 423, 426, 427, 433, 699, 700, 0, 02310 1030, 1033, 1034, 281, 0, 282, 283, 0, 0, 0, 02311 0, 0, 0, 0, 917, 866, 865, 868, 867, 0, 02312 864, 863, 314, 315, 0, 324, 325, 0, 329, 330, 02313 0, 0, 429, 430, 646, 648, 649, 0, 651, 652, 02314 0, 0, 578, 870, 878, 877, 0, 0, 0, 507, 02315 0, 0, 436, 0, 0, 0, 0, 0, 0, 1096, 02316 1098, 1099, 1097, 1091, 1093, 1092, 1094, 1100, 1095, 0, 02317 401, 1065, 0, 0, 374, 0, 0, 0, 0, 606, 02318 0, 0, 0, 766, 0, 994, 298, 0, 280, 0, 02319 227, 228, 0, 0, 54, 0, 55, 0, 0, 0, 02320 918, 0, 313, 316, 317, 323, 326, 327, 328, 331, 02321 332, 0, 419, 420, 428, 431, 432, 650, 653, 654, 02322 0, 689, 690, 0, 694, 695, 0, 0, 876, 879, 02323 880, 66, 112, 142, 219, 221, 500, 502, 503, 505, 02324 886, 888, 948, 1102, 1104, 1090, 0, 114, 1064, 1068, 02325 1067, 1069, 1066, 1070, 0, 370, 391, 390, 0, 0, 02326 373, 378, 375, 377, 376, 380, 382, 386, 384, 385, 02327 387, 635, 634, 637, 0, 0, 605, 610, 608, 607, 02328 609, 623, 626, 630, 629, 628, 631, 830, 829, 832, 02329 0, 0, 0, 0, 0, 0, 765, 773, 775, 769, 02330 770, 771, 772, 767, 768, 774, 787, 821, 825, 824, 02331 823, 826, 698, 226, 229, 230, 45, 46, 56, 0, 02332 57, 254, 351, 461, 916, 418, 421, 422, 688, 691, 02333 692, 693, 696, 697, 577, 579, 869, 871, 872, 0, 02334 438, 581, 0, 729, 0, 0, 851, 0, 950, 1106, 02335 400, 406, 416, 414, 408, 409, 407, 411, 402, 403, 02336 415, 405, 413, 404, 412, 417, 410, 0, 0, 0, 02337 371, 0, 372, 0, 183, 182, 0, 996, 0, 0, 02338 639, 638, 0, 640, 0, 141, 140, 0, 0, 834, 02339 833, 0, 835, 0, 16, 15, 0, 155, 154, 0, 02340 158, 157, 0, 161, 160, 0, 164, 163, 0, 0, 02341 53, 0, 0, 0, 41, 0, 40, 39, 0, 0, 02342 0, 1060, 1059, 0, 0, 828, 827, 0, 752, 0, 02343 0, 903, 905, 0, 0, 0, 0, 104, 0, 0, 02344 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 02345 129, 130, 122, 117, 127, 115, 128, 119, 120, 116, 02346 121, 123, 118, 125, 124, 131, 126, 0, 561, 1086, 02347 1088, 369, 181, 172, 173, 174, 0, 0, 0, 995, 02348 999, 998, 997, 1000, 379, 381, 636, 139, 0, 619, 02349 0, 622, 624, 625, 831, 14, 153, 156, 159, 162, 02350 0, 782, 783, 0, 786, 788, 789, 734, 0, 923, 02351 0, 48, 38, 42, 43, 0, 817, 437, 441, 440, 02352 439, 580, 585, 583, 582, 584, 0, 718, 643, 728, 02353 732, 731, 730, 0, 0, 751, 761, 763, 757, 758, 02354 759, 760, 756, 753, 755, 762, 754, 764, 475, 777, 02355 0, 0, 0, 0, 850, 856, 861, 855, 853, 854, 02356 858, 859, 852, 857, 860, 862, 0, 0, 0, 904, 02357 908, 909, 906, 910, 907, 0, 0, 949, 955, 957, 02358 962, 954, 952, 953, 959, 956, 960, 951, 958, 961, 02359 963, 1105, 1109, 1108, 1107, 0, 0, 0, 302, 303, 02360 0, 0, 335, 336, 389, 0, 388, 0, 518, 633, 02361 632, 0, 0, 0, 669, 703, 0, 0, 792, 791, 02362 0, 896, 1017, 1111, 0, 560, 562, 1089, 0, 171, 02363 0, 0, 342, 725, 0, 0, 167, 166, 0, 0, 02364 618, 621, 620, 0, 480, 479, 781, 785, 784, 0, 02365 37, 965, 0, 924, 44, 0, 0, 35, 0, 719, 02366 0, 207, 208, 209, 0, 1052, 0, 776, 779, 778, 02367 780, 0, 453, 459, 1062, 1061, 0, 715, 849, 0, 02368 840, 0, 0, 28, 0, 0, 0, 26, 25, 0, 02369 0, 71, 103, 105, 108, 110, 106, 107, 109, 111, 02370 0, 0, 0, 0, 0, 0, 301, 304, 311, 305, 02371 306, 307, 308, 309, 310, 312, 968, 0, 337, 338, 02372 1072, 0, 360, 359, 517, 520, 519, 521, 595, 0, 02373 472, 612, 0, 668, 672, 671, 670, 673, 702, 710, 02374 711, 707, 704, 705, 706, 709, 708, 712, 133, 790, 02375 801, 796, 793, 794, 795, 798, 797, 799, 800, 895, 02376 899, 897, 898, 0, 0, 0, 0, 1110, 1112, 1116, 02377 1113, 1115, 1114, 1117, 1087, 0, 0, 989, 990, 0, 02378 341, 343, 724, 726, 165, 496, 509, 0, 51, 50, 02379 52, 1014, 1013, 1015, 0, 0, 0, 733, 735, 0, 02380 922, 350, 816, 819, 818, 0, 36, 717, 642, 645, 02381 644, 206, 474, 476, 477, 452, 454, 714, 716, 839, 02382 841, 148, 0, 0, 27, 31, 29, 30, 32, 0, 02383 0, 24, 713, 874, 0, 0, 0, 223, 144, 676, 02384 0, 745, 0, 722, 749, 0, 901, 0, 0, 334, 02385 339, 340, 0, 0, 0, 1002, 358, 367, 365, 362, 02386 363, 366, 364, 361, 368, 594, 603, 601, 596, 598, 02387 600, 599, 597, 602, 604, 0, 611, 616, 614, 613, 02388 615, 617, 0, 134, 0, 0, 0, 1016, 1018, 1020, 02389 1019, 0, 18, 0, 482, 483, 550, 548, 549, 0, 02390 251, 250, 249, 248, 247, 0, 0, 993, 991, 992, 02391 0, 0, 0, 49, 0, 478, 0, 926, 964, 966, 02392 34, 0, 149, 0, 491, 493, 492, 0, 513, 515, 02393 514, 820, 542, 0, 873, 875, 97, 222, 224, 0, 02394 675, 677, 0, 721, 723, 748, 750, 900, 902, 0, 02395 0, 967, 969, 970, 1071, 1074, 1073, 0, 0, 804, 02396 803, 0, 1003, 1004, 471, 473, 132, 93, 92, 90, 02397 91, 357, 936, 934, 935, 0, 17, 22, 19, 21, 02398 20, 23, 0, 487, 485, 484, 486, 551, 552, 0, 02399 246, 253, 252, 0, 0, 988, 0, 495, 499, 497, 02400 498, 508, 511, 510, 1012, 0, 925, 927, 147, 490, 02401 494, 512, 516, 0, 1103, 0, 0, 143, 145, 146, 02402 744, 746, 0, 237, 0, 236, 238, 0, 972, 974, 02403 973, 975, 976, 0, 802, 812, 814, 808, 809, 810, 02404 811, 807, 806, 813, 805, 815, 0, 0, 1005, 1006, 02405 94, 0, 95, 937, 0, 523, 488, 489, 0, 547, 02406 674, 225, 353, 920, 541, 546, 544, 543, 545, 96, 02407 98, 0, 0, 556, 554, 555, 243, 239, 241, 240, 02408 242, 641, 977, 978, 0, 720, 0, 0, 169, 1007, 02409 1008, 89, 933, 939, 938, 524, 0, 481, 0, 921, 02410 0, 558, 557, 559, 0, 244, 0, 245, 971, 893, 02411 0, 0, 1009, 1010, 522, 919, 0, 553, 235, 894, 02412 168, 170, 1011, 0, 33, 1001 02413 }; 02414 02415 /* YYDEFGOTO[NTERM-NUM]. */ 02416 static const yytype_int16 yydefgoto[] = 02417 { 02418 -1, 21, 2, 58, 6, 31, 18, 797, 893, 1268, 02419 1391, 1078, 1186, 1070, 1182, 1518, 925, 1305, 914, 851, 02420 915, 916, 615, 616, 324, 917, 1141, 1287, 617, 695, 02421 819, 174, 211, 249, 330, 555, 135, 72, 73, 950, 02422 310, 398, 364, 198, 303, 227, 399, 460, 1388, 1467, 02423 1551, 1207, 1515, 74, 75, 117, 952, 1097, 557, 750, 02424 867, 1252, 1382, 76, 121, 778, 884, 558, 1339, 1439, 02425 1183, 1421, 326, 403, 799, 896, 800, 899, 801, 902, 02426 802, 905, 989, 1135, 1589, 1611, 877, 976, 107, 199, 02427 762, 873, 152, 359, 395, 484, 515, 1043, 1164, 22, 02428 33, 49, 95, 149, 559, 651, 1209, 1336, 1407, 439, 02429 689, 77, 125, 1452, 1524, 1576, 1606, 1277, 1399, 618, 02430 108, 235, 360, 136, 361, 392, 393, 34, 531, 604, 02431 35, 47, 485, 591, 953, 1100, 441, 619, 486, 442, 02432 624, 443, 627, 78, 954, 1101, 1217, 981, 1131, 185, 02433 224, 1018, 620, 388, 1498, 420, 487, 1389, 955, 1221, 02434 674, 871, 579, 675, 769, 879, 580, 676, 1105, 755, 02435 253, 332, 175, 212, 671, 746, 444, 711, 488, 521, 02436 445, 631, 489, 524, 560, 854, 918, 50, 93, 1060, 02437 1171, 56, 45, 57, 1172, 390, 621, 154, 349, 109, 02438 237, 304, 1231, 1375, 1049, 1166, 1002, 1143, 1271, 1393, 02439 1483, 1558, 1326, 1423, 1291, 1411, 561, 653, 562, 654, 02440 504, 1292, 1293, 1412, 1327, 1427, 956, 1107, 1484, 1596, 02441 455, 505, 1433, 1513, 1272, 1396, 1489, 1525, 1572, 1604, 02442 787, 967, 176, 213, 1144, 334, 1145, 262, 338, 644, 02443 726, 855, 919, 36, 12, 492, 649, 957, 1229, 581, 02444 678, 958, 1232, 779, 990, 784, 888, 582, 680, 1111, 02445 773, 679, 882, 1529, 1030, 1160, 446, 538, 447, 637, 02446 177, 214, 267, 342, 306, 352, 959, 1113, 1278, 1210, 02447 1340, 96, 147, 150, 448, 720, 449, 723, 490, 599, 02448 221, 960, 1116, 1085, 1061, 1176, 856, 1158, 1359, 1211, 02449 1342, 982, 1134, 79, 857, 924, 1008, 1149, 178, 215, 02450 272, 344, 1343, 1442, 195, 1212, 1345, 858, 927, 583, 02451 682, 859, 1050, 804, 1003, 809, 909, 961, 1117, 1360, 02452 1458, 1019, 1156, 1072, 584, 684, 928, 789, 683, 891, 02453 327, 405, 1063, 1179, 80, 179, 129, 1180, 861, 930, 02454 622, 645, 727, 1096, 1334, 450, 646, 9, 15, 25, 02455 564, 655, 493, 389, 263, 1462, 1548, 962, 1120, 1214, 02456 1347, 932, 862, 933, 362, 396, 623, 701, 1507, 1598, 02457 1010, 1152, 1298, 1416, 110, 157, 1390, 1475, 1554, 26, 02458 180, 216, 39, 565, 863, 934, 1153, 1299, 1219, 1348, 02459 1453, 1532, 1584, 236, 307, 81, 1132, 1279, 1410, 240, 02460 764, 878, 1363, 1463, 1549, 1590, 1613, 1623, 1142, 1294, 02461 1123, 1263, 137, 181, 340, 341, 491, 528, 223, 295, 02462 1046, 82, 131, 923, 1177, 404, 468, 672, 1222, 1352, 02463 469, 510, 509, 970, 872, 1128, 570, 669, 83, 567, 02464 1074, 568, 866, 935, 966, 1124, 206, 241, 38, 27, 02465 116, 189 02466 }; 02467 02468 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 02469 STATE-NUM. */ 02470 #define YYPACT_NINF -1333 02471 static const yytype_int16 yypact[] = 02472 { 02473 41, 152, 149, -1333, 176, 81, 305, -1333, -1333, -1333, 02474 -1333, -1333, 33, -1333, -1333, 59, -1333, 148, 317, 101, 02475 -1333, -1333, -1333, -1333, 437, 150, -1333, -1333, -1333, 148, 02476 148, 304, 81, 312, -1333, -1333, -1333, -1333, -1333, 33, 02477 -1333, -1333, 148, 150, 316, -1333, -1333, 1508, 1780, 272, 02478 -1333, -1333, -1333, 150, -1333, 148, -1333, 122, 715, 148, 02479 148, 111, -1333, 997, 1020, 148, 148, 152, 148, 176, 02480 300, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02481 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02482 -1333, -1333, -1333, 150, 1588, 280, -1333, -1333, 150, -1333, 02483 -1333, 152, 152, 152, -1333, -1333, -1333, -1333, -1333, -1333, 02484 -1333, -1333, 148, 150, 148, 111, -1333, 36, -1333, -1333, 02485 -1333, 150, -1333, -1333, -1333, 150, 148, 150, -1333, 1023, 02486 150, 66, -1333, 150, 150, 150, -1333, -1333, -1333, -1333, 02487 -1333, -1333, -1333, -1333, -1333, -1333, -1333, 150, 260, 150, 02488 -1333, -1333, 424, -1333, 317, -1333, 317, 273, 439, -1333, 02489 148, 111, -1333, -1333, -1333, -1333, 439, -1333, -1333, -1333, 02490 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 310, 02491 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02492 -1333, -1333, -1333, -1333, 148, 150, -1333, 81, -1333, 441, 02493 254, 254, 266, -1333, -1333, -1333, -1333, 150, 150, 150, 02494 150, 416, 49, 115, 91, 801, 77, 437, 2006, -1333, 02495 -1333, -1333, -1333, -1333, 71, 148, -1333, 376, -1333, -1333, 02496 -1333, -1333, -1333, -1333, 343, 445, -1333, 445, -1333, 148, 02497 -1333, 158, -1333, -1333, -1333, -1333, 300, -1333, -1333, -1333, 02498 -1333, 148, -1333, -1333, -1333, -1333, 276, 144, -1333, -1333, 02499 -1333, -1333, -1333, -1333, 111, -1333, -1333, -1333, -1333, 260, 02500 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 150, -1333, 02501 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02502 -1333, -1333, -1333, -1333, -1333, 150, -1333, -1333, -1333, -1333, 02503 -1333, 150, 81, 150, -1333, -1333, -1333, 546, 152, -1333, 02504 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 148, 02505 437, 437, 437, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02506 33, -1333, 33, -1333, 33, -1333, 150, 150, 144, -1333, 02507 -1333, -1333, 33, -1333, 33, -1333, -1333, -1333, -1333, 150, 02508 -1333, -1333, 132, 152, 152, -1333, -1333, -1333, -1333, -1333, 02509 -1333, -1333, -1333, -1333, 468, -1333, 148, 150, 306, 306, 02510 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 144, -1333, 02511 -1333, -1333, -1333, -1333, 111, 111, -1333, -1333, -1333, -1333, 02512 81, -1333, 1442, -1333, -1333, 1794, 519, 832, 940, -1333, 02513 148, -1333, 437, 150, -1333, 150, -1333, 150, 111, 111, 02514 150, 1196, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02515 -1333, -1333, -1333, -1333, -1333, -1333, 152, 152, 152, 152, 02516 152, 152, 152, 152, 152, 152, 152, -1333, -1333, -1333, 02517 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02518 -1333, -1333, 152, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02519 150, 152, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02520 148, 150, -1333, -1333, -1333, 150, 321, -1333, 1196, 81, 02521 1196, 1196, 148, 1196, -1333, -1333, -1333, 150, -1333, -1333, 02522 -1333, -1333, -1333, 461, 461, 461, 461, 461, 461, 461, 02523 461, 461, 461, 461, -1333, 1198, -1333, -1333, -1333, 322, 02524 867, 148, -1333, -1333, 150, 1263, -1333, -1333, 376, -1333, 02525 -1333, 1263, -1333, -1333, 150, 1196, -1333, -1333, 1263, -1333, 02526 342, 461, 1545, 1545, 1545, 461, 1545, -1333, 130, 1545, 02527 461, 461, -29, 300, 81, 276, -1333, 150, -1333, -1333, 02528 -1333, 81, 276, 81, -1333, -1333, -1333, -1333, -1333, -1333, 02529 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 1879, 02530 444, 466, -1333, 425, -1333, 382, -1333, -1333, -1333, -1333, 02531 -1333, -1333, -1333, -1333, -1333, -1333, 150, -1333, -1333, -1333, 02532 -1333, 150, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 540, 02533 -1333, -1333, -1333, -1333, 150, -1333, -1333, 1545, 111, 111, 02534 42, 111, 111, 111, 1276, -1333, -1333, -1333, -1333, 130, 02535 -1333, -1333, -1333, -1333, 130, -1333, -1333, 130, -1333, -1333, 02536 1545, 130, -1333, -1333, -1333, -1333, -1333, 130, -1333, -1333, 02537 1545, 1545, -1333, -1333, -1333, -1333, 130, 150, 150, -1333, 02538 150, 63, -1333, 63, 63, 63, 150, 150, 150, -1333, 02539 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 150, 02540 -1333, -1333, 186, 529, -1333, 653, 833, 529, 605, -1333, 02541 171, 529, 581, -1333, 783, -1333, -1333, 150, -1333, 130, 02542 -1333, -1333, 150, 150, -1333, 53, -1333, 150, 150, 150, 02543 -1333, 150, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02544 -1333, 130, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02545 130, -1333, -1333, 130, -1333, -1333, -75, 361, -1333, -1333, 02546 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02547 -1333, -1333, -1333, -1333, -1333, -1333, 990, -1333, -1333, -1333, 02548 -1333, -1333, -1333, -1333, 81, -34, -1333, -1333, 59, 548, 02549 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02550 -1333, -1333, -1333, 442, 460, 548, -1333, -1333, -1333, -1333, 02551 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 539, 02552 523, 93, 93, 93, 93, 548, -1333, -1333, -1333, -1333, 02553 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02554 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 150, 02555 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02556 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 543, 02557 -1333, -1333, 108, -1333, 108, 108, -1333, 152, -1333, -1333, 02558 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02559 -1333, -1333, -1333, -1333, -1333, -1333, -1333, 1584, 148, 81, 02560 -1333, 150, -1333, 150, -1333, -1333, 894, -1333, 708, 252, 02561 -1333, -1333, 150, -1333, 150, -1333, -1333, 561, 46, -1333, 02562 -1333, 150, -1333, 150, -1333, -1333, 150, -1333, -1333, 150, 02563 -1333, -1333, 150, -1333, -1333, 150, -1333, -1333, 26, 86, 02564 -1333, 431, 421, 150, -1333, 130, -1333, -1333, 531, 281, 02565 152, -1333, -1333, 1023, -73, -1333, -1333, 631, -1333, 512, 02566 762, -1333, -1333, 481, 365, 588, 454, -1333, 76, 104, 02567 108, 108, 108, 108, 108, 108, 104, 437, 418, -1333, 02568 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02569 -1333, -1333, -1333, -1333, -1333, -1333, -1333, 51, -1333, -1333, 02570 424, -1333, -1333, -1333, -1333, -1333, 150, 436, 561, -1333, 02571 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 523, -1333, 02572 -31, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02573 523, -1333, -1333, -31, -1333, -1333, -1333, -1333, 150, 453, 02574 150, -1333, -1333, -1333, -1333, 529, -1333, -1333, -1333, -1333, 02575 -1333, -1333, -1333, -1333, -1333, -1333, 148, 321, -1333, -1333, 02576 -1333, -1333, -1333, 711, 150, -1333, -1333, -1333, -1333, -1333, 02577 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02578 726, 176, 529, 81, -1333, -1333, -1333, -1333, -1333, -1333, 02579 -1333, -1333, -1333, -1333, -1333, -1333, 620, 108, 152, -1333, 02580 -1333, -1333, -1333, -1333, -1333, 59, 454, -1333, -1333, -1333, 02581 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02582 -1333, -1333, -1333, -1333, -1333, 260, 150, 691, -1333, -1333, 02583 751, -85, -1333, -1333, -1333, -115, -1333, 726, -1333, -1333, 02584 -1333, 568, 562, 635, -1333, -1333, 449, 1253, -1333, -1333, 02585 97, -1333, -1333, -1333, 448, -1333, -1333, -1333, 150, -1333, 02586 384, -24, -1333, -1333, -24, 150, -1333, -1333, 950, 950, 02587 -1333, -1333, -1333, 523, -1333, -1333, -1333, -1333, -1333, -122, 02588 -1333, -1333, 150, -1333, -1333, 150, 86, 148, 150, -1333, 02589 -77, -1333, -1333, -1333, 150, -1333, -90, -1333, -1333, -1333, 02590 -1333, 33, -1333, -1333, -1333, -1333, 33, -1333, -1333, 33, 02591 -1333, 148, 409, -1333, 530, 111, 150, -1333, -1333, 150, 02592 260, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02593 260, 260, 675, 553, 553, 675, -1333, -1333, -1333, -1333, 02594 -1333, -1333, -1333, -1333, -1333, -1333, -1333, 99, -1333, -1333, 02595 -1333, 812, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 679, 02596 -1333, -1333, 946, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02597 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 651, -1333, 02598 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02599 -1333, -1333, -1333, 34, 276, 104, 104, -1333, -1333, -1333, 02600 -1333, -1333, -1333, -1333, -1333, 1014, 671, -1333, -1333, 634, 02601 -1333, -1333, -1333, -1333, -1333, -1333, -1333, 150, -1333, -1333, 02602 -1333, -1333, -1333, -1333, 950, 150, 453, -1333, -1333, -119, 02603 -1333, -1333, -1333, -1333, -1333, 150, -1333, -1333, -1333, -1333, 02604 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02605 -1333, 684, 255, 255, -1333, -1333, -1333, -1333, -1333, 150, 02606 624, -1333, -1333, -1333, -117, 260, -117, -1333, -1333, -1333, 02607 -117, -1333, -117, -1333, -1333, -117, -1333, -117, 269, -1333, 02608 -1333, -1333, 428, 529, 104, 560, -1333, -1333, -1333, -1333, 02609 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02610 -1333, -1333, -1333, -1333, -1333, -98, -1333, -1333, -1333, -1333, 02611 -1333, -1333, 150, -1333, 255, 150, 255, -1333, -1333, -1333, 02612 -1333, 739, -1333, -64, -1333, -1333, 26, -1333, -1333, -31, 02613 -1333, -1333, -1333, -1333, -1333, 111, 111, -1333, -1333, -1333, 02614 150, 114, 64, -1333, 150, -1333, -127, -1333, -1333, -1333, 02615 -1333, 150, -1333, -52, -1333, -1333, -1333, -52, -1333, -1333, 02616 -1333, -1333, -1333, 150, -1333, -1333, -1333, -1333, -1333, 28, 02617 -1333, -1333, -46, -1333, -1333, -1333, -1333, -1333, -1333, 383, 02618 890, -1333, -1333, -1333, -1333, -1333, -1333, 1023, 657, -1333, 02619 -1333, 148, -1333, 564, -1333, -1333, -1333, 11, -1333, -1333, 02620 -1333, -1333, -1333, -1333, -1333, 684, -1333, -1333, -1333, -1333, 02621 -1333, -1333, 81, 26, -1333, -1333, -1333, -1333, -1333, 150, 02622 -1333, -1333, -1333, 150, 150, -1333, 150, -1333, -1333, -1333, 02623 -1333, -1333, -1333, -1333, -1333, 534, -1333, -1333, -1333, -1333, 02624 -1333, -1333, -1333, 113, -1333, -117, 260, -1333, -1333, -1333, 02625 -1333, -1333, 255, -1333, 890, -1333, -1333, 150, -1333, -1333, 02626 -1333, -1333, 26, 150, -1333, -1333, -1333, -1333, -1333, -1333, 02627 -1333, -1333, -1333, -1333, -1333, -1333, 148, 148, -1333, 725, 02628 -1333, 150, -1333, -1333, -31, 376, -1333, -1333, 150, -1333, 02629 -1333, -1333, -1333, 577, -1333, -1333, -1333, -1333, -1333, -1333, 02630 -1333, 260, 950, -1333, -1333, -1333, 26, -1333, -1333, -1333, 02631 -1333, -1333, -1333, -1333, 150, -1333, 150, 148, -1333, -1333, 02632 272, -1333, -1333, -1333, -1333, -1333, 150, -1333, 150, -1333, 02633 260, -1333, -1333, -1333, 150, -1333, 150, -1333, -1333, -1333, 02634 150, -46, -1333, 280, -1333, -1333, 150, -1333, -1333, -1333, 02635 -1333, -1333, -1333, 150, -1333, -1333 02636 }; 02637 02638 /* YYPGOTO[NTERM-NUM]. */ 02639 static const yytype_int16 yypgoto[] = 02640 { 02641 -1333, -25, -1333, -1333, -1333, 8, -1333, -906, -1333, -1333, 02642 -1333, -265, -1333, -1333, -1333, -1333, 173, -1333, -1333, -1333, 02643 -1333, -1333, 223, 139, -1333, -1333, -996, -1333, -1333, -1333, 02644 -1333, 645, -1333, -1333, -1333, -1333, -168, 470, 473, -285, 02645 599, -1333, -1333, -91, -1333, -1333, -1333, -1333, -557, -1333, 02646 -1333, -1333, -1333, 504, 1011, -1333, -878, -1333, -1333, -1333, 02647 -1333, -1333, -1333, -310, -1333, -316, -1333, -1333, -291, -1333, 02648 -1333, -1333, -1333, -1333, -902, -1333, -901, -1333, -896, -1333, 02649 -893, -1333, -891, -1333, -1333, -1333, -630, -1333, -1333, -1333, 02650 -666, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -26, 02651 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -890, -1333, 02652 -1333, 527, -1333, -1333, -1333, -1333, -1333, -284, -1333, -1333, 02653 -1333, -1333, -1333, -1333, 528, -1333, -11, 3, 1663, -1333, 02654 -7, -1333, 1085, -1333, -880, -1333, -1333, -1333, 1301, -1333, 02655 -1333, -1333, -1333, 544, -1043, -1333, -1333, -1333, -1333, 716, 02656 -1333, -1333, 329, -1333, -570, -1333, -1333, -1333, -872, -1333, 02657 308, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 4, -1333, 02658 180, -1333, 745, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 02659 -1333, -1333, -1333, -1333, -1333, -834, -1333, -1333, -1333, -871, 02660 -1333, -1333, -1333, -1333, -1333, -1333, 263, 858, -1333, -1333, 02661 -1333, -517, -1333, -1333, -1333, -1333, -1202, -181, -428, -1333, 02662 -1333, -1333, -1333, -1333, -1109, -1333, -1333, -1333, -1333, -1333, 02663 -99, -514, -1097, -1333, -1333, -1333, -1333, -1333, -1332, -1333, 02664 -1333, -1333, -1227, -1333, -420, -1333, -1333, -1333, -1333, -1333, 02665 -665, -1333, 769, -1333, -193, -1333, -209, -1333, 90, -1333, 02666 -1333, -1333, -1333, 355, -1333, 903, 128, -1025, -1333, -1333, 02667 -1333, -141, -1333, -242, -1333, -287, -1333, -1333, -1333, 55, 02668 123, -674, -1333, -502, -1333, -1333, -1333, -1333, -1333, -1333, 02669 813, -1333, 472, -1333, -1333, -1333, -1333, -1333, -251, -1333, 02670 -1333, -560, -1333, -582, -1333, -1333, -1333, -1333, -1333, -1333, 02671 -1333, -1333, -1333, -83, 105, -1333, -1333, -1333, -1333, -1333, 02672 -1333, -1333, -1333, 656, -864, -1333, -1333, -1333, 830, -1333, 02673 -1333, -1333, -155, -1333, -210, -1333, -1333, -113, -1333, -1333, 02674 -1333, -105, -1333, -889, -1333, -213, -1333, -803, -1333, -1333, 02675 -1333, -874, -1333, -1333, -1333, -1333, -679, -882, 502, -1333, 02676 -1333, -1333, -699, -1333, 767, -1333, -1333, -1333, -1333, -1333, 02677 845, 339, -1333, -942, -1333, -1333, -1333, -1333, -1333, -1333, 02678 -1333, -1333, 902, -1333, 141, -1333, -1333, -44, -1333, -1333, 02679 -1333, -1333, 213, -1333, -1333, -1333, 411, -1333, -1333, -1333, 02680 -1333, -1333, -1333, -1333, -189, -1333, -363, -1333, -1333, -214, 02681 873, -1333, -1333, -1333, -1333, -1333, -195, -1333, -1300, -1333, 02682 -1333, -1333, -1333, 904, -1333, 712, -1333, -1333, -1333, -1333, 02683 -706, -1333, -1248, -1333, -1333, -1333, -1333, -1333, -980, -186, 02684 -1333, -1333, -1333, -912, -1333, -1333, -1333, -1333, -467, -1333, 02685 -1089, 1032, -1333, -1333, -241, 742, -1333, -1333, -235, -1333, 02686 -1333, -1333, -1333, -1333, -770, -1333, -1333, -1333, 727, -1333, 02687 -1333, -1333, 203, -1333, -1333, -1333, -1333, -1333, 1551, 12, 02688 347, -1333 02689 }; 02690 02691 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 02692 positive, shift that token. If negative, reduce the rule which 02693 number is the opposite. If zero, do what YYDEFACT says. 02694 If YYTABLE_NINF, syntax error. */ 02695 #define YYTABLE_NINF -1 02696 static const yytype_uint16 yytable[] = 02697 { 02698 41, 592, 275, 883, 261, 273, 785, 1147, 756, 514, 02699 232, 1027, 771, 52, 51, 1351, 803, 1001, 54, 892, 02700 260, 1036, 71, 1148, 1236, 1038, 1039, 1005, 97, 1288, 02701 648, 1040, 99, 105, 1041, 46, 40, 656, 1044, 658, 02702 864, 1290, 23, 250, 1138, 1023, 312, 335, 317, 3, 02703 1058, 1419, 1057, 28, 1082, 28, 1081, 1102, 1059, 345, 02704 1031, 1093, 1083, 1084, 1118, 23, 3, 3, 138, 3, 02705 28, 183, 23, 151, 3, 28, 183, 23, 331, 3, 02706 853, 1270, 417, 23, 3, 1022, 1138, 1133, 159, 3, 02707 942, 1243, 162, 1486, 1516, 28, 164, 28, 1275, 881, 02708 165, 1092, 167, 23, 3, 182, 184, 3, 190, 191, 02709 192, 3, 1482, 608, 673, 28, 3, 3, 1528, 28, 02710 1384, 67, 193, 1028, 196, 609, 1432, 1062, 1505, 163, 02711 988, 1087, 203, 1155, 1189, 1296, 844, 735, 845, 737, 02712 739, 741, 843, 187, 19, 887, 843, 37, 28, 11, 02713 1531, 681, 28, 1355, 219, 3, 642, 1, 1213, 681, 02714 37, 964, 200, 681, 201, 908, 929, 643, 20, 1220, 02715 226, 869, 681, 20, 229, 920, 20, 1385, 20, 3, 02716 1216, 612, 242, 243, 244, 245, 247, 252, 258, 265, 02717 270, 274, 1577, 1000, 1488, 194, 1510, 20, 169, 251, 02718 1512, 1216, 115, 988, 1371, 20, 114, 32, 114, 466, 02719 309, 62, 314, 643, 993, 613, 323, 1196, 20, 62, 02720 20, 62, 20, 771, 1580, 1197, 114, 754, 277, 278, 02721 114, 320, 32, 4, 1285, 1088, 299, 1253, 1241, 1251, 02722 677, 940, 1139, 20, 1242, 1254, 1255, 62, 1260, 20, 02723 4, 4, 869, 346, 1496, 1496, 161, 321, 3, 114, 02724 62, 1042, 1108, 4, 20, 1114, 1000, 754, 4, 194, 02725 347, 20, 384, 4, 1303, 62, 348, 1228, 351, 747, 02726 28, 1557, 357, 1285, 1139, 754, 1286, 1286, 4, 687, 02727 171, 4, 264, 1386, 264, 4, 1309, 170, 256, 257, 02728 4, 4, 209, 1502, 371, 370, 373, 372, 375, 374, 02729 1329, 376, 377, 1246, 1500, 1599, 380, 379, 382, 381, 02730 24, 5, 681, 20, 383, 228, 1350, 386, 20, 20, 02731 1583, 20, 367, 368, 369, 1223, 650, 173, 24, 4, 02732 681, 20, 401, 657, 20, 3, 20, 947, 1478, 1369, 02733 1465, 1367, 1379, 5, 1378, 268, 7, 1370, 20, 20, 02734 14, 20, 62, 781, 29, 677, 296, 412, 1383, 1544, 02735 437, 453, 20, 463, 1607, 647, 42, 43, 472, 385, 02736 473, 20, 474, 1394, 1397, 477, 20, 1174, 1184, 53, 02737 1449, 114, 20, 410, 20, 322, 67, 5, 339, 62, 02738 673, 1403, 98, 1491, 1566, 343, 112, 113, 20, 20, 02739 20, 69, 126, 127, 471, 130, 1568, 20, 1256, 1492, 02740 336, 337, 7, 17, 67, 20, 133, 20, 378, 1075, 02741 350, 1422, 608, 609, 30, 507, 754, 610, 840, 69, 02742 1425, 1429, 4, 23, 104, 20, 512, 936, 1424, 1428, 02743 513, 478, 69, 20, 62, 937, 7, 7, 7, 158, 02744 257, 160, 529, 1601, 28, 44, 20, 69, 407, 1384, 02745 48, 1550, 1459, 166, 479, 1603, 55, 94, 188, 339, 02746 554, 20, 518, 752, 611, 577, 148, 1552, 1016, 587, 02747 588, 681, 938, 168, 246, 480, 593, 481, 62, 596, 02748 612, 194, 1469, 600, 1473, 1487, 1275, 208, 197, 940, 02749 1468, 1264, 1472, 634, 1016, 1362, 168, 681, 37, 339, 02750 217, 234, 652, 613, 1051, 408, 409, 28, 308, 4, 02751 62, 936, 3, 603, 62, 1450, 239, 62, 62, 937, 02752 302, 225, 133, 305, 874, 1533, 1066, 20, 67, 475, 02753 476, 482, 1535, 397, 69, 1358, 1537, 1538, 1593, 255, 02754 1159, 685, 1539, 1522, 20, 1540, 686, 202, 20, 1542, 02755 62, 300, 301, 849, 1594, 134, 20, 1076, 1322, 688, 02756 1052, 895, 1456, 1323, 939, 1553, 319, 1276, 402, 218, 02757 673, 530, 1556, 940, 702, 670, 946, 894, 333, 705, 02758 218, 1401, 708, 67, 1053, 20, 714, 37, 62, 569, 02759 251, 911, 717, 912, 673, 614, 1265, 913, 681, 677, 02760 483, 728, 731, 732, 1289, 733, 734, 1266, 736, 738, 02761 740, 742, 743, 744, 63, 62, 677, 942, 114, 943, 02762 1574, 1582, 1386, 790, 745, 1055, 69, 748, 1573, 1079, 02763 760, 766, 1007, 776, 876, 782, 20, 796, 37, 807, 02764 20, 1076, 812, 7, 813, 988, 366, 816, 817, 1015, 02765 62, 353, 821, 822, 823, 354, 824, 1009, 1048, 67, 02766 946, 791, 792, 793, 794, 1605, 825, 673, 1174, 758, 02767 69, 134, 1122, 790, 62, 828, 452, 1095, 831, 104, 02768 774, 834, 836, 104, 20, 1130, 256, 257, 7, 7, 02769 754, 20, 1220, 400, 869, 1067, 4, 1151, 1181, 790, 02770 62, 850, 69, 20, 62, 840, 69, 1230, 869, 69, 02771 69, 791, 792, 793, 794, 1563, 20, 1161, 1162, 758, 02772 20, 1033, 62, 20, 20, 840, 62, 470, 1406, 692, 02773 693, 1163, 697, 698, 699, 1075, 1275, 791, 792, 793, 02774 794, 758, 69, 1016, 1016, 758, 355, 681, 62, 937, 02775 875, 1068, 1338, 936, 774, 681, 20, 1341, 938, 1137, 02776 62, 7, 7, 7, 7, 7, 7, 7, 7, 7, 02777 7, 7, 1541, 1275, 910, 1136, 775, 62, 1406, 356, 02778 69, 757, 1432, 207, 62, 772, 938, 7, 1461, 788, 02779 795, 210, 1194, 1547, 20, 62, 7, 511, 938, 67, 02780 869, 1016, 101, 940, 681, 869, 20, 69, 62, 525, 02781 1588, 1239, 1193, 694, 818, 940, 315, 1276, 1200, 102, 02782 62, 20, 949, 67, 936, 977, 971, 1281, 972, 1355, 02783 1283, 62, 937, 979, 984, 457, 248, 986, 586, 987, 02784 795, 1187, 413, 991, 1201, 414, 994, 942, 995, 67, 02785 775, 996, 62, 67, 997, 939, 20, 998, 103, 1127, 02786 999, 458, 868, 20, 1004, 1190, 795, 459, 1011, 938, 02787 1012, 67, 1523, 1017, 1021, 67, 415, 1499, 1503, 1029, 02788 20, 62, 1035, 973, 8, 1054, 940, 1265, 1069, 1077, 02789 1091, 1034, 69, 1368, 1346, 1034, 69, 67, 1266, 418, 02790 758, 1051, 62, 440, 759, 978, 20, 1098, 974, 67, 02791 20, 1099, 898, 901, 904, 907, 419, 1034, 69, 696, 02792 297, 975, 1125, 1565, 626, 629, 222, 633, 20, 1115, 02793 639, 1129, 20, 3, 885, 1202, 62, 254, 820, 1121, 02794 69, 156, 1295, 1479, 67, 1140, 231, 1203, 1555, 1185, 02795 128, 1480, 69, 104, 20, 1244, 1204, 1052, 1146, 765, 02796 1333, 673, 259, 1150, 768, 1154, 20, 1372, 1400, 69, 02797 1335, 1337, 1405, 946, 1095, 1408, 69, 969, 1112, 1567, 02798 67, 1053, 1205, 20, 153, 155, 155, 69, 328, 1165, 02799 20, 992, 571, 806, 572, 921, 772, 118, 691, 681, 02800 69, 20, 1578, 172, 269, 1167, 1353, 266, 1409, 62, 02801 1612, 1622, 69, 1245, 20, 62, 937, 788, 1595, 1086, 02802 122, 713, 194, 69, 1354, 271, 20, 119, 421, 1344, 02803 67, 722, 725, 1313, 120, 1392, 573, 20, 1602, 839, 02804 574, 1314, 1402, 870, 69, 835, 1482, 788, 100, 106, 02805 123, 1191, 1192, 938, 788, 1206, 1261, 124, 20, 62, 02806 963, 880, 1224, 759, 1355, 1527, 1526, 1188, 1233, 276, 02807 111, 1238, 1249, 69, 575, 1259, 20, 889, 758, 1267, 02808 168, 1417, 576, 1274, 423, 238, 1280, 20, 1414, 1282, 02809 1284, 406, 1457, 1104, 69, 1109, 1109, 1455, 1104, 425, 02810 1285, 886, 1025, 1286, 1297, 1436, 681, 1300, 20, 0, 02811 1301, 1302, 1262, 1307, 0, 1308, 0, 4, 838, 1311, 02812 0, 1312, 0, 788, 0, 1316, 1315, 840, 69, 0, 02813 1318, 1317, 0, 1320, 1319, 1216, 0, 1324, 0, 422, 02814 0, 1331, 20, 0, 1332, 465, 0, 0, 204, 0, 02815 0, 0, 169, 0, 0, 0, 841, 0, 67, 0, 02816 1175, 1178, 0, 0, 67, 0, 810, 985, 0, 205, 02817 220, 0, 1349, 0, 0, 0, 1356, 7, 104, 7, 02818 7, 0, 7, 842, 1365, 170, 781, 1376, 677, 843, 02819 230, 365, 0, 0, 0, 968, 844, 0, 845, 0, 02820 0, 69, 171, 461, 0, 462, 0, 69, 67, 1519, 02821 846, 233, 1521, 0, 0, 20, 0, 0, 1387, 0, 02822 0, 20, 847, 0, 806, 172, 311, 1016, 316, 0, 02823 681, 0, 325, 848, 0, 0, 391, 394, 0, 0, 02824 0, 759, 1413, 897, 900, 903, 906, 313, 0, 318, 02825 1415, 69, 563, 329, 1418, 7, 0, 543, 0, 0, 02826 1420, 0, 849, 173, 788, 20, 0, 62, 0, 544, 02827 0, 890, 0, 7, 545, 7, 7, 7, 7, 7, 02828 7, 0, 0, 0, 1431, 478, 1571, 0, 0, 1434, 02829 546, 1437, 0, 0, 1126, 1440, 0, 1443, 358, 0, 02830 1445, 0, 1447, 1451, 0, 0, 1330, 1454, 479, 494, 02831 495, 496, 497, 498, 499, 500, 501, 502, 503, 363, 02832 0, 0, 62, 937, 0, 1248, 0, 608, 609, 480, 02833 1464, 481, 610, 0, 547, 506, 0, 1466, 0, 0, 02834 1471, 1600, 0, 387, 508, 0, 1476, 0, 0, 548, 02835 549, 0, 478, 1157, 1490, 0, 0, 0, 625, 628, 02836 938, 632, 0, 0, 638, 1495, 1497, 1501, 0, 1504, 02837 1616, 1506, 0, 788, 788, 479, 1508, 940, 1509, 611, 02838 0, 1621, 1511, 416, 0, 482, 438, 454, 1514, 464, 02839 0, 1006, 1051, 0, 1517, 612, 480, 1520, 481, 0, 02840 1020, 1024, 7, 7, 424, 0, 1032, 451, 456, 0, 02841 467, 0, 0, 1534, 0, 0, 67, 1094, 613, 751, 02842 0, 1103, 763, 0, 550, 780, 0, 0, 1119, 805, 02843 788, 788, 690, 0, 0, 0, 0, 0, 0, 700, 02844 551, 0, 0, 0, 1559, 0, 0, 0, 1560, 1561, 02845 0, 1562, 482, 0, 483, 712, 0, 0, 0, 69, 02846 0, 1175, 788, 0, 0, 721, 724, 552, 1564, 553, 02847 1569, 67, 1053, 20, 0, 0, 0, 0, 0, 0, 02848 0, 0, 1581, 0, 1306, 0, 0, 0, 1585, 0, 02849 0, 0, 788, 860, 788, 0, 556, 0, 0, 0, 02850 0, 578, 59, 60, 0, 0, 1591, 0, 1321, 1592, 02851 61, 62, 0, 1597, 69, 0, 63, 566, 0, 0, 02852 0, 483, 585, 0, 0, 0, 1493, 1494, 20, 635, 02853 0, 0, 10, 0, 0, 13, 16, 0, 20, 1608, 02854 0, 1609, 64, 516, 0, 519, 522, 0, 526, 0, 02855 636, 1614, 837, 1615, 0, 0, 0, 65, 0, 1617, 02856 0, 1618, 0, 0, 411, 1619, 1620, 0, 59, 60, 02857 0, 1624, 0, 0, 0, 0, 61, 62, 1625, 0, 02858 589, 0, 63, 1218, 0, 0, 594, 0, 0, 0, 02859 597, 0, 0, 601, 0, 605, 608, 609, 10, 0, 02860 132, 610, 0, 139, 140, 141, 142, 0, 64, 0, 02861 703, 143, 144, 145, 146, 706, 0, 0, 709, 0, 02862 0, 0, 715, 65, 0, 0, 0, 0, 718, 0, 02863 788, 704, 10, 10, 10, 0, 707, 729, 1304, 710, 02864 66, 0, 1310, 716, 0, 0, 936, 0, 611, 719, 02865 0, 0, 0, 62, 937, 0, 0, 0, 730, 0, 02866 67, 0, 186, 749, 612, 0, 761, 767, 0, 777, 02867 0, 783, 0, 798, 1045, 808, 0, 1064, 0, 0, 02868 814, 1089, 0, 0, 753, 0, 0, 613, 770, 0, 02869 68, 938, 786, 0, 0, 0, 811, 0, 0, 0, 02870 939, 815, 826, 69, 0, 0, 66, 0, 940, 0, 02871 70, 829, 0, 0, 832, 0, 0, 20, 0, 0, 02872 0, 0, 0, 827, 0, 922, 67, 926, 926, 0, 02873 931, 0, 830, 0, 0, 833, 0, 852, 0, 941, 02874 0, 0, 0, 0, 0, 0, 0, 1395, 1398, 0, 02875 0, 0, 942, 0, 943, 298, 68, 1404, 865, 517, 02876 0, 520, 523, 0, 527, 0, 944, 0, 0, 69, 02877 0, 84, 85, 86, 0, 945, 70, 0, 0, 614, 02878 0, 0, 0, 20, 0, 0, 0, 0, 1546, 87, 02879 88, 89, 0, 0, 0, 946, 590, 1169, 0, 0, 02880 0, 0, 595, 1026, 1426, 1430, 598, 0, 0, 602, 02881 0, 606, 0, 0, 947, 0, 847, 0, 90, 91, 02882 92, 394, 0, 1106, 926, 1110, 1110, 926, 1106, 0, 02883 0, 0, 0, 0, 0, 759, 1460, 0, 0, 10, 02884 0, 0, 0, 0, 1198, 69, 0, 0, 0, 0, 02885 0, 0, 0, 0, 1226, 0, 0, 948, 951, 20, 02886 1235, 0, 0, 62, 1257, 0, 1470, 659, 1474, 980, 02887 0, 0, 0, 1586, 1587, 1485, 0, 660, 0, 965, 02888 0, 0, 0, 661, 10, 10, 0, 662, 0, 0, 02889 983, 663, 0, 426, 0, 0, 0, 0, 664, 0, 02890 665, 0, 427, 354, 0, 0, 1013, 428, 429, 0, 02891 666, 667, 668, 0, 1610, 0, 0, 0, 1037, 0, 02892 0, 1056, 0, 0, 1071, 1080, 430, 1014, 431, 0, 02893 0, 0, 1530, 0, 0, 0, 0, 0, 0, 1047, 02894 0, 0, 1065, 0, 0, 1073, 1090, 0, 0, 0, 02895 926, 506, 0, 0, 0, 0, 0, 10, 10, 10, 02896 10, 10, 10, 10, 10, 10, 10, 10, 1361, 0, 02897 0, 432, 433, 0, 0, 0, 1373, 0, 0, 1380, 02898 0, 434, 435, 10, 0, 0, 0, 0, 0, 0, 02899 0, 0, 10, 279, 0, 0, 280, 0, 0, 0, 02900 281, 282, 283, 284, 1575, 285, 1579, 286, 287, 0, 02901 0, 288, 0, 0, 0, 0, 0, 0, 436, 289, 02902 0, 0, 0, 0, 0, 0, 0, 0, 290, 0, 02903 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, 02904 292, 1168, 293, 0, 0, 0, 0, 294, 0, 0, 02905 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 02906 0, 0, 1170, 0, 0, 0, 0, 0, 0, 20, 02907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02908 0, 1435, 0, 1438, 0, 0, 0, 1441, 1195, 1444, 02909 0, 1208, 1446, 0, 1448, 0, 0, 0, 1225, 0, 02910 0, 0, 0, 0, 1234, 0, 0, 1240, 1250, 1199, 02911 0, 0, 1215, 0, 0, 1269, 0, 0, 0, 1227, 02912 0, 0, 0, 0, 0, 1237, 0, 0, 1247, 1258, 02913 0, 0, 0, 0, 0, 0, 1273, 532, 533, 534, 02914 535, 536, 537, 539, 540, 541, 542, 0, 0, 0, 02915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02917 0, 0, 0, 1325, 607, 0, 0, 0, 630, 0, 02918 0, 0, 0, 640, 641, 0, 0, 0, 0, 0, 02919 0, 0, 0, 0, 1328, 0, 0, 0, 0, 0, 02920 0, 0, 0, 0, 0, 1543, 0, 0, 0, 0, 02921 0, 0, 1357, 0, 0, 0, 0, 0, 0, 0, 02922 1366, 0, 0, 1377, 0, 0, 0, 0, 0, 0, 02923 0, 0, 0, 1364, 0, 0, 0, 0, 0, 0, 02924 0, 1374, 0, 0, 1381, 0, 0, 0, 0, 0, 02925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02926 0, 0, 1570, 0, 0, 0, 0, 0, 0, 0, 02927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02937 0, 0, 0, 10, 0, 10, 10, 0, 10, 0, 02938 0, 0, 1477, 0, 0, 0, 0, 0, 0, 0, 02939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02940 0, 0, 0, 1481, 0, 0, 0, 0, 0, 0, 02941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02944 0, 0, 0, 0, 0, 0, 0, 0, 0, 1536, 02945 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 02946 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 02947 1545, 10, 10, 10, 10, 10, 10, 0, 0, 0, 02948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 02958 0, 0, 1173, 0, 0, 0, 0, 0, 0, 0, 02959 0, 0, 0, 0, 0, 0, 0, 0, 10, 10 02960 }; 02961 02962 static const yytype_int16 yycheck[] = 02963 { 02964 25, 518, 216, 773, 213, 215, 680, 1003, 673, 476, 02965 199, 923, 677, 39, 39, 1217, 682, 908, 43, 789, 02966 213, 927, 47, 1003, 1113, 927, 927, 909, 53, 1138, 02967 544, 927, 57, 58, 927, 32, 24, 551, 927, 553, 02968 746, 1138, 6, 211, 75, 919, 235, 256, 237, 3, 02969 930, 1299, 930, 4, 934, 4, 934, 939, 930, 269, 02970 924, 935, 934, 934, 946, 6, 3, 3, 93, 3, 02971 4, 5, 6, 98, 3, 4, 5, 6, 246, 3, 02972 746, 1124, 392, 6, 3, 919, 75, 978, 113, 3, 02973 188, 1116, 117, 1393, 66, 4, 121, 4, 122, 773, 02974 125, 935, 127, 6, 3, 130, 131, 3, 133, 134, 02975 135, 3, 176, 71, 148, 4, 3, 3, 1450, 4, 02976 86, 238, 147, 196, 149, 72, 178, 930, 255, 117, 02977 104, 934, 157, 1015, 1076, 257, 226, 651, 228, 653, 02978 654, 655, 219, 131, 111, 775, 219, 19, 4, 0, 02979 1450, 236, 4, 272, 179, 3, 185, 116, 1100, 236, 02980 32, 867, 154, 236, 156, 795, 845, 242, 295, 284, 02981 195, 286, 236, 295, 199, 67, 295, 143, 295, 3, 02982 265, 139, 207, 208, 209, 210, 211, 212, 213, 214, 02983 215, 216, 1524, 167, 1396, 241, 1423, 295, 149, 150, 02984 1427, 265, 61, 104, 1229, 295, 115, 131, 115, 398, 02985 235, 89, 237, 242, 888, 162, 241, 1097, 295, 89, 02986 295, 89, 295, 888, 1524, 1097, 115, 181, 216, 217, 02987 115, 73, 131, 187, 170, 934, 224, 1117, 1116, 1117, 02988 194, 144, 273, 295, 1116, 1117, 1117, 89, 1120, 295, 02989 187, 187, 286, 278, 141, 141, 115, 99, 3, 115, 02990 89, 927, 941, 187, 295, 944, 167, 181, 187, 241, 02991 295, 295, 140, 187, 1156, 89, 301, 1111, 303, 93, 02992 4, 1483, 307, 170, 273, 181, 173, 173, 187, 599, 02993 199, 187, 201, 259, 201, 187, 1160, 182, 183, 184, 02994 187, 187, 161, 1412, 330, 330, 332, 332, 334, 334, 02995 1184, 336, 337, 1116, 1411, 1563, 342, 342, 344, 344, 02996 261, 245, 236, 295, 349, 197, 1217, 352, 295, 295, 02997 1532, 295, 320, 321, 322, 1105, 545, 260, 261, 187, 02998 236, 295, 367, 552, 295, 3, 295, 250, 1391, 1229, 02999 1375, 1229, 1232, 245, 1232, 214, 1, 1229, 295, 295, 03000 5, 295, 89, 192, 17, 194, 295, 392, 1248, 1458, 03001 395, 396, 295, 398, 1576, 543, 29, 30, 403, 247, 03002 405, 295, 407, 1265, 1266, 410, 295, 1052, 1067, 42, 03003 121, 115, 295, 390, 295, 237, 238, 245, 257, 89, 03004 148, 1275, 55, 1399, 1513, 264, 59, 60, 295, 295, 03005 295, 281, 65, 66, 402, 68, 1513, 295, 1117, 1399, 03006 276, 277, 67, 118, 238, 295, 126, 295, 338, 64, 03007 302, 1321, 71, 72, 117, 460, 181, 76, 157, 281, 03008 1322, 1323, 187, 6, 258, 295, 471, 82, 1322, 1323, 03009 475, 109, 281, 295, 89, 90, 101, 102, 103, 112, 03010 184, 114, 487, 1572, 4, 161, 295, 281, 378, 86, 03011 158, 1467, 1354, 126, 132, 1572, 160, 205, 131, 338, 03012 505, 295, 479, 672, 123, 510, 206, 1467, 233, 514, 03013 515, 236, 127, 77, 78, 153, 521, 155, 89, 524, 03014 139, 241, 1384, 528, 1386, 1396, 122, 160, 84, 144, 03015 1384, 63, 1386, 538, 233, 1221, 77, 236, 390, 378, 03016 210, 267, 547, 162, 159, 384, 385, 4, 83, 187, 03017 89, 82, 3, 530, 89, 266, 270, 89, 89, 90, 03018 164, 194, 126, 200, 758, 1457, 65, 295, 238, 408, 03019 409, 209, 1458, 85, 281, 1221, 1458, 1458, 1554, 212, 03020 1027, 586, 1458, 180, 295, 1458, 591, 294, 295, 1458, 03021 89, 224, 225, 292, 1554, 275, 295, 212, 169, 604, 03022 215, 790, 1352, 174, 136, 1475, 239, 203, 282, 279, 03023 148, 130, 1483, 144, 619, 151, 231, 790, 251, 624, 03024 279, 1275, 627, 238, 239, 295, 631, 479, 89, 287, 03025 150, 68, 637, 70, 148, 254, 168, 74, 236, 194, 03026 278, 646, 647, 648, 1138, 650, 651, 179, 653, 654, 03027 655, 656, 657, 658, 94, 89, 194, 188, 115, 190, 03028 1522, 1532, 259, 62, 669, 930, 281, 672, 1522, 934, 03029 675, 676, 221, 678, 106, 680, 295, 682, 530, 684, 03030 295, 212, 687, 308, 689, 104, 319, 692, 693, 138, 03031 89, 125, 697, 698, 699, 129, 701, 256, 166, 238, 03032 231, 100, 101, 102, 103, 1576, 711, 148, 1353, 108, 03033 281, 275, 274, 62, 89, 720, 177, 243, 723, 258, 03034 95, 726, 727, 258, 295, 269, 183, 184, 353, 354, 03035 181, 295, 284, 366, 286, 234, 187, 264, 98, 62, 03036 89, 746, 281, 295, 89, 157, 281, 165, 286, 281, 03037 281, 100, 101, 102, 103, 1505, 295, 26, 27, 108, 03038 295, 110, 89, 295, 295, 157, 89, 400, 114, 608, 03039 609, 40, 611, 612, 613, 64, 122, 100, 101, 102, 03040 103, 108, 281, 233, 233, 108, 220, 236, 89, 90, 03041 758, 290, 97, 82, 95, 236, 295, 224, 127, 988, 03042 89, 426, 427, 428, 429, 430, 431, 432, 433, 434, 03043 435, 436, 1458, 122, 819, 988, 191, 89, 114, 253, 03044 281, 673, 178, 158, 89, 677, 127, 452, 248, 681, 03045 229, 166, 1097, 249, 295, 89, 461, 470, 127, 238, 03046 286, 233, 107, 144, 236, 286, 295, 281, 89, 482, 03047 105, 1116, 1097, 610, 695, 144, 237, 203, 87, 124, 03048 89, 295, 867, 238, 82, 137, 871, 1131, 873, 272, 03049 1134, 89, 90, 878, 879, 23, 211, 882, 511, 884, 03050 229, 1075, 392, 888, 113, 392, 891, 188, 893, 238, 03051 191, 896, 89, 238, 899, 136, 295, 902, 163, 970, 03052 905, 49, 754, 295, 909, 1095, 229, 55, 913, 127, 03053 915, 238, 1449, 918, 919, 238, 392, 1411, 1412, 924, 03054 295, 89, 927, 9, 1, 930, 144, 168, 933, 934, 03055 935, 280, 281, 1229, 1205, 280, 281, 238, 179, 392, 03056 108, 159, 89, 395, 271, 217, 295, 938, 34, 238, 03057 295, 938, 791, 792, 793, 794, 392, 280, 281, 610, 03058 224, 47, 967, 1513, 533, 534, 179, 536, 295, 945, 03059 539, 976, 295, 3, 774, 204, 89, 212, 695, 947, 03060 281, 103, 1143, 1391, 238, 990, 199, 216, 1482, 1068, 03061 67, 1391, 281, 258, 295, 1116, 225, 215, 1003, 146, 03062 1190, 148, 213, 1008, 676, 1010, 295, 1229, 1275, 281, 03063 1200, 1201, 1276, 231, 243, 1279, 281, 869, 943, 1513, 03064 238, 239, 251, 295, 101, 102, 103, 281, 241, 1034, 03065 295, 888, 145, 230, 147, 842, 888, 20, 607, 236, 03066 281, 295, 1524, 222, 223, 1050, 214, 214, 1279, 89, 03067 1590, 1613, 281, 1116, 295, 89, 90, 909, 1555, 934, 03068 20, 630, 241, 281, 232, 215, 295, 50, 392, 1204, 03069 238, 640, 641, 1166, 57, 1264, 189, 295, 1572, 69, 03070 193, 1166, 1275, 755, 281, 726, 176, 939, 57, 58, 03071 50, 1096, 1097, 127, 946, 1100, 1120, 57, 295, 89, 03072 867, 773, 1107, 271, 272, 195, 1449, 1075, 1113, 216, 03073 58, 1116, 1117, 281, 227, 1120, 295, 789, 108, 1124, 03074 77, 1296, 235, 1128, 392, 201, 1131, 295, 1294, 1134, 03075 1135, 369, 1353, 940, 281, 942, 943, 1352, 945, 392, 03076 170, 774, 919, 173, 1149, 1335, 236, 1152, 295, -1, 03077 1155, 1156, 1120, 1158, -1, 1160, -1, 187, 727, 1164, 03078 -1, 1166, -1, 1015, -1, 1171, 1171, 157, 281, -1, 03079 1176, 1176, -1, 1179, 1179, 265, -1, 1182, -1, 392, 03080 -1, 1186, 295, -1, 1189, 398, -1, -1, 157, -1, 03081 -1, -1, 149, -1, -1, -1, 186, -1, 238, -1, 03082 1052, 1053, -1, -1, 238, -1, 684, 879, -1, 157, 03083 179, -1, 1217, -1, -1, -1, 1221, 842, 258, 844, 03084 845, -1, 847, 213, 1229, 182, 192, 1232, 194, 219, 03085 199, 308, -1, -1, -1, 868, 226, -1, 228, -1, 03086 -1, 281, 199, 283, -1, 285, -1, 281, 238, 1439, 03087 240, 199, 1442, -1, -1, 295, -1, -1, 1263, -1, 03088 -1, 295, 252, -1, 230, 222, 235, 233, 237, -1, 03089 236, -1, 241, 263, -1, -1, 353, 354, -1, -1, 03090 -1, 271, 1287, 791, 792, 793, 794, 235, -1, 237, 03091 1295, 281, 505, 241, 1299, 920, -1, 79, -1, -1, 03092 1305, -1, 292, 260, 1156, 295, -1, 89, -1, 91, 03093 -1, 789, -1, 938, 96, 940, 941, 942, 943, 944, 03094 945, -1, -1, -1, 1329, 109, 1516, -1, -1, 1334, 03095 112, 1336, -1, -1, 967, 1340, -1, 1342, 307, -1, 03096 1345, -1, 1347, 1348, -1, -1, 1185, 1352, 132, 427, 03097 428, 429, 430, 431, 432, 433, 434, 435, 436, 307, 03098 -1, -1, 89, 90, -1, 92, -1, 71, 72, 153, 03099 1375, 155, 76, -1, 156, 452, -1, 1382, -1, -1, 03100 1385, 1571, -1, 352, 461, -1, 1391, -1, -1, 171, 03101 172, -1, 109, 1026, 1399, -1, -1, -1, 533, 534, 03102 127, 536, -1, -1, 539, 1410, 1411, 1412, -1, 1414, 03103 1600, 1416, -1, 1265, 1266, 132, 1421, 144, 1423, 123, 03104 -1, 1611, 1427, 392, -1, 209, 395, 396, 1433, 398, 03105 -1, 909, 159, -1, 1439, 139, 153, 1442, 155, -1, 03106 918, 919, 1067, 1068, 392, -1, 924, 395, 396, -1, 03107 398, -1, -1, 1458, -1, -1, 238, 935, 162, 672, 03108 -1, 939, 675, -1, 246, 678, -1, -1, 946, 682, 03109 1322, 1323, 607, -1, -1, -1, -1, -1, -1, 614, 03110 262, -1, -1, -1, 1489, -1, -1, -1, 1493, 1494, 03111 -1, 1496, 209, -1, 278, 630, -1, -1, -1, 281, 03112 -1, 1353, 1354, -1, -1, 640, 641, 289, 1513, 291, 03113 1515, 238, 239, 295, -1, -1, -1, -1, -1, -1, 03114 -1, -1, 1527, -1, 1157, -1, -1, -1, 1533, -1, 03115 -1, -1, 1384, 746, 1386, -1, 505, -1, -1, -1, 03116 -1, 510, 80, 81, -1, -1, 1551, -1, 1181, 1554, 03117 88, 89, -1, 1558, 281, -1, 94, 505, -1, -1, 03118 -1, 278, 510, -1, -1, -1, 1405, 1406, 295, 538, 03119 -1, -1, 1, -1, -1, 4, 5, -1, 295, 1584, 03120 -1, 1586, 120, 478, -1, 480, 481, -1, 483, -1, 03121 538, 1596, 727, 1598, -1, -1, -1, 135, -1, 1604, 03122 -1, 1606, -1, -1, 142, 1610, 1611, -1, 80, 81, 03123 -1, 1616, -1, -1, -1, -1, 88, 89, 1623, -1, 03124 515, -1, 94, 1101, -1, -1, 521, -1, -1, -1, 03125 525, -1, -1, 528, -1, 530, 71, 72, 67, -1, 03126 69, 76, -1, 35, 36, 37, 38, -1, 120, -1, 03127 619, 43, 44, 45, 46, 624, -1, -1, 627, -1, 03128 -1, -1, 631, 135, -1, -1, -1, -1, 637, -1, 03129 1522, 619, 101, 102, 103, -1, 624, 646, 1156, 627, 03130 218, -1, 1160, 631, -1, -1, 82, -1, 123, 637, 03131 -1, -1, -1, 89, 90, -1, -1, -1, 646, -1, 03132 238, -1, 131, 672, 139, -1, 675, 676, -1, 678, 03133 -1, 680, -1, 682, 927, 684, -1, 930, -1, -1, 03134 689, 934, -1, -1, 672, -1, -1, 162, 676, -1, 03135 268, 127, 680, -1, -1, -1, 684, -1, -1, -1, 03136 136, 689, 711, 281, -1, -1, 218, -1, 144, -1, 03137 288, 720, -1, -1, 723, -1, -1, 295, -1, -1, 03138 -1, -1, -1, 711, -1, 842, 238, 844, 845, -1, 03139 847, -1, 720, -1, -1, 723, -1, 746, -1, 175, 03140 -1, -1, -1, -1, -1, -1, -1, 1265, 1266, -1, 03141 -1, -1, 188, -1, 190, 224, 268, 1275, 746, 478, 03142 -1, 480, 481, -1, 483, -1, 202, -1, -1, 281, 03143 -1, 11, 12, 13, -1, 211, 288, -1, -1, 254, 03144 -1, -1, -1, 295, -1, -1, -1, -1, 1461, 29, 03145 30, 31, -1, -1, -1, 231, 515, 1050, -1, -1, 03146 -1, -1, 521, 920, 1322, 1323, 525, -1, -1, 528, 03147 -1, 530, -1, -1, 250, -1, 252, -1, 58, 59, 03148 60, 938, -1, 940, 941, 942, 943, 944, 945, -1, 03149 -1, -1, -1, -1, -1, 271, 1354, -1, -1, 308, 03150 -1, -1, -1, -1, 1097, 281, -1, -1, -1, -1, 03151 -1, -1, -1, -1, 1107, -1, -1, 293, 867, 295, 03152 1113, -1, -1, 89, 1117, -1, 1384, 8, 1386, 878, 03153 -1, -1, -1, 1546, 1547, 1393, -1, 18, -1, 867, 03154 -1, -1, -1, 24, 353, 354, -1, 28, -1, -1, 03155 878, 32, -1, 119, -1, -1, -1, -1, 39, -1, 03156 41, -1, 128, 129, -1, -1, 915, 133, 134, -1, 03157 51, 52, 53, -1, 1587, -1, -1, -1, 927, -1, 03158 -1, 930, -1, -1, 933, 934, 152, 915, 154, -1, 03159 -1, -1, 1450, -1, -1, -1, -1, -1, -1, 927, 03160 -1, -1, 930, -1, -1, 933, 934, -1, -1, -1, 03161 1067, 1068, -1, -1, -1, -1, -1, 426, 427, 428, 03162 429, 430, 431, 432, 433, 434, 435, 436, 1221, -1, 03163 -1, 197, 198, -1, -1, -1, 1229, -1, -1, 1232, 03164 -1, 207, 208, 452, -1, -1, -1, -1, -1, -1, 03165 -1, -1, 461, 7, -1, -1, 10, -1, -1, -1, 03166 14, 15, 16, 17, 1522, 19, 1524, 21, 22, -1, 03167 -1, 25, -1, -1, -1, -1, -1, -1, 244, 33, 03168 -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, 03169 -1, -1, -1, -1, 48, -1, -1, -1, -1, -1, 03170 54, 1050, 56, -1, -1, -1, -1, 61, -1, -1, 03171 -1, -1, -1, -1, -1, 281, -1, -1, -1, -1, 03172 -1, -1, 1050, -1, -1, -1, -1, -1, -1, 295, 03173 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03174 -1, 1334, -1, 1336, -1, -1, -1, 1340, 1097, 1342, 03175 -1, 1100, 1345, -1, 1347, -1, -1, -1, 1107, -1, 03176 -1, -1, -1, -1, 1113, -1, -1, 1116, 1117, 1097, 03177 -1, -1, 1100, -1, -1, 1124, -1, -1, -1, 1107, 03178 -1, -1, -1, -1, -1, 1113, -1, -1, 1116, 1117, 03179 -1, -1, -1, -1, -1, -1, 1124, 494, 495, 496, 03180 497, 498, 499, 500, 501, 502, 503, -1, -1, -1, 03181 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03182 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03183 -1, -1, -1, 1182, 531, -1, -1, -1, 535, -1, 03184 -1, -1, -1, 540, 541, -1, -1, -1, -1, -1, 03185 -1, -1, -1, -1, 1182, -1, -1, -1, -1, -1, 03186 -1, -1, -1, -1, -1, 1458, -1, -1, -1, -1, 03187 -1, -1, 1221, -1, -1, -1, -1, -1, -1, -1, 03188 1229, -1, -1, 1232, -1, -1, -1, -1, -1, -1, 03189 -1, -1, -1, 1221, -1, -1, -1, -1, -1, -1, 03190 -1, 1229, -1, -1, 1232, -1, -1, -1, -1, -1, 03191 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03192 -1, -1, 1515, -1, -1, -1, -1, -1, -1, -1, 03193 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03194 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03195 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03196 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03197 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03198 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03199 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03200 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03201 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03202 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03203 -1, -1, -1, 842, -1, 844, 845, -1, 847, -1, 03204 -1, -1, 1391, -1, -1, -1, -1, -1, -1, -1, 03205 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03206 -1, -1, -1, 1391, -1, -1, -1, -1, -1, -1, 03207 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03208 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03209 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03210 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1458, 03211 -1, 920, -1, -1, -1, -1, -1, -1, -1, -1, 03212 -1, -1, -1, -1, -1, -1, -1, -1, -1, 938, 03213 1458, 940, 941, 942, 943, 944, 945, -1, -1, -1, 03214 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03215 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03216 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03217 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03218 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03219 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03220 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03221 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03222 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03223 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 03224 -1, -1, 1051, -1, -1, -1, -1, -1, -1, -1, 03225 -1, -1, -1, -1, -1, -1, -1, -1, 1067, 1068 03226 }; 03227 03228 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 03229 symbol of state STATE-NUM. */ 03230 static const yytype_uint16 yystos[] = 03231 { 03232 0, 116, 298, 3, 187, 245, 300, 549, 551, 663, 03233 764, 0, 550, 764, 549, 664, 764, 118, 302, 111, 03234 295, 297, 395, 6, 261, 665, 695, 765, 4, 766, 03235 117, 301, 131, 396, 423, 426, 549, 552, 764, 698, 03236 765, 297, 766, 766, 161, 488, 423, 427, 158, 397, 03237 483, 297, 395, 766, 297, 160, 487, 489, 299, 80, 03238 81, 88, 89, 94, 120, 135, 218, 238, 268, 281, 03239 288, 297, 333, 334, 349, 350, 359, 407, 439, 609, 03240 650, 711, 737, 754, 11, 12, 13, 29, 30, 31, 03241 58, 59, 60, 484, 205, 398, 587, 297, 766, 297, 03242 350, 107, 124, 163, 258, 297, 350, 384, 416, 495, 03243 690, 737, 766, 766, 115, 670, 766, 351, 20, 50, 03244 57, 360, 20, 50, 57, 408, 766, 766, 551, 652, 03245 766, 738, 764, 126, 275, 332, 419, 728, 297, 35, 03246 36, 37, 38, 43, 44, 45, 46, 588, 206, 399, 03247 589, 297, 388, 551, 493, 551, 493, 691, 766, 297, 03248 766, 670, 297, 765, 297, 297, 766, 297, 77, 149, 03249 182, 199, 222, 260, 327, 468, 538, 576, 614, 651, 03250 696, 729, 297, 5, 297, 445, 764, 765, 766, 767, 03251 297, 297, 297, 297, 241, 620, 297, 84, 339, 385, 03252 301, 301, 294, 297, 350, 737, 762, 327, 766, 670, 03253 327, 328, 469, 539, 577, 615, 697, 210, 279, 297, 03254 350, 596, 650, 734, 446, 766, 297, 341, 552, 297, 03255 350, 650, 690, 737, 267, 417, 709, 496, 709, 270, 03256 715, 763, 297, 297, 297, 297, 78, 297, 327, 329, 03257 332, 150, 297, 466, 468, 766, 183, 184, 297, 538, 03258 540, 542, 543, 670, 201, 297, 576, 578, 670, 223, 03259 297, 614, 616, 620, 297, 695, 696, 765, 765, 7, 03260 10, 14, 15, 16, 17, 19, 21, 22, 25, 33, 03261 42, 48, 54, 56, 61, 735, 295, 445, 764, 765, 03262 766, 766, 164, 340, 497, 200, 580, 710, 83, 297, 03263 336, 350, 690, 737, 297, 336, 350, 690, 737, 766, 03264 73, 99, 237, 297, 320, 350, 368, 646, 650, 737, 03265 330, 332, 467, 766, 541, 542, 276, 277, 544, 670, 03266 730, 731, 579, 670, 617, 620, 297, 297, 297, 494, 03267 552, 297, 581, 125, 129, 220, 253, 297, 350, 389, 03268 418, 420, 680, 737, 338, 551, 766, 765, 765, 765, 03269 297, 395, 297, 395, 297, 395, 297, 297, 544, 297, 03270 395, 297, 395, 297, 140, 247, 297, 350, 449, 669, 03271 491, 551, 421, 422, 551, 390, 681, 85, 337, 342, 03272 766, 297, 282, 369, 741, 647, 741, 544, 670, 670, 03273 423, 142, 297, 333, 334, 349, 350, 359, 407, 439, 03274 451, 609, 650, 711, 737, 754, 119, 128, 133, 134, 03275 152, 154, 197, 198, 207, 208, 244, 297, 350, 405, 03276 420, 432, 435, 437, 472, 476, 572, 574, 590, 592, 03277 661, 737, 177, 297, 350, 526, 737, 23, 49, 55, 03278 343, 283, 285, 297, 350, 650, 690, 737, 742, 746, 03279 766, 765, 297, 297, 297, 670, 670, 297, 109, 132, 03280 153, 155, 209, 278, 391, 428, 434, 452, 474, 478, 03281 594, 732, 551, 668, 668, 668, 668, 668, 668, 668, 03282 668, 668, 668, 668, 516, 527, 551, 297, 551, 748, 03283 747, 766, 297, 297, 734, 392, 428, 434, 423, 428, 03284 434, 475, 428, 434, 479, 766, 428, 434, 733, 297, 03285 130, 424, 424, 424, 424, 424, 424, 424, 573, 424, 03286 424, 424, 424, 79, 91, 96, 112, 156, 171, 172, 03287 246, 262, 289, 291, 297, 331, 350, 354, 363, 400, 03288 480, 512, 514, 650, 666, 699, 737, 755, 757, 287, 03289 752, 145, 147, 189, 193, 227, 235, 297, 350, 458, 03290 462, 555, 563, 625, 640, 737, 766, 297, 297, 428, 03291 434, 429, 497, 297, 428, 434, 297, 428, 434, 595, 03292 297, 428, 434, 423, 425, 428, 434, 424, 71, 72, 03293 76, 123, 139, 162, 254, 318, 319, 324, 415, 433, 03294 448, 492, 656, 682, 436, 656, 682, 438, 656, 682, 03295 424, 477, 656, 682, 297, 350, 737, 575, 656, 682, 03296 424, 424, 185, 242, 545, 657, 662, 332, 517, 552, 03297 542, 401, 297, 513, 515, 667, 517, 542, 517, 8, 03298 18, 24, 28, 32, 39, 41, 51, 52, 53, 753, 03299 151, 470, 743, 148, 456, 459, 463, 194, 556, 567, 03300 564, 236, 626, 644, 641, 297, 297, 359, 297, 406, 03301 656, 682, 670, 670, 318, 325, 448, 670, 670, 670, 03302 656, 683, 297, 350, 737, 297, 350, 737, 297, 350, 03303 737, 473, 656, 682, 297, 350, 737, 297, 350, 737, 03304 591, 656, 682, 593, 656, 682, 546, 658, 297, 350, 03305 737, 297, 297, 297, 297, 517, 297, 517, 297, 517, 03306 297, 517, 297, 297, 297, 297, 471, 93, 297, 350, 03307 355, 650, 690, 737, 181, 465, 536, 552, 108, 271, 03308 297, 350, 386, 650, 716, 146, 297, 350, 456, 460, 03309 737, 536, 552, 566, 95, 191, 297, 350, 361, 559, 03310 650, 192, 297, 350, 561, 567, 737, 536, 552, 643, 03311 62, 100, 101, 102, 103, 229, 297, 303, 350, 370, 03312 372, 374, 376, 386, 629, 650, 230, 297, 350, 631, 03313 644, 737, 297, 297, 350, 737, 297, 297, 319, 326, 03314 492, 297, 297, 297, 297, 297, 350, 737, 297, 350, 03315 737, 297, 350, 737, 297, 657, 297, 656, 682, 69, 03316 157, 186, 213, 219, 226, 228, 240, 252, 263, 292, 03317 297, 315, 350, 386, 481, 547, 602, 610, 623, 627, 03318 650, 654, 678, 700, 716, 737, 758, 356, 552, 286, 03319 456, 457, 750, 387, 695, 765, 106, 382, 717, 461, 03320 456, 567, 568, 750, 362, 466, 766, 382, 562, 456, 03321 644, 645, 750, 304, 540, 542, 371, 578, 670, 373, 03322 578, 670, 375, 578, 670, 377, 578, 670, 382, 632, 03323 297, 68, 70, 74, 314, 316, 317, 321, 482, 548, 03324 67, 312, 551, 739, 611, 312, 551, 624, 642, 642, 03325 655, 551, 677, 679, 701, 759, 82, 90, 127, 136, 03326 144, 175, 188, 190, 202, 211, 231, 250, 293, 297, 03327 335, 350, 352, 430, 440, 454, 522, 553, 557, 582, 03328 597, 633, 673, 678, 716, 737, 760, 537, 766, 552, 03329 749, 297, 297, 9, 34, 47, 383, 137, 217, 297, 03330 350, 443, 607, 737, 297, 456, 297, 297, 104, 378, 03331 560, 297, 566, 567, 297, 297, 297, 297, 297, 297, 03332 167, 378, 502, 630, 297, 643, 644, 221, 612, 256, 03333 686, 297, 297, 350, 737, 138, 233, 297, 447, 637, 03334 644, 297, 481, 637, 644, 758, 551, 729, 196, 297, 03335 570, 610, 644, 110, 280, 297, 303, 350, 370, 372, 03336 374, 376, 386, 393, 629, 650, 736, 737, 166, 500, 03337 628, 159, 215, 239, 297, 335, 350, 352, 430, 454, 03338 485, 600, 633, 648, 650, 737, 65, 234, 290, 297, 03339 309, 350, 639, 737, 756, 64, 212, 297, 307, 335, 03340 350, 352, 430, 454, 485, 599, 600, 633, 648, 650, 03341 737, 297, 481, 637, 644, 243, 659, 353, 422, 426, 03342 431, 441, 643, 644, 312, 464, 551, 523, 642, 312, 03343 551, 565, 565, 583, 642, 464, 598, 634, 643, 644, 03344 674, 765, 274, 726, 761, 297, 766, 339, 751, 297, 03345 269, 444, 712, 378, 608, 379, 540, 542, 75, 273, 03346 297, 322, 724, 503, 540, 542, 297, 322, 724, 613, 03347 297, 264, 687, 702, 297, 643, 638, 766, 603, 734, 03348 571, 26, 27, 40, 394, 297, 501, 297, 350, 650, 03349 737, 486, 490, 764, 536, 552, 601, 740, 552, 649, 03350 653, 98, 310, 366, 642, 516, 308, 695, 765, 659, 03351 620, 297, 297, 307, 335, 350, 430, 454, 650, 737, 03352 87, 113, 204, 216, 225, 251, 297, 347, 350, 402, 03353 585, 605, 621, 659, 675, 737, 265, 442, 644, 704, 03354 284, 455, 744, 750, 297, 350, 650, 737, 481, 554, 03355 165, 498, 558, 297, 350, 650, 736, 737, 297, 335, 03356 350, 352, 454, 553, 557, 599, 633, 737, 92, 297, 03357 350, 352, 357, 430, 454, 485, 648, 650, 737, 297, 03358 454, 673, 765, 727, 63, 168, 179, 297, 305, 350, 03359 440, 504, 530, 737, 297, 122, 203, 413, 584, 713, 03360 297, 413, 297, 413, 297, 170, 173, 323, 510, 517, 03361 518, 510, 517, 518, 725, 503, 257, 297, 688, 703, 03362 297, 297, 297, 643, 644, 313, 766, 297, 297, 610, 03363 644, 297, 297, 623, 627, 297, 395, 297, 395, 297, 03364 395, 766, 169, 174, 297, 350, 508, 520, 737, 637, 03365 670, 297, 297, 620, 660, 620, 403, 620, 97, 364, 03366 586, 224, 606, 618, 618, 622, 364, 676, 705, 297, 03367 378, 502, 745, 214, 232, 272, 297, 350, 386, 604, 03368 635, 650, 716, 718, 737, 297, 350, 352, 361, 430, 03369 454, 553, 559, 650, 737, 499, 297, 350, 352, 430, 03370 650, 737, 358, 430, 86, 143, 259, 297, 344, 453, 03371 692, 306, 542, 505, 643, 644, 531, 643, 644, 414, 03372 561, 567, 631, 637, 644, 413, 114, 404, 413, 584, 03373 714, 511, 519, 297, 725, 297, 689, 702, 297, 718, 03374 297, 367, 404, 509, 637, 643, 644, 521, 637, 643, 03375 644, 297, 178, 528, 297, 650, 620, 297, 650, 365, 03376 297, 650, 619, 297, 650, 297, 650, 297, 650, 121, 03377 266, 297, 409, 706, 297, 744, 750, 740, 636, 643, 03378 644, 248, 671, 719, 297, 553, 297, 345, 637, 643, 03379 644, 297, 637, 643, 644, 693, 297, 350, 440, 504, 03380 530, 737, 176, 506, 524, 644, 704, 378, 502, 532, 03381 297, 322, 724, 670, 670, 297, 141, 297, 450, 517, 03382 518, 297, 510, 517, 297, 255, 297, 684, 297, 297, 03383 528, 297, 528, 529, 297, 348, 66, 297, 311, 620, 03384 297, 620, 180, 344, 410, 533, 692, 195, 524, 569, 03385 644, 704, 707, 729, 297, 303, 350, 370, 372, 374, 03386 376, 386, 629, 650, 736, 737, 766, 249, 672, 720, 03387 322, 346, 724, 404, 694, 517, 378, 502, 507, 297, 03388 297, 297, 297, 750, 297, 450, 510, 517, 518, 297, 03389 650, 620, 534, 637, 643, 644, 411, 524, 569, 644, 03390 704, 297, 378, 502, 708, 297, 766, 766, 105, 380, 03391 721, 297, 297, 322, 724, 497, 525, 297, 685, 718, 03392 620, 510, 517, 518, 535, 378, 412, 502, 297, 297, 03393 766, 381, 587, 722, 297, 297, 620, 297, 297, 297, 03394 297, 620, 589, 723, 297, 297 03395 }; 03396 03397 #define yyerrok (yyerrstatus = 0) 03398 #define yyclearin (yychar = YYEMPTY) 03399 #define YYEMPTY (-2) 03400 #define YYEOF 0 03401 03402 #define YYACCEPT goto yyacceptlab 03403 #define YYABORT goto yyabortlab 03404 #define YYERROR goto yyerrorlab 03405 03406 03407 /* Like YYERROR except do call yyerror. This remains here temporarily 03408 to ease the transition to the new meaning of YYERROR, for GCC. 03409 Once GCC version 2 has supplanted version 1, this can go. */ 03410 03411 #define YYFAIL goto yyerrlab 03412 03413 #define YYRECOVERING() (!!yyerrstatus) 03414 03415 #define YYBACKUP(Token, Value) \ 03416 do \ 03417 if (yychar == YYEMPTY && yylen == 1) \ 03418 { \ 03419 yychar = (Token); \ 03420 yylval = (Value); \ 03421 yytoken = YYTRANSLATE (yychar); \ 03422 YYPOPSTACK (1); \ 03423 goto yybackup; \ 03424 } \ 03425 else \ 03426 { \ 03427 yyerror (YY_("syntax error: cannot back up")); \ 03428 YYERROR; \ 03429 } \ 03430 while (YYID (0)) 03431 03432 03433 #define YYTERROR 1 03434 #define YYERRCODE 256 03435 03436 03437 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 03438 If N is 0, then set CURRENT to the empty location which ends 03439 the previous symbol: RHS[0] (always defined). */ 03440 03441 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 03442 #ifndef YYLLOC_DEFAULT 03443 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 03444 do \ 03445 if (YYID (N)) \ 03446 { \ 03447 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 03448 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 03449 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 03450 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 03451 } \ 03452 else \ 03453 { \ 03454 (Current).first_line = (Current).last_line = \ 03455 YYRHSLOC (Rhs, 0).last_line; \ 03456 (Current).first_column = (Current).last_column = \ 03457 YYRHSLOC (Rhs, 0).last_column; \ 03458 } \ 03459 while (YYID (0)) 03460 #endif 03461 03462 03463 /* YY_LOCATION_PRINT -- Print the location on the stream. 03464 This macro was not mandated originally: define only if we know 03465 we won't break user code: when these are the locations we know. */ 03466 03467 #ifndef YY_LOCATION_PRINT 03468 # if YYLTYPE_IS_TRIVIAL 03469 # define YY_LOCATION_PRINT(File, Loc) \ 03470 fprintf (File, "%d.%d-%d.%d", \ 03471 (Loc).first_line, (Loc).first_column, \ 03472 (Loc).last_line, (Loc).last_column) 03473 # else 03474 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 03475 # endif 03476 #endif 03477 03478 03479 /* YYLEX -- calling `yylex' with the right arguments. */ 03480 03481 #ifdef YYLEX_PARAM 03482 # define YYLEX yylex (YYLEX_PARAM) 03483 #else 03484 # define YYLEX yylex () 03485 #endif 03486 03487 /* Enable debugging if requested. */ 03488 #if YYDEBUG 03489 03490 # ifndef YYFPRINTF 03491 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 03492 # define YYFPRINTF fprintf 03493 # endif 03494 03495 # define YYDPRINTF(Args) \ 03496 do { \ 03497 if (yydebug) \ 03498 YYFPRINTF Args; \ 03499 } while (YYID (0)) 03500 03501 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 03502 do { \ 03503 if (yydebug) \ 03504 { \ 03505 YYFPRINTF (stderr, "%s ", Title); \ 03506 yy_symbol_print (stderr, \ 03507 Type, Value); \ 03508 YYFPRINTF (stderr, "\n"); \ 03509 } \ 03510 } while (YYID (0)) 03511 03512 03513 /*--------------------------------. 03514 | Print this symbol on YYOUTPUT. | 03515 `--------------------------------*/ 03516 03517 /*ARGSUSED*/ 03518 #if (defined __STDC__ || defined __C99__FUNC__ \ 03519 || defined __cplusplus || defined _MSC_VER) 03520 static void 03521 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 03522 #else 03523 static void 03524 yy_symbol_value_print (yyoutput, yytype, yyvaluep) 03525 FILE *yyoutput; 03526 int yytype; 03527 YYSTYPE const * const yyvaluep; 03528 #endif 03529 { 03530 if (!yyvaluep) 03531 return; 03532 # ifdef YYPRINT 03533 if (yytype < YYNTOKENS) 03534 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 03535 # else 03536 YYUSE (yyoutput); 03537 # endif 03538 switch (yytype) 03539 { 03540 default: 03541 break; 03542 } 03543 } 03544 03545 03546 /*--------------------------------. 03547 | Print this symbol on YYOUTPUT. | 03548 `--------------------------------*/ 03549 03550 #if (defined __STDC__ || defined __C99__FUNC__ \ 03551 || defined __cplusplus || defined _MSC_VER) 03552 static void 03553 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 03554 #else 03555 static void 03556 yy_symbol_print (yyoutput, yytype, yyvaluep) 03557 FILE *yyoutput; 03558 int yytype; 03559 YYSTYPE const * const yyvaluep; 03560 #endif 03561 { 03562 if (yytype < YYNTOKENS) 03563 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 03564 else 03565 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 03566 03567 yy_symbol_value_print (yyoutput, yytype, yyvaluep); 03568 YYFPRINTF (yyoutput, ")"); 03569 } 03570 03571 /*------------------------------------------------------------------. 03572 | yy_stack_print -- Print the state stack from its BOTTOM up to its | 03573 | TOP (included). | 03574 `------------------------------------------------------------------*/ 03575 03576 #if (defined __STDC__ || defined __C99__FUNC__ \ 03577 || defined __cplusplus || defined _MSC_VER) 03578 static void 03579 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 03580 #else 03581 static void 03582 yy_stack_print (yybottom, yytop) 03583 yytype_int16 *yybottom; 03584 yytype_int16 *yytop; 03585 #endif 03586 { 03587 YYFPRINTF (stderr, "Stack now"); 03588 for (; yybottom <= yytop; yybottom++) 03589 { 03590 int yybot = *yybottom; 03591 YYFPRINTF (stderr, " %d", yybot); 03592 } 03593 YYFPRINTF (stderr, "\n"); 03594 } 03595 03596 # define YY_STACK_PRINT(Bottom, Top) \ 03597 do { \ 03598 if (yydebug) \ 03599 yy_stack_print ((Bottom), (Top)); \ 03600 } while (YYID (0)) 03601 03602 03603 /*------------------------------------------------. 03604 | Report that the YYRULE is going to be reduced. | 03605 `------------------------------------------------*/ 03606 03607 #if (defined __STDC__ || defined __C99__FUNC__ \ 03608 || defined __cplusplus || defined _MSC_VER) 03609 static void 03610 yy_reduce_print (YYSTYPE *yyvsp, int yyrule) 03611 #else 03612 static void 03613 yy_reduce_print (yyvsp, yyrule) 03614 YYSTYPE *yyvsp; 03615 int yyrule; 03616 #endif 03617 { 03618 int yynrhs = yyr2[yyrule]; 03619 int yyi; 03620 unsigned long int yylno = yyrline[yyrule]; 03621 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 03622 yyrule - 1, yylno); 03623 /* The symbols being reduced. */ 03624 for (yyi = 0; yyi < yynrhs; yyi++) 03625 { 03626 YYFPRINTF (stderr, " $%d = ", yyi + 1); 03627 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 03628 &(yyvsp[(yyi + 1) - (yynrhs)]) 03629 ); 03630 YYFPRINTF (stderr, "\n"); 03631 } 03632 } 03633 03634 # define YY_REDUCE_PRINT(Rule) \ 03635 do { \ 03636 if (yydebug) \ 03637 yy_reduce_print (yyvsp, Rule); \ 03638 } while (YYID (0)) 03639 03640 /* Nonzero means print parse trace. It is left uninitialized so that 03641 multiple parsers can coexist. */ 03642 int yydebug; 03643 #else /* !YYDEBUG */ 03644 # define YYDPRINTF(Args) 03645 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 03646 # define YY_STACK_PRINT(Bottom, Top) 03647 # define YY_REDUCE_PRINT(Rule) 03648 #endif /* !YYDEBUG */ 03649 03650 03651 /* YYINITDEPTH -- initial size of the parser's stacks. */ 03652 #ifndef YYINITDEPTH 03653 # define YYINITDEPTH 200 03654 #endif 03655 03656 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 03657 if the built-in stack extension method is used). 03658 03659 Do not make this value too large; the results are undefined if 03660 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) 03661 evaluated with infinite-precision integer arithmetic. */ 03662 03663 #ifndef YYMAXDEPTH 03664 # define YYMAXDEPTH 10000 03665 #endif 03666 03667 03668 03669 #if YYERROR_VERBOSE 03670 03671 # ifndef yystrlen 03672 # if defined __GLIBC__ && defined _STRING_H 03673 # define yystrlen strlen 03674 # else 03675 /* Return the length of YYSTR. */ 03676 #if (defined __STDC__ || defined __C99__FUNC__ \ 03677 || defined __cplusplus || defined _MSC_VER) 03678 static YYSIZE_T 03679 yystrlen (const char *yystr) 03680 #else 03681 static YYSIZE_T 03682 yystrlen (yystr) 03683 const char *yystr; 03684 #endif 03685 { 03686 YYSIZE_T yylen; 03687 for (yylen = 0; yystr[yylen]; yylen++) 03688 continue; 03689 return yylen; 03690 } 03691 # endif 03692 # endif 03693 03694 # ifndef yystpcpy 03695 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 03696 # define yystpcpy stpcpy 03697 # else 03698 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 03699 YYDEST. */ 03700 #if (defined __STDC__ || defined __C99__FUNC__ \ 03701 || defined __cplusplus || defined _MSC_VER) 03702 static char * 03703 yystpcpy (char *yydest, const char *yysrc) 03704 #else 03705 static char * 03706 yystpcpy (yydest, yysrc) 03707 char *yydest; 03708 const char *yysrc; 03709 #endif 03710 { 03711 char *yyd = yydest; 03712 const char *yys = yysrc; 03713 03714 while ((*yyd++ = *yys++) != '\0') 03715 continue; 03716 03717 return yyd - 1; 03718 } 03719 # endif 03720 # endif 03721 03722 # ifndef yytnamerr 03723 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary 03724 quotes and backslashes, so that it's suitable for yyerror. The 03725 heuristic is that double-quoting is unnecessary unless the string 03726 contains an apostrophe, a comma, or backslash (other than 03727 backslash-backslash). YYSTR is taken from yytname. If YYRES is 03728 null, do not copy; instead, return the length of what the result 03729 would have been. */ 03730 static YYSIZE_T 03731 yytnamerr (char *yyres, const char *yystr) 03732 { 03733 if (*yystr == '"') 03734 { 03735 YYSIZE_T yyn = 0; 03736 char const *yyp = yystr; 03737 03738 for (;;) 03739 switch (*++yyp) 03740 { 03741 case '\'': 03742 case ',': 03743 goto do_not_strip_quotes; 03744 03745 case '\\': 03746 if (*++yyp != '\\') 03747 goto do_not_strip_quotes; 03748 /* Fall through. */ 03749 default: 03750 if (yyres) 03751 yyres[yyn] = *yyp; 03752 yyn++; 03753 break; 03754 03755 case '"': 03756 if (yyres) 03757 yyres[yyn] = '\0'; 03758 return yyn; 03759 } 03760 do_not_strip_quotes: ; 03761 } 03762 03763 if (! yyres) 03764 return yystrlen (yystr); 03765 03766 return yystpcpy (yyres, yystr) - yyres; 03767 } 03768 # endif 03769 03770 /* Copy into YYRESULT an error message about the unexpected token 03771 YYCHAR while in state YYSTATE. Return the number of bytes copied, 03772 including the terminating null byte. If YYRESULT is null, do not 03773 copy anything; just return the number of bytes that would be 03774 copied. As a special case, return 0 if an ordinary "syntax error" 03775 message will do. Return YYSIZE_MAXIMUM if overflow occurs during 03776 size calculation. */ 03777 static YYSIZE_T 03778 yysyntax_error (char *yyresult, int yystate, int yychar) 03779 { 03780 int yyn = yypact[yystate]; 03781 03782 if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) 03783 return 0; 03784 else 03785 { 03786 int yytype = YYTRANSLATE (yychar); 03787 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); 03788 YYSIZE_T yysize = yysize0; 03789 YYSIZE_T yysize1; 03790 int yysize_overflow = 0; 03791 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 03792 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 03793 int yyx; 03794 03795 # if 0 03796 /* This is so xgettext sees the translatable formats that are 03797 constructed on the fly. */ 03798 YY_("syntax error, unexpected %s"); 03799 YY_("syntax error, unexpected %s, expecting %s"); 03800 YY_("syntax error, unexpected %s, expecting %s or %s"); 03801 YY_("syntax error, unexpected %s, expecting %s or %s or %s"); 03802 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); 03803 # endif 03804 char *yyfmt; 03805 char const *yyf; 03806 static char const yyunexpected[] = "syntax error, unexpected %s"; 03807 static char const yyexpecting[] = ", expecting %s"; 03808 static char const yyor[] = " or %s"; 03809 char yyformat[sizeof yyunexpected 03810 + sizeof yyexpecting - 1 03811 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) 03812 * (sizeof yyor - 1))]; 03813 char const *yyprefix = yyexpecting; 03814 03815 /* Start YYX at -YYN if negative to avoid negative indexes in 03816 YYCHECK. */ 03817 int yyxbegin = yyn < 0 ? -yyn : 0; 03818 03819 /* Stay within bounds of both yycheck and yytname. */ 03820 int yychecklim = YYLAST - yyn + 1; 03821 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 03822 int yycount = 1; 03823 03824 yyarg[0] = yytname[yytype]; 03825 yyfmt = yystpcpy (yyformat, yyunexpected); 03826 03827 for (yyx = yyxbegin; yyx < yyxend; ++yyx) 03828 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) 03829 { 03830 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 03831 { 03832 yycount = 1; 03833 yysize = yysize0; 03834 yyformat[sizeof yyunexpected - 1] = '\0'; 03835 break; 03836 } 03837 yyarg[yycount++] = yytname[yyx]; 03838 yysize1 = yysize + yytnamerr (0, yytname[yyx]); 03839 yysize_overflow |= (yysize1 < yysize); 03840 yysize = yysize1; 03841 yyfmt = yystpcpy (yyfmt, yyprefix); 03842 yyprefix = yyor; 03843 } 03844 03845 yyf = YY_(yyformat); 03846 yysize1 = yysize + yystrlen (yyf); 03847 yysize_overflow |= (yysize1 < yysize); 03848 yysize = yysize1; 03849 03850 if (yysize_overflow) 03851 return YYSIZE_MAXIMUM; 03852 03853 if (yyresult) 03854 { 03855 /* Avoid sprintf, as that infringes on the user's name space. 03856 Don't have undefined behavior even if the translation 03857 produced a string with the wrong number of "%s"s. */ 03858 char *yyp = yyresult; 03859 int yyi = 0; 03860 while ((*yyp = *yyf) != '\0') 03861 { 03862 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) 03863 { 03864 yyp += yytnamerr (yyp, yyarg[yyi++]); 03865 yyf += 2; 03866 } 03867 else 03868 { 03869 yyp++; 03870 yyf++; 03871 } 03872 } 03873 } 03874 return yysize; 03875 } 03876 } 03877 #endif /* YYERROR_VERBOSE */ 03878 03879 03880 /*-----------------------------------------------. 03881 | Release the memory associated to this symbol. | 03882 `-----------------------------------------------*/ 03883 03884 /*ARGSUSED*/ 03885 #if (defined __STDC__ || defined __C99__FUNC__ \ 03886 || defined __cplusplus || defined _MSC_VER) 03887 static void 03888 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 03889 #else 03890 static void 03891 yydestruct (yymsg, yytype, yyvaluep) 03892 const char *yymsg; 03893 int yytype; 03894 YYSTYPE *yyvaluep; 03895 #endif 03896 { 03897 YYUSE (yyvaluep); 03898 03899 if (!yymsg) 03900 yymsg = "Deleting"; 03901 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 03902 03903 switch (yytype) 03904 { 03905 03906 default: 03907 break; 03908 } 03909 } 03910 03911 /* Prevent warnings from -Wmissing-prototypes. */ 03912 #ifdef YYPARSE_PARAM 03913 #if defined __STDC__ || defined __cplusplus 03914 int yyparse (void *YYPARSE_PARAM); 03915 #else 03916 int yyparse (); 03917 #endif 03918 #else /* ! YYPARSE_PARAM */ 03919 #if defined __STDC__ || defined __cplusplus 03920 int yyparse (void); 03921 #else 03922 int yyparse (); 03923 #endif 03924 #endif /* ! YYPARSE_PARAM */ 03925 03926 03927 /* The lookahead symbol. */ 03928 int yychar; 03929 03930 /* The semantic value of the lookahead symbol. */ 03931 YYSTYPE yylval; 03932 03933 /* Number of syntax errors so far. */ 03934 int yynerrs; 03935 03936 03937 03938 /*-------------------------. 03939 | yyparse or yypush_parse. | 03940 `-------------------------*/ 03941 03942 #ifdef YYPARSE_PARAM 03943 #if (defined __STDC__ || defined __C99__FUNC__ \ 03944 || defined __cplusplus || defined _MSC_VER) 03945 int 03946 yyparse (void *YYPARSE_PARAM) 03947 #else 03948 int 03949 yyparse (YYPARSE_PARAM) 03950 void *YYPARSE_PARAM; 03951 #endif 03952 #else /* ! YYPARSE_PARAM */ 03953 #if (defined __STDC__ || defined __C99__FUNC__ \ 03954 || defined __cplusplus || defined _MSC_VER) 03955 int 03956 yyparse (void) 03957 #else 03958 int 03959 yyparse () 03960 03961 #endif 03962 #endif 03963 { 03964 03965 03966 int yystate; 03967 /* Number of tokens to shift before error messages enabled. */ 03968 int yyerrstatus; 03969 03970 /* The stacks and their tools: 03971 `yyss': related to states. 03972 `yyvs': related to semantic values. 03973 03974 Refer to the stacks thru separate pointers, to allow yyoverflow 03975 to reallocate them elsewhere. */ 03976 03977 /* The state stack. */ 03978 yytype_int16 yyssa[YYINITDEPTH]; 03979 yytype_int16 *yyss; 03980 yytype_int16 *yyssp; 03981 03982 /* The semantic value stack. */ 03983 YYSTYPE yyvsa[YYINITDEPTH]; 03984 YYSTYPE *yyvs; 03985 YYSTYPE *yyvsp; 03986 03987 YYSIZE_T yystacksize; 03988 03989 int yyn; 03990 int yyresult; 03991 /* Lookahead token as an internal (translated) token number. */ 03992 int yytoken; 03993 /* The variables used to return semantic value and location from the 03994 action routines. */ 03995 YYSTYPE yyval; 03996 03997 #if YYERROR_VERBOSE 03998 /* Buffer for error messages, and its allocated size. */ 03999 char yymsgbuf[128]; 04000 char *yymsg = yymsgbuf; 04001 YYSIZE_T yymsg_alloc = sizeof yymsgbuf; 04002 #endif 04003 04004 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 04005 04006 /* The number of symbols on the RHS of the reduced rule. 04007 Keep to zero when no symbol should be popped. */ 04008 int yylen = 0; 04009 04010 yytoken = 0; 04011 yyss = yyssa; 04012 yyvs = yyvsa; 04013 yystacksize = YYINITDEPTH; 04014 04015 YYDPRINTF ((stderr, "Starting parse\n")); 04016 04017 yystate = 0; 04018 yyerrstatus = 0; 04019 yynerrs = 0; 04020 yychar = YYEMPTY; /* Cause a token to be read. */ 04021 04022 /* Initialize stack pointers. 04023 Waste one element of value and location stack 04024 so that they stay on the same level as the state stack. 04025 The wasted elements are never initialized. */ 04026 yyssp = yyss; 04027 yyvsp = yyvs; 04028 04029 goto yysetstate; 04030 04031 /*------------------------------------------------------------. 04032 | yynewstate -- Push a new state, which is found in yystate. | 04033 `------------------------------------------------------------*/ 04034 yynewstate: 04035 /* In all cases, when you get here, the value and location stacks 04036 have just been pushed. So pushing a state here evens the stacks. */ 04037 yyssp++; 04038 04039 yysetstate: 04040 *yyssp = yystate; 04041 04042 if (yyss + yystacksize - 1 <= yyssp) 04043 { 04044 /* Get the current used size of the three stacks, in elements. */ 04045 YYSIZE_T yysize = yyssp - yyss + 1; 04046 04047 #ifdef yyoverflow 04048 { 04049 /* Give user a chance to reallocate the stack. Use copies of 04050 these so that the &'s don't force the real ones into 04051 memory. */ 04052 YYSTYPE *yyvs1 = yyvs; 04053 yytype_int16 *yyss1 = yyss; 04054 04055 /* Each stack pointer address is followed by the size of the 04056 data in use in that stack, in bytes. This used to be a 04057 conditional around just the two extra args, but that might 04058 be undefined if yyoverflow is a macro. */ 04059 yyoverflow (YY_("memory exhausted"), 04060 &yyss1, yysize * sizeof (*yyssp), 04061 &yyvs1, yysize * sizeof (*yyvsp), 04062 &yystacksize); 04063 04064 yyss = yyss1; 04065 yyvs = yyvs1; 04066 } 04067 #else /* no yyoverflow */ 04068 # ifndef YYSTACK_RELOCATE 04069 goto yyexhaustedlab; 04070 # else 04071 /* Extend the stack our own way. */ 04072 if (YYMAXDEPTH <= yystacksize) 04073 goto yyexhaustedlab; 04074 yystacksize *= 2; 04075 if (YYMAXDEPTH < yystacksize) 04076 yystacksize = YYMAXDEPTH; 04077 04078 { 04079 yytype_int16 *yyss1 = yyss; 04080 union yyalloc *yyptr = 04081 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 04082 if (! yyptr) 04083 goto yyexhaustedlab; 04084 YYSTACK_RELOCATE (yyss_alloc, yyss); 04085 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 04086 # undef YYSTACK_RELOCATE 04087 if (yyss1 != yyssa) 04088 YYSTACK_FREE (yyss1); 04089 } 04090 # endif 04091 #endif /* no yyoverflow */ 04092 04093 yyssp = yyss + yysize - 1; 04094 yyvsp = yyvs + yysize - 1; 04095 04096 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 04097 (unsigned long int) yystacksize)); 04098 04099 if (yyss + yystacksize - 1 <= yyssp) 04100 YYABORT; 04101 } 04102 04103 YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 04104 04105 if (yystate == YYFINAL) 04106 YYACCEPT; 04107 04108 goto yybackup; 04109 04110 /*-----------. 04111 | yybackup. | 04112 `-----------*/ 04113 yybackup: 04114 04115 /* Do appropriate processing given the current state. Read a 04116 lookahead token if we need one and don't already have one. */ 04117 04118 /* First try to decide what to do without reference to lookahead token. */ 04119 yyn = yypact[yystate]; 04120 if (yyn == YYPACT_NINF) 04121 goto yydefault; 04122 04123 /* Not known => get a lookahead token if don't already have one. */ 04124 04125 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 04126 if (yychar == YYEMPTY) 04127 { 04128 YYDPRINTF ((stderr, "Reading a token: ")); 04129 yychar = YYLEX; 04130 } 04131 04132 if (yychar <= YYEOF) 04133 { 04134 yychar = yytoken = YYEOF; 04135 YYDPRINTF ((stderr, "Now at end of input.\n")); 04136 } 04137 else 04138 { 04139 yytoken = YYTRANSLATE (yychar); 04140 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 04141 } 04142 04143 /* If the proper action on seeing token YYTOKEN is to reduce or to 04144 detect an error, take that action. */ 04145 yyn += yytoken; 04146 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 04147 goto yydefault; 04148 yyn = yytable[yyn]; 04149 if (yyn <= 0) 04150 { 04151 if (yyn == 0 || yyn == YYTABLE_NINF) 04152 goto yyerrlab; 04153 yyn = -yyn; 04154 goto yyreduce; 04155 } 04156 04157 /* Count tokens shifted since error; after three, turn off error 04158 status. */ 04159 if (yyerrstatus) 04160 yyerrstatus--; 04161 04162 /* Shift the lookahead token. */ 04163 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 04164 04165 /* Discard the shifted token. */ 04166 yychar = YYEMPTY; 04167 04168 yystate = yyn; 04169 *++yyvsp = yylval; 04170 04171 goto yynewstate; 04172 04173 04174 /*-----------------------------------------------------------. 04175 | yydefault -- do the default action for the current state. | 04176 `-----------------------------------------------------------*/ 04177 yydefault: 04178 yyn = yydefact[yystate]; 04179 if (yyn == 0) 04180 goto yyerrlab; 04181 goto yyreduce; 04182 04183 04184 /*-----------------------------. 04185 | yyreduce -- Do a reduction. | 04186 `-----------------------------*/ 04187 yyreduce: 04188 /* yyn is the number of a rule to reduce with. */ 04189 yylen = yyr2[yyn]; 04190 04191 /* If YYLEN is nonzero, implement the default value of the action: 04192 `$$ = $1'. 04193 04194 Otherwise, the following line sets YYVAL to garbage. 04195 This behavior is undocumented and Bison 04196 users should not rely upon it. Assigning to YYVAL 04197 unconditionally makes the parser a bit smaller, and it avoids a 04198 GCC warning that YYVAL may be used uninitialized. */ 04199 yyval = yyvsp[1-yylen]; 04200 04201 04202 YY_REDUCE_PRINT (yyn); 04203 switch (yyn) 04204 { 04205 case 2: 04206 04207 /* Line 1455 of yacc.c */ 04208 #line 505 "edif.y" 04209 { PopC(); } 04210 break; 04211 04212 case 11: 04213 04214 /* Line 1455 of yacc.c */ 04215 #line 520 "edif.y" 04216 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04217 break; 04218 04219 case 12: 04220 04221 /* Line 1455 of yacc.c */ 04222 #line 523 "edif.y" 04223 { free((yyvsp[(2) - (3)].s)); } 04224 break; 04225 04226 case 13: 04227 04228 /* Line 1455 of yacc.c */ 04229 #line 527 "edif.y" 04230 { free((yyvsp[(2) - (5)].s)); free((yyvsp[(3) - (5)].s)); free((yyvsp[(4) - (5)].s)); } 04231 break; 04232 04233 case 25: 04234 04235 /* Line 1455 of yacc.c */ 04236 #line 551 "edif.y" 04237 { free((yyvsp[(1) - (1)].s)); } 04238 break; 04239 04240 case 34: 04241 04242 /* Line 1455 of yacc.c */ 04243 #line 568 "edif.y" 04244 { str_pair_free((yyvsp[(2) - (5)].ps)); free((yyvsp[(3) - (5)].s)); } 04245 break; 04246 04247 case 36: 04248 04249 /* Line 1455 of yacc.c */ 04250 #line 572 "edif.y" 04251 { free((yyvsp[(1) - (1)].s)); } 04252 break; 04253 04254 case 47: 04255 04256 /* Line 1455 of yacc.c */ 04257 #line 597 "edif.y" 04258 { free((yyvsp[(2) - (3)].s)); } 04259 break; 04260 04261 case 69: 04262 04263 /* Line 1455 of yacc.c */ 04264 #line 645 "edif.y" 04265 { free((yyvsp[(2) - (5)].s)); free((yyvsp[(3) - (5)].s)); } 04266 break; 04267 04268 case 70: 04269 04270 /* Line 1455 of yacc.c */ 04271 #line 648 "edif.y" 04272 { free((yyvsp[(2) - (3)].s)); } 04273 break; 04274 04275 case 80: 04276 04277 /* Line 1455 of yacc.c */ 04278 #line 666 "edif.y" 04279 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04280 break; 04281 04282 case 84: 04283 04284 /* Line 1455 of yacc.c */ 04285 #line 676 "edif.y" 04286 { free((yyvsp[(1) - (1)].s)); } 04287 break; 04288 04289 case 91: 04290 04291 /* Line 1455 of yacc.c */ 04292 #line 691 "edif.y" 04293 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04294 break; 04295 04296 case 102: 04297 04298 /* Line 1455 of yacc.c */ 04299 #line 714 "edif.y" 04300 { free((yyvsp[(2) - (2)].s)); } 04301 break; 04302 04303 case 140: 04304 04305 /* Line 1455 of yacc.c */ 04306 #line 774 "edif.y" 04307 { free((yyvsp[(1) - (1)].s)); } 04308 break; 04309 04310 case 147: 04311 04312 /* Line 1455 of yacc.c */ 04313 #line 789 "edif.y" 04314 { free((yyvsp[(2) - (4)].s)); } 04315 break; 04316 04317 case 150: 04318 04319 /* Line 1455 of yacc.c */ 04320 #line 796 "edif.y" 04321 { free((yyvsp[(2) - (4)].s)); } 04322 break; 04323 04324 case 182: 04325 04326 /* Line 1455 of yacc.c */ 04327 #line 866 "edif.y" 04328 { free((yyvsp[(1) - (1)].s)); } 04329 break; 04330 04331 case 184: 04332 04333 /* Line 1455 of yacc.c */ 04334 #line 870 "edif.y" 04335 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04336 break; 04337 04338 case 240: 04339 04340 /* Line 1455 of yacc.c */ 04341 #line 974 "edif.y" 04342 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04343 break; 04344 04345 case 247: 04346 04347 /* Line 1455 of yacc.c */ 04348 #line 987 "edif.y" 04349 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04350 break; 04351 04352 case 278: 04353 04354 /* Line 1455 of yacc.c */ 04355 #line 1034 "edif.y" 04356 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04357 break; 04358 04359 case 279: 04360 04361 /* Line 1455 of yacc.c */ 04362 #line 1037 "edif.y" 04363 { free((yyvsp[(1) - (1)].s)); } 04364 break; 04365 04366 case 333: 04367 04368 /* Line 1455 of yacc.c */ 04369 #line 1123 "edif.y" 04370 { free((yyvsp[(2) - (5)].s)); free((yyvsp[(3) - (5)].s)); } 04371 break; 04372 04373 case 336: 04374 04375 /* Line 1455 of yacc.c */ 04376 #line 1130 "edif.y" 04377 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04378 break; 04379 04380 case 337: 04381 04382 /* Line 1455 of yacc.c */ 04383 #line 1133 "edif.y" 04384 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04385 break; 04386 04387 case 344: 04388 04389 /* Line 1455 of yacc.c */ 04390 #line 1146 "edif.y" 04391 { free((yyvsp[(1) - (3)].s)); } 04392 break; 04393 04394 case 346: 04395 04396 /* Line 1455 of yacc.c */ 04397 #line 1150 "edif.y" 04398 { free((yyvsp[(2) - (2)].s)); } 04399 break; 04400 04401 case 347: 04402 04403 /* Line 1455 of yacc.c */ 04404 #line 1151 "edif.y" 04405 { free((yyvsp[(2) - (2)].s)); } 04406 break; 04407 04408 case 348: 04409 04410 /* Line 1455 of yacc.c */ 04411 #line 1152 "edif.y" 04412 { free((yyvsp[(2) - (2)].s)); } 04413 break; 04414 04415 case 369: 04416 04417 /* Line 1455 of yacc.c */ 04418 #line 1193 "edif.y" 04419 { (yyval.s)=(yyvsp[(2) - (4)].s); } 04420 break; 04421 04422 case 371: 04423 04424 /* Line 1455 of yacc.c */ 04425 #line 1197 "edif.y" 04426 { free((yyvsp[(1) - (1)].s)); } 04427 break; 04428 04429 case 374: 04430 04431 /* Line 1455 of yacc.c */ 04432 #line 1204 "edif.y" 04433 { free((yyvsp[(1) - (1)].s)); } 04434 break; 04435 04436 case 381: 04437 04438 /* Line 1455 of yacc.c */ 04439 #line 1215 "edif.y" 04440 { free((yyvsp[(2) - (2)].s)); } 04441 break; 04442 04443 case 384: 04444 04445 /* Line 1455 of yacc.c */ 04446 #line 1222 "edif.y" 04447 { free((yyvsp[(2) - (2)].s)); } 04448 break; 04449 04450 case 388: 04451 04452 /* Line 1455 of yacc.c */ 04453 #line 1228 "edif.y" 04454 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04455 break; 04456 04457 case 390: 04458 04459 /* Line 1455 of yacc.c */ 04460 #line 1232 "edif.y" 04461 { (yyval.s)=(yyvsp[(1) - (1)].s); } 04462 break; 04463 04464 case 393: 04465 04466 /* Line 1455 of yacc.c */ 04467 #line 1239 "edif.y" 04468 { free((yyvsp[(1) - (1)].s)); } 04469 break; 04470 04471 case 397: 04472 04473 /* Line 1455 of yacc.c */ 04474 #line 1247 "edif.y" 04475 { free((yyvsp[(2) - (2)].s)); } 04476 break; 04477 04478 case 408: 04479 04480 /* Line 1455 of yacc.c */ 04481 #line 1262 "edif.y" 04482 { pair_list_free((yyvsp[(2) - (2)].pl)); } 04483 break; 04484 04485 case 437: 04486 04487 /* Line 1455 of yacc.c */ 04488 #line 1312 "edif.y" 04489 { (yyval.pl) = new_pair_list((yyvsp[(2) - (3)].ps)); } 04490 break; 04491 04492 case 438: 04493 04494 /* Line 1455 of yacc.c */ 04495 #line 1315 "edif.y" 04496 { (yyval.ps)=NULL; } 04497 break; 04498 04499 case 439: 04500 04501 /* Line 1455 of yacc.c */ 04502 #line 1316 "edif.y" 04503 { (yyvsp[(2) - (2)].ps)->next = (yyvsp[(1) - (2)].ps); (yyval.ps) = (yyvsp[(2) - (2)].ps); } 04504 break; 04505 04506 case 455: 04507 04508 /* Line 1455 of yacc.c */ 04509 #line 1342 "edif.y" 04510 { free((yyvsp[(2) - (3)].s)); } 04511 break; 04512 04513 case 459: 04514 04515 /* Line 1455 of yacc.c */ 04516 #line 1352 "edif.y" 04517 { free((yyvsp[(1) - (1)].s)); } 04518 break; 04519 04520 case 460: 04521 04522 /* Line 1455 of yacc.c */ 04523 #line 1355 "edif.y" 04524 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04525 break; 04526 04527 case 462: 04528 04529 /* Line 1455 of yacc.c */ 04530 #line 1361 "edif.y" 04531 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04532 break; 04533 04534 case 463: 04535 04536 /* Line 1455 of yacc.c */ 04537 #line 1364 "edif.y" 04538 { free((yyvsp[(1) - (1)].s)); } 04539 break; 04540 04541 case 483: 04542 04543 /* Line 1455 of yacc.c */ 04544 #line 1406 "edif.y" 04545 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04546 break; 04547 04548 case 484: 04549 04550 /* Line 1455 of yacc.c */ 04551 #line 1409 "edif.y" 04552 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04553 break; 04554 04555 case 492: 04556 04557 /* Line 1455 of yacc.c */ 04558 #line 1423 "edif.y" 04559 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04560 break; 04561 04562 case 506: 04563 04564 /* Line 1455 of yacc.c */ 04565 #line 1451 "edif.y" 04566 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04567 break; 04568 04569 case 507: 04570 04571 /* Line 1455 of yacc.c */ 04572 #line 1454 "edif.y" 04573 { free((yyvsp[(1) - (1)].s)); } 04574 break; 04575 04576 case 514: 04577 04578 /* Line 1455 of yacc.c */ 04579 #line 1469 "edif.y" 04580 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04581 break; 04582 04583 case 549: 04584 04585 /* Line 1455 of yacc.c */ 04586 #line 1524 "edif.y" 04587 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04588 break; 04589 04590 case 555: 04591 04592 /* Line 1455 of yacc.c */ 04593 #line 1536 "edif.y" 04594 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04595 break; 04596 04597 case 560: 04598 04599 /* Line 1455 of yacc.c */ 04600 #line 1545 "edif.y" 04601 { free((yyvsp[(2) - (4)].s)); } 04602 break; 04603 04604 case 561: 04605 04606 /* Line 1455 of yacc.c */ 04607 #line 1548 "edif.y" 04608 { free((yyvsp[(1) - (1)].s)); } 04609 break; 04610 04611 case 562: 04612 04613 /* Line 1455 of yacc.c */ 04614 #line 1549 "edif.y" 04615 { free((yyvsp[(2) - (2)].s)); } 04616 break; 04617 04618 case 582: 04619 04620 /* Line 1455 of yacc.c */ 04621 #line 1591 "edif.y" 04622 { str_pair_free((yyvsp[(2) - (2)].ps)); } 04623 break; 04624 04625 case 585: 04626 04627 /* Line 1455 of yacc.c */ 04628 #line 1594 "edif.y" 04629 { pair_list_free((yyvsp[(2) - (2)].pl)); } 04630 break; 04631 04632 case 586: 04633 04634 /* Line 1455 of yacc.c */ 04635 #line 1597 "edif.y" 04636 { (yyval.s)=(yyvsp[(2) - (3)].s); } 04637 break; 04638 04639 case 587: 04640 04641 /* Line 1455 of yacc.c */ 04642 #line 1600 "edif.y" 04643 { (yyval.s)=(yyvsp[(1) - (1)].s); } 04644 break; 04645 04646 case 589: 04647 04648 /* Line 1455 of yacc.c */ 04649 #line 1604 "edif.y" 04650 { (yyval.ps) = new_str_pair((yyvsp[(1) - (1)].s),NULL); } 04651 break; 04652 04653 case 590: 04654 04655 /* Line 1455 of yacc.c */ 04656 #line 1605 "edif.y" 04657 { (yyval.ps) = new_str_pair((yyvsp[(1) - (1)].s),NULL); } 04658 break; 04659 04660 case 591: 04661 04662 /* Line 1455 of yacc.c */ 04663 #line 1606 "edif.y" 04664 { (yyval.ps)=(yyvsp[(1) - (1)].ps); } 04665 break; 04666 04667 case 592: 04668 04669 /* Line 1455 of yacc.c */ 04670 #line 1609 "edif.y" 04671 { (yyval.s)=(yyvsp[(1) - (1)].s); } 04672 break; 04673 04674 case 593: 04675 04676 /* Line 1455 of yacc.c */ 04677 #line 1610 "edif.y" 04678 { (yyval.s)=(yyvsp[(1) - (1)].s); } 04679 break; 04680 04681 case 594: 04682 04683 /* Line 1455 of yacc.c */ 04684 #line 1613 "edif.y" 04685 { define_pcb_net((yyvsp[(2) - (4)].ps), (yyvsp[(3) - (4)].pl)); } 04686 break; 04687 04688 case 595: 04689 04690 /* Line 1455 of yacc.c */ 04691 #line 1616 "edif.y" 04692 { (yyval.pl)=(yyvsp[(1) - (1)].pl); } 04693 break; 04694 04695 case 611: 04696 04697 /* Line 1455 of yacc.c */ 04698 #line 1638 "edif.y" 04699 { str_pair_free((yyvsp[(2) - (4)].ps)); } 04700 break; 04701 04702 case 632: 04703 04704 /* Line 1455 of yacc.c */ 04705 #line 1675 "edif.y" 04706 { (yyval.ps)=(yyvsp[(1) - (1)].ps); } 04707 break; 04708 04709 case 633: 04710 04711 /* Line 1455 of yacc.c */ 04712 #line 1676 "edif.y" 04713 { (yyval.ps)=NULL; } 04714 break; 04715 04716 case 634: 04717 04718 /* Line 1455 of yacc.c */ 04719 #line 1680 "edif.y" 04720 { free((yyvsp[(1) - (1)].s)); } 04721 break; 04722 04723 case 639: 04724 04725 /* Line 1455 of yacc.c */ 04726 #line 1689 "edif.y" 04727 { free((yyvsp[(1) - (1)].s)); } 04728 break; 04729 04730 case 644: 04731 04732 /* Line 1455 of yacc.c */ 04733 #line 1700 "edif.y" 04734 { str_pair_free((yyvsp[(2) - (2)].ps)); } 04735 break; 04736 04737 case 698: 04738 04739 /* Line 1455 of yacc.c */ 04740 #line 1802 "edif.y" 04741 { free((yyvsp[(2) - (5)].s)); } 04742 break; 04743 04744 case 701: 04745 04746 /* Line 1455 of yacc.c */ 04747 #line 1809 "edif.y" 04748 { free((yyvsp[(2) - (3)].s)); } 04749 break; 04750 04751 case 727: 04752 04753 /* Line 1455 of yacc.c */ 04754 #line 1861 "edif.y" 04755 { free((yyvsp[(2) - (3)].s)); } 04756 break; 04757 04758 case 730: 04759 04760 /* Line 1455 of yacc.c */ 04761 #line 1868 "edif.y" 04762 { str_pair_free((yyvsp[(2) - (2)].ps)); } 04763 break; 04764 04765 case 747: 04766 04767 /* Line 1455 of yacc.c */ 04768 #line 1903 "edif.y" 04769 { free((yyvsp[(2) - (4)].s)); free((yyvsp[(3) - (4)].s)); } 04770 break; 04771 04772 case 766: 04773 04774 /* Line 1455 of yacc.c */ 04775 #line 1934 "edif.y" 04776 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04777 break; 04778 04779 case 789: 04780 04781 /* Line 1455 of yacc.c */ 04782 #line 1969 "edif.y" 04783 { str_pair_free((yyvsp[(2) - (2)].ps)); } 04784 break; 04785 04786 case 791: 04787 04788 /* Line 1455 of yacc.c */ 04789 #line 1975 "edif.y" 04790 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04791 break; 04792 04793 case 803: 04794 04795 /* Line 1455 of yacc.c */ 04796 #line 1991 "edif.y" 04797 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04798 break; 04799 04800 case 818: 04801 04802 /* Line 1455 of yacc.c */ 04803 #line 2010 "edif.y" 04804 { str_pair_free((yyvsp[(2) - (2)].ps)); } 04805 break; 04806 04807 case 823: 04808 04809 /* Line 1455 of yacc.c */ 04810 #line 2021 "edif.y" 04811 { str_pair_free((yyvsp[(2) - (2)].ps)); } 04812 break; 04813 04814 case 827: 04815 04816 /* Line 1455 of yacc.c */ 04817 #line 2027 "edif.y" 04818 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04819 break; 04820 04821 case 829: 04822 04823 /* Line 1455 of yacc.c */ 04824 #line 2031 "edif.y" 04825 { (yyval.s)=(yyvsp[(1) - (1)].s); } 04826 break; 04827 04828 case 831: 04829 04830 /* Line 1455 of yacc.c */ 04831 #line 2036 "edif.y" 04832 { 04833 if ((yyvsp[(3) - (4)].ps)) 04834 { 04835 (yyval.ps) = new_str_pair((yyvsp[(3) - (4)].ps)->str1,(yyvsp[(2) - (4)].s)); 04836 free((yyvsp[(3) - (4)].ps)); 04837 } 04838 else 04839 { 04840 /* handle port with no instance by passing up the chain */ 04841 (yyval.ps) = new_str_pair(NULL,(yyvsp[(2) - (4)].s)); 04842 } 04843 } 04844 break; 04845 04846 case 832: 04847 04848 /* Line 1455 of yacc.c */ 04849 #line 2050 "edif.y" 04850 { (yyval.ps)=NULL; } 04851 break; 04852 04853 case 833: 04854 04855 /* Line 1455 of yacc.c */ 04856 #line 2051 "edif.y" 04857 { (yyval.ps)=(yyvsp[(1) - (1)].ps); } 04858 break; 04859 04860 case 834: 04861 04862 /* Line 1455 of yacc.c */ 04863 #line 2052 "edif.y" 04864 { (yyval.ps) = new_str_pair((yyvsp[(1) - (1)].s),NULL); } 04865 break; 04866 04867 case 835: 04868 04869 /* Line 1455 of yacc.c */ 04870 #line 2053 "edif.y" 04871 { (yyval.ps)=NULL; } 04872 break; 04873 04874 case 848: 04875 04876 /* Line 1455 of yacc.c */ 04877 #line 2080 "edif.y" 04878 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04879 break; 04880 04881 case 849: 04882 04883 /* Line 1455 of yacc.c */ 04884 #line 2083 "edif.y" 04885 { free((yyvsp[(1) - (1)].s)); } 04886 break; 04887 04888 case 881: 04889 04890 /* Line 1455 of yacc.c */ 04891 #line 2136 "edif.y" 04892 { (yyval.ps) = new_str_pair((yyvsp[(2) - (4)].s),(yyvsp[(3) - (4)].s)); } 04893 break; 04894 04895 case 882: 04896 04897 /* Line 1455 of yacc.c */ 04898 #line 2139 "edif.y" 04899 { (yyval.s)=(yyvsp[(1) - (1)].s); } 04900 break; 04901 04902 case 883: 04903 04904 /* Line 1455 of yacc.c */ 04905 #line 2140 "edif.y" 04906 { (yyval.s)=(yyvsp[(1) - (1)].s); } 04907 break; 04908 04909 case 884: 04910 04911 /* Line 1455 of yacc.c */ 04912 #line 2143 "edif.y" 04913 { (yyval.s)=(yyvsp[(1) - (1)].s); } 04914 break; 04915 04916 case 885: 04917 04918 /* Line 1455 of yacc.c */ 04919 #line 2144 "edif.y" 04920 { (yyval.s)=NULL; } 04921 break; 04922 04923 case 889: 04924 04925 /* Line 1455 of yacc.c */ 04926 #line 2154 "edif.y" 04927 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04928 break; 04929 04930 case 891: 04931 04932 /* Line 1455 of yacc.c */ 04933 #line 2160 "edif.y" 04934 { free((yyvsp[(1) - (1)].s)); } 04935 break; 04936 04937 case 892: 04938 04939 /* Line 1455 of yacc.c */ 04940 #line 2161 "edif.y" 04941 { free((yyvsp[(2) - (4)].s)); free((yyvsp[(3) - (4)].s)); } 04942 break; 04943 04944 case 893: 04945 04946 /* Line 1455 of yacc.c */ 04947 #line 2164 "edif.y" 04948 { free((yyvsp[(2) - (4)].s)); free((yyvsp[(3) - (4)].s)); } 04949 break; 04950 04951 case 894: 04952 04953 /* Line 1455 of yacc.c */ 04954 #line 2167 "edif.y" 04955 { free((yyvsp[(2) - (4)].s)); free((yyvsp[(3) - (4)].s)); } 04956 break; 04957 04958 case 896: 04959 04960 /* Line 1455 of yacc.c */ 04961 #line 2173 "edif.y" 04962 { free((yyvsp[(1) - (1)].s)); } 04963 break; 04964 04965 case 898: 04966 04967 /* Line 1455 of yacc.c */ 04968 #line 2175 "edif.y" 04969 { free((yyvsp[(2) - (2)].s)); } 04970 break; 04971 04972 case 903: 04973 04974 /* Line 1455 of yacc.c */ 04975 #line 2186 "edif.y" 04976 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04977 break; 04978 04979 case 935: 04980 04981 /* Line 1455 of yacc.c */ 04982 #line 2250 "edif.y" 04983 { str_pair_free((yyvsp[(1) - (1)].ps)); } 04984 break; 04985 04986 case 943: 04987 04988 /* Line 1455 of yacc.c */ 04989 #line 2266 "edif.y" 04990 { free((yyvsp[(2) - (2)].s)); } 04991 break; 04992 04993 case 946: 04994 04995 /* Line 1455 of yacc.c */ 04996 #line 2271 "edif.y" 04997 { free((yyvsp[(1) - (1)].s)); } 04998 break; 04999 05000 case 973: 05001 05002 /* Line 1455 of yacc.c */ 05003 #line 2316 "edif.y" 05004 { str_pair_free((yyvsp[(1) - (1)].ps)); } 05005 break; 05006 05007 case 987: 05008 05009 /* Line 1455 of yacc.c */ 05010 #line 2338 "edif.y" 05011 { free((yyvsp[(2) - (3)].s)); } 05012 break; 05013 05014 case 994: 05015 05016 /* Line 1455 of yacc.c */ 05017 #line 2354 "edif.y" 05018 { free((yyvsp[(2) - (8)].s)); free((yyvsp[(3) - (8)].s)); free((yyvsp[(4) - (8)].s)); free((yyvsp[(5) - (8)].s)); free((yyvsp[(6) - (8)].s)); free((yyvsp[(7) - (8)].s)); } 05019 break; 05020 05021 case 1054: 05022 05023 /* Line 1455 of yacc.c */ 05024 #line 2461 "edif.y" 05025 { free((yyvsp[(1) - (1)].s)); } 05026 break; 05027 05028 case 1055: 05029 05030 /* Line 1455 of yacc.c */ 05031 #line 2462 "edif.y" 05032 { free((yyvsp[(2) - (2)].s)); } 05033 break; 05034 05035 case 1056: 05036 05037 /* Line 1455 of yacc.c */ 05038 #line 2463 "edif.y" 05039 { free((yyvsp[(2) - (2)].s)); } 05040 break; 05041 05042 case 1057: 05043 05044 /* Line 1455 of yacc.c */ 05045 #line 2464 "edif.y" 05046 { free((yyvsp[(2) - (2)].s)); } 05047 break; 05048 05049 case 1059: 05050 05051 /* Line 1455 of yacc.c */ 05052 #line 2468 "edif.y" 05053 { str_pair_free((yyvsp[(1) - (1)].ps)); } 05054 break; 05055 05056 case 1061: 05057 05058 /* Line 1455 of yacc.c */ 05059 #line 2472 "edif.y" 05060 { free((yyvsp[(1) - (1)].s)); } 05061 break; 05062 05063 case 1063: 05064 05065 /* Line 1455 of yacc.c */ 05066 #line 2476 "edif.y" 05067 { free((yyvsp[(2) - (3)].s)); } 05068 break; 05069 05070 case 1085: 05071 05072 /* Line 1455 of yacc.c */ 05073 #line 2512 "edif.y" 05074 { str_pair_free((yyvsp[(1) - (1)].ps)); } 05075 break; 05076 05077 case 1086: 05078 05079 /* Line 1455 of yacc.c */ 05080 #line 2515 "edif.y" 05081 { free((yyvsp[(1) - (1)].s)); } 05082 break; 05083 05084 case 1107: 05085 05086 /* Line 1455 of yacc.c */ 05087 #line 2556 "edif.y" 05088 { str_pair_free((yyvsp[(2) - (2)].ps)); } 05089 break; 05090 05091 case 1109: 05092 05093 /* Line 1455 of yacc.c */ 05094 #line 2558 "edif.y" 05095 { pair_list_free((yyvsp[(2) - (2)].pl)); } 05096 break; 05097 05098 case 1126: 05099 05100 /* Line 1455 of yacc.c */ 05101 #line 2585 "edif.y" 05102 { (yyval.s)=(yyvsp[(1) - (1)].s); } 05103 break; 05104 05105 case 1127: 05106 05107 /* Line 1455 of yacc.c */ 05108 #line 2588 "edif.y" 05109 { (yyval.s)=(yyvsp[(1) - (1)].s); } 05110 break; 05111 05112 case 1128: 05113 05114 /* Line 1455 of yacc.c */ 05115 #line 2591 "edif.y" 05116 { (yyval.s)=(yyvsp[(1) - (1)].s); } 05117 break; 05118 05119 case 1129: 05120 05121 /* Line 1455 of yacc.c */ 05122 #line 2594 "edif.y" 05123 { (yyval.s)=(yyvsp[(1) - (1)].s); } 05124 break; 05125 05126 05127 05128 /* Line 1455 of yacc.c */ 05129 #line 5130 "edif.c" 05130 default: break; 05131 } 05132 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 05133 05134 YYPOPSTACK (yylen); 05135 yylen = 0; 05136 YY_STACK_PRINT (yyss, yyssp); 05137 05138 *++yyvsp = yyval; 05139 05140 /* Now `shift' the result of the reduction. Determine what state 05141 that goes to, based on the state we popped back to and the rule 05142 number reduced by. */ 05143 05144 yyn = yyr1[yyn]; 05145 05146 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 05147 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 05148 yystate = yytable[yystate]; 05149 else 05150 yystate = yydefgoto[yyn - YYNTOKENS]; 05151 05152 goto yynewstate; 05153 05154 05155 /*------------------------------------. 05156 | yyerrlab -- here on detecting error | 05157 `------------------------------------*/ 05158 yyerrlab: 05159 /* If not already recovering from an error, report this error. */ 05160 if (!yyerrstatus) 05161 { 05162 ++yynerrs; 05163 #if ! YYERROR_VERBOSE 05164 yyerror (YY_("syntax error")); 05165 #else 05166 { 05167 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); 05168 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) 05169 { 05170 YYSIZE_T yyalloc = 2 * yysize; 05171 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) 05172 yyalloc = YYSTACK_ALLOC_MAXIMUM; 05173 if (yymsg != yymsgbuf) 05174 YYSTACK_FREE (yymsg); 05175 yymsg = (char *) YYSTACK_ALLOC (yyalloc); 05176 if (yymsg) 05177 yymsg_alloc = yyalloc; 05178 else 05179 { 05180 yymsg = yymsgbuf; 05181 yymsg_alloc = sizeof yymsgbuf; 05182 } 05183 } 05184 05185 if (0 < yysize && yysize <= yymsg_alloc) 05186 { 05187 (void) yysyntax_error (yymsg, yystate, yychar); 05188 yyerror (yymsg); 05189 } 05190 else 05191 { 05192 yyerror (YY_("syntax error")); 05193 if (yysize != 0) 05194 goto yyexhaustedlab; 05195 } 05196 } 05197 #endif 05198 } 05199 05200 05201 05202 if (yyerrstatus == 3) 05203 { 05204 /* If just tried and failed to reuse lookahead token after an 05205 error, discard it. */ 05206 05207 if (yychar <= YYEOF) 05208 { 05209 /* Return failure if at end of input. */ 05210 if (yychar == YYEOF) 05211 YYABORT; 05212 } 05213 else 05214 { 05215 yydestruct ("Error: discarding", 05216 yytoken, &yylval); 05217 yychar = YYEMPTY; 05218 } 05219 } 05220 05221 /* Else will try to reuse lookahead token after shifting the error 05222 token. */ 05223 goto yyerrlab1; 05224 05225 05226 /*---------------------------------------------------. 05227 | yyerrorlab -- error raised explicitly by YYERROR. | 05228 `---------------------------------------------------*/ 05229 yyerrorlab: 05230 05231 /* Pacify compilers like GCC when the user code never invokes 05232 YYERROR and the label yyerrorlab therefore never appears in user 05233 code. */ 05234 if (/*CONSTCOND*/ 0) 05235 goto yyerrorlab; 05236 05237 /* Do not reclaim the symbols of the rule which action triggered 05238 this YYERROR. */ 05239 YYPOPSTACK (yylen); 05240 yylen = 0; 05241 YY_STACK_PRINT (yyss, yyssp); 05242 yystate = *yyssp; 05243 goto yyerrlab1; 05244 05245 05246 /*-------------------------------------------------------------. 05247 | yyerrlab1 -- common code for both syntax error and YYERROR. | 05248 `-------------------------------------------------------------*/ 05249 yyerrlab1: 05250 yyerrstatus = 3; /* Each real token shifted decrements this. */ 05251 05252 for (;;) 05253 { 05254 yyn = yypact[yystate]; 05255 if (yyn != YYPACT_NINF) 05256 { 05257 yyn += YYTERROR; 05258 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 05259 { 05260 yyn = yytable[yyn]; 05261 if (0 < yyn) 05262 break; 05263 } 05264 } 05265 05266 /* Pop the current state because it cannot handle the error token. */ 05267 if (yyssp == yyss) 05268 YYABORT; 05269 05270 05271 yydestruct ("Error: popping", 05272 yystos[yystate], yyvsp); 05273 YYPOPSTACK (1); 05274 yystate = *yyssp; 05275 YY_STACK_PRINT (yyss, yyssp); 05276 } 05277 05278 *++yyvsp = yylval; 05279 05280 05281 /* Shift the error token. */ 05282 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 05283 05284 yystate = yyn; 05285 goto yynewstate; 05286 05287 05288 /*-------------------------------------. 05289 | yyacceptlab -- YYACCEPT comes here. | 05290 `-------------------------------------*/ 05291 yyacceptlab: 05292 yyresult = 0; 05293 goto yyreturn; 05294 05295 /*-----------------------------------. 05296 | yyabortlab -- YYABORT comes here. | 05297 `-----------------------------------*/ 05298 yyabortlab: 05299 yyresult = 1; 05300 goto yyreturn; 05301 05302 #if !defined(yyoverflow) || YYERROR_VERBOSE 05303 /*-------------------------------------------------. 05304 | yyexhaustedlab -- memory exhaustion comes here. | 05305 `-------------------------------------------------*/ 05306 yyexhaustedlab: 05307 yyerror (YY_("memory exhausted")); 05308 yyresult = 2; 05309 /* Fall through. */ 05310 #endif 05311 05312 yyreturn: 05313 if (yychar != YYEMPTY) 05314 yydestruct ("Cleanup: discarding lookahead", 05315 yytoken, &yylval); 05316 /* Do not reclaim the symbols of the rule which action triggered 05317 this YYABORT or YYACCEPT. */ 05318 YYPOPSTACK (yylen); 05319 YY_STACK_PRINT (yyss, yyssp); 05320 while (yyssp != yyss) 05321 { 05322 yydestruct ("Cleanup: popping", 05323 yystos[*yyssp], yyvsp); 05324 YYPOPSTACK (1); 05325 } 05326 #ifndef yyoverflow 05327 if (yyss != yyssa) 05328 YYSTACK_FREE (yyss); 05329 #endif 05330 #if YYERROR_VERBOSE 05331 if (yymsg != yymsgbuf) 05332 YYSTACK_FREE (yymsg); 05333 #endif 05334 /* Make sure YYID is used. */ 05335 return YYID (yyresult); 05336 } 05337 05338 05339 05340 /* Line 1675 of yacc.c */ 05341 #line 2597 "edif.y" 05342 05343 /* 05344 * xmalloc: 05345 * 05346 * Garbage function for 'alloca()'. 05347 */ 05348 char *xmalloc(int siz) 05349 { 05350 return ((char *)Malloc(siz)); 05351 } 05352 /* 05353 * Token & context carriers: 05354 * 05355 * These are the linkage pointers for threading this context garbage 05356 * for converting identifiers into parser tokens. 05357 */ 05358 typedef struct TokenCar { 05359 struct TokenCar *Next; /* pointer to next carrier */ 05360 struct Token *Token; /* associated token */ 05361 } TokenCar; 05362 typedef struct UsedCar { 05363 struct UsedCar *Next; /* pointer to next carrier */ 05364 short Code; /* used '%token' value */ 05365 } UsedCar; 05366 typedef struct ContextCar { 05367 struct ContextCar *Next; /* pointer to next carrier */ 05368 struct Context *Context; /* associated context */ 05369 union { 05370 int Single; /* single usage flag (context tree) */ 05371 struct UsedCar *Used; /* single used list (context stack) */ 05372 } u; 05373 } ContextCar; 05374 /* 05375 * Token definitions: 05376 * 05377 * This associates the '%token' codings with strings which are to 05378 * be free standing tokens. Doesn't have to be in sorted order but the 05379 * strings must be in lower case. 05380 */ 05381 typedef struct Token { 05382 char *Name; /* token name */ 05383 int Code; /* '%token' value */ 05384 struct Token *Next; /* hash table linkage */ 05385 } Token; 05386 static Token TokenDef[] = { 05387 {"angle", EDIF_TOK_ANGLE}, 05388 {"behavior", EDIF_TOK_BEHAVIOR}, 05389 {"calculated", EDIF_TOK_CALCULATED}, 05390 {"capacitance", EDIF_TOK_CAPACITANCE}, 05391 {"centercenter", EDIF_TOK_CENTERCENTER}, 05392 {"centerleft", EDIF_TOK_CENTERLEFT}, 05393 {"centerright", EDIF_TOK_CENTERRIGHT}, 05394 {"charge", EDIF_TOK_CHARGE}, 05395 {"conductance", EDIF_TOK_CONDUCTANCE}, 05396 {"current", EDIF_TOK_CURRENT}, 05397 {"distance", EDIF_TOK_DISTANCE}, 05398 {"document", EDIF_TOK_DOCUMENT}, 05399 {"energy", EDIF_TOK_ENERGY}, 05400 {"extend", EDIF_TOK_EXTEND}, 05401 {"flux", EDIF_TOK_FLUX}, 05402 {"frequency", EDIF_TOK_FREQUENCY}, 05403 {"generic", EDIF_TOK_GENERIC}, 05404 {"graphic", EDIF_TOK_GRAPHIC}, 05405 {"inductance", EDIF_TOK_INDUCTANCE}, 05406 {"inout", EDIF_TOK_INOUT}, 05407 {"input", EDIF_TOK_INPUT}, 05408 {"logicmodel", EDIF_TOK_LOGICMODEL}, 05409 {"lowercenter", EDIF_TOK_LOWERCENTER}, 05410 {"lowerleft", EDIF_TOK_LOWERLEFT}, 05411 {"lowerright", EDIF_TOK_LOWERRIGHT}, 05412 {"masklayout", EDIF_TOK_MASKLAYOUT}, 05413 {"mass", EDIF_TOK_MASS}, 05414 {"measured", EDIF_TOK_MEASURED}, 05415 {"mx", EDIF_TOK_MX}, 05416 {"mxr90", EDIF_TOK_MXR90}, 05417 {"my", EDIF_TOK_MY}, 05418 {"myr90", EDIF_TOK_MYR90}, 05419 {"netlist", EDIF_TOK_NETLIST}, 05420 {"output", EDIF_TOK_OUTPUT}, 05421 {"pcblayout", EDIF_TOK_PCBLAYOUT}, 05422 {"power", EDIF_TOK_POWER}, 05423 {"r0", EDIF_TOK_R0}, 05424 {"r180", EDIF_TOK_R180}, 05425 {"r270", EDIF_TOK_R270}, 05426 {"r90", EDIF_TOK_R90}, 05427 {"required", EDIF_TOK_REQUIRED}, 05428 {"resistance", EDIF_TOK_RESISTANCE}, 05429 {"ripper", EDIF_TOK_RIPPER}, 05430 {"round", EDIF_TOK_ROUND}, 05431 {"schematic", EDIF_TOK_SCHEMATIC}, 05432 {"stranger", EDIF_TOK_STRANGER}, 05433 {"symbolic", EDIF_TOK_SYMBOLIC}, 05434 {"temperature", EDIF_TOK_TEMPERATURE}, 05435 {"tie", EDIF_TOK_TIE}, 05436 {"time", EDIF_TOK_TIME}, 05437 {"truncate", EDIF_TOK_TRUNCATE}, 05438 {"uppercenter", EDIF_TOK_UPPERCENTER}, 05439 {"upperleft", EDIF_TOK_UPPERLEFT}, 05440 {"upperright", EDIF_TOK_UPPERRIGHT}, 05441 {"voltage", EDIF_TOK_VOLTAGE} 05442 }; 05443 static int TokenDefSize = sizeof(TokenDef) / sizeof(Token); 05444 /* 05445 * Token enable definitions: 05446 * 05447 * There is one array for each set of tokens enabled by a 05448 * particular context (barf). Another array is used to bind 05449 * these arrays to a context. 05450 */ 05451 static short e_CellType[] = {EDIF_TOK_TIE, EDIF_TOK_RIPPER, EDIF_TOK_GENERIC}; 05452 static short e_CornerType[] = {EDIF_TOK_EXTEND, EDIF_TOK_TRUNCATE, 05453 EDIF_TOK_ROUND}; 05454 static short e_Derivation[] = {EDIF_TOK_CALCULATED, EDIF_TOK_MEASURED, 05455 EDIF_TOK_REQUIRED}; 05456 static short e_Direction[] = {EDIF_TOK_INPUT, EDIF_TOK_OUTPUT, 05457 EDIF_TOK_INOUT}; 05458 static short e_EndType[] = {EDIF_TOK_EXTEND, EDIF_TOK_TRUNCATE, 05459 EDIF_TOK_ROUND}; 05460 static short e_Justify[] = {EDIF_TOK_CENTERCENTER, EDIF_TOK_CENTERLEFT, 05461 EDIF_TOK_CENTERRIGHT, EDIF_TOK_LOWERCENTER, 05462 EDIF_TOK_LOWERLEFT, EDIF_TOK_LOWERRIGHT, 05463 EDIF_TOK_UPPERCENTER, EDIF_TOK_UPPERLEFT, 05464 EDIF_TOK_UPPERRIGHT}; 05465 static short e_Orientation[] = {EDIF_TOK_R0, EDIF_TOK_R90, EDIF_TOK_R180, 05466 EDIF_TOK_R270, EDIF_TOK_MX, EDIF_TOK_MY, 05467 EDIF_TOK_MXR90, EDIF_TOK_MYR90}; 05468 static short e_Unit[] = {EDIF_TOK_DISTANCE, EDIF_TOK_CAPACITANCE, 05469 EDIF_TOK_CURRENT, EDIF_TOK_RESISTANCE, 05470 EDIF_TOK_TEMPERATURE, EDIF_TOK_TIME, 05471 EDIF_TOK_VOLTAGE, EDIF_TOK_MASS, EDIF_TOK_FREQUENCY, 05472 EDIF_TOK_INDUCTANCE, EDIF_TOK_ENERGY, 05473 EDIF_TOK_POWER, EDIF_TOK_CHARGE, 05474 EDIF_TOK_CONDUCTANCE, EDIF_TOK_FLUX, EDIF_TOK_ANGLE}; 05475 static short e_ViewType[] = {EDIF_TOK_MASKLAYOUT, EDIF_TOK_PCBLAYOUT, 05476 EDIF_TOK_NETLIST, EDIF_TOK_SCHEMATIC, 05477 EDIF_TOK_SYMBOLIC, EDIF_TOK_BEHAVIOR, 05478 EDIF_TOK_LOGICMODEL, EDIF_TOK_DOCUMENT, 05479 EDIF_TOK_GRAPHIC, EDIF_TOK_STRANGER}; 05480 /* 05481 * Token tying table: 05482 * 05483 * This binds enabled tokens to a context. 05484 */ 05485 typedef struct Tie { 05486 short *Enable; /* pointer to enable array */ 05487 short Origin; /* '%token' value of context */ 05488 short EnableSize; /* size of enabled array */ 05489 } Tie; 05490 #define TE(e,o) {e,o,sizeof(e)/sizeof(short)} 05491 static Tie TieDef[] = { 05492 TE(e_CellType, EDIF_TOK_CELLTYPE), 05493 TE(e_CornerType, EDIF_TOK_CORNERTYPE), 05494 TE(e_Derivation, EDIF_TOK_DERIVATION), 05495 TE(e_Direction, EDIF_TOK_DIRECTION), 05496 TE(e_EndType, EDIF_TOK_ENDTYPE), 05497 TE(e_Justify, EDIF_TOK_JUSTIFY), 05498 TE(e_Orientation, EDIF_TOK_ORIENTATION), 05499 TE(e_Unit, EDIF_TOK_UNIT), 05500 TE(e_ViewType, EDIF_TOK_VIEWTYPE) 05501 }; 05502 static int TieDefSize = sizeof(TieDef) / sizeof(Tie); 05503 /* 05504 * Context definitions: 05505 * 05506 * This associates keyword strings with '%token' values. It 05507 * also creates a pretty much empty header for later building of 05508 * the context tree. Again they needn't be sorted, but strings 05509 * must be lower case. 05510 */ 05511 typedef struct Context { 05512 char *Name; /* keyword name */ 05513 short Code; /* '%token' value */ 05514 short Flags; /* special operation flags */ 05515 struct ContextCar *Context; /* contexts which can be moved to */ 05516 struct TokenCar *Token; /* active tokens */ 05517 struct Context *Next; /* hash table linkage */ 05518 } Context; 05519 static Context ContextDef[] = { 05520 {"", 0}, /* start context */ 05521 {"acload", EDIF_TOK_ACLOAD}, 05522 {"after", EDIF_TOK_AFTER}, 05523 {"annotate", EDIF_TOK_ANNOTATE}, 05524 {"apply", EDIF_TOK_APPLY}, 05525 {"arc", EDIF_TOK_ARC}, 05526 {"array", EDIF_TOK_ARRAY}, 05527 {"arraymacro", EDIF_TOK_ARRAYMACRO}, 05528 {"arrayrelatedinfo", EDIF_TOK_ARRAYRELATEDINFO}, 05529 {"arraysite", EDIF_TOK_ARRAYSITE}, 05530 {"atleast", EDIF_TOK_ATLEAST}, 05531 {"atmost", EDIF_TOK_ATMOST}, 05532 {"author", EDIF_TOK_AUTHOR}, 05533 {"basearray", EDIF_TOK_BASEARRAY}, 05534 {"becomes", EDIF_TOK_BECOMES}, 05535 {"between", EDIF_TOK_BETWEEN}, 05536 {"boolean", EDIF_TOK_BOOLEAN}, 05537 {"booleandisplay", EDIF_TOK_BOOLEANDISPLAY}, 05538 {"booleanmap", EDIF_TOK_BOOLEANMAP}, 05539 {"borderpattern", EDIF_TOK_BORDERPATTERN}, 05540 {"borderwidth", EDIF_TOK_BORDERWIDTH}, 05541 {"boundingbox", EDIF_TOK_BOUNDINGBOX}, 05542 {"cell", EDIF_TOK_CELL}, 05543 {"cellref", EDIF_TOK_CELLREF}, 05544 {"celltype", EDIF_TOK_CELLTYPE}, 05545 {"change", EDIF_TOK_CHANGE}, 05546 {"circle", EDIF_TOK_CIRCLE}, 05547 {"color", EDIF_TOK_COLOR}, 05548 {"comment", EDIF_TOK_COMMENT}, 05549 {"commentgraphics", EDIF_TOK_COMMENTGRAPHICS}, 05550 {"compound", EDIF_TOK_COMPOUND}, 05551 {"connectlocation", EDIF_TOK_CONNECTLOCATION}, 05552 {"contents", EDIF_TOK_CONTENTS}, 05553 {"cornertype", EDIF_TOK_CORNERTYPE}, 05554 {"criticality", EDIF_TOK_CRITICALITY}, 05555 {"currentmap", EDIF_TOK_CURRENTMAP}, 05556 {"curve", EDIF_TOK_CURVE}, 05557 {"cycle", EDIF_TOK_CYCLE}, 05558 {"dataorigin", EDIF_TOK_DATAORIGIN}, 05559 {"dcfaninload", EDIF_TOK_DCFANINLOAD}, 05560 {"dcfanoutload", EDIF_TOK_DCFANOUTLOAD}, 05561 {"dcmaxfanin", EDIF_TOK_DCMAXFANIN}, 05562 {"dcmaxfanout", EDIF_TOK_DCMAXFANOUT}, 05563 {"delay", EDIF_TOK_DELAY}, 05564 {"delta", EDIF_TOK_DELTA}, 05565 {"derivation", EDIF_TOK_DERIVATION}, 05566 {"design", EDIF_TOK_DESIGN}, 05567 {"designator", EDIF_TOK_DESIGNATOR}, 05568 {"difference", EDIF_TOK_DIFFERENCE}, 05569 {"direction", EDIF_TOK_DIRECTION}, 05570 {"display", EDIF_TOK_DISPLAY}, 05571 {"dominates", EDIF_TOK_DOMINATES}, 05572 {"dot", EDIF_TOK_DOT}, 05573 {"duration", EDIF_TOK_DURATION}, 05574 {"e", EDIF_TOK_E}, 05575 {"edif", EDIF_TOK_EDIF}, 05576 {"ediflevel", EDIF_TOK_EDIFLEVEL}, 05577 {"edifversion", EDIF_TOK_EDIFVERSION}, 05578 {"enclosuredistance", EDIF_TOK_ENCLOSUREDISTANCE}, 05579 {"endtype", EDIF_TOK_ENDTYPE}, 05580 {"entry", EDIF_TOK_ENTRY}, 05581 {"exactly", EDIF_TOK_EXACTLY}, 05582 {"external", EDIF_TOK_EXTERNAL}, 05583 {"fabricate", EDIF_TOK_FABRICATE}, 05584 {"false", EDIF_TOK_FALSE}, 05585 {"figure", EDIF_TOK_FIGURE}, 05586 {"figurearea", EDIF_TOK_FIGUREAREA}, 05587 {"figuregroup", EDIF_TOK_FIGUREGROUP}, 05588 {"figuregroupobject", EDIF_TOK_FIGUREGROUPOBJECT}, 05589 {"figuregroupoverride", EDIF_TOK_FIGUREGROUPOVERRIDE}, 05590 {"figuregroupref", EDIF_TOK_FIGUREGROUPREF}, 05591 {"figureperimeter", EDIF_TOK_FIGUREPERIMETER}, 05592 {"figurewidth", EDIF_TOK_FIGUREWIDTH}, 05593 {"fillpattern", EDIF_TOK_FILLPATTERN}, 05594 {"follow", EDIF_TOK_FOLLOW}, 05595 {"forbiddenevent", EDIF_TOK_FORBIDDENEVENT}, 05596 {"globalportref", EDIF_TOK_GLOBALPORTREF}, 05597 {"greaterthan", EDIF_TOK_GREATERTHAN}, 05598 {"gridmap", EDIF_TOK_GRIDMAP}, 05599 {"ignore", EDIF_TOK_IGNORE}, 05600 {"includefiguregroup", EDIF_TOK_INCLUDEFIGUREGROUP}, 05601 {"initial", EDIF_TOK_INITIAL}, 05602 {"instance", EDIF_TOK_INSTANCE}, 05603 {"instancebackannotate", EDIF_TOK_INSTANCEBACKANNOTATE}, 05604 {"instancegroup", EDIF_TOK_INSTANCEGROUP}, 05605 {"instancemap", EDIF_TOK_INSTANCEMAP}, 05606 {"instanceref", EDIF_TOK_INSTANCEREF}, 05607 {"integer", EDIF_TOK_INTEGER}, 05608 {"integerdisplay", EDIF_TOK_INTEGERDISPLAY}, 05609 {"interface", EDIF_TOK_INTERFACE}, 05610 {"interfiguregroupspacing", EDIF_TOK_INTERFIGUREGROUPSPACING}, 05611 {"intersection", EDIF_TOK_INTERSECTION}, 05612 {"intrafiguregroupspacing", EDIF_TOK_INTRAFIGUREGROUPSPACING}, 05613 {"inverse", EDIF_TOK_INVERSE}, 05614 {"isolated", EDIF_TOK_ISOLATED}, 05615 {"joined", EDIF_TOK_JOINED}, 05616 {"justify", EDIF_TOK_JUSTIFY}, 05617 {"keyworddisplay", EDIF_TOK_KEYWORDDISPLAY}, 05618 {"keywordlevel", EDIF_TOK_KEYWORDLEVEL}, 05619 {"keywordmap", EDIF_TOK_KEYWORDMAP}, 05620 {"lessthan", EDIF_TOK_LESSTHAN}, 05621 {"library", EDIF_TOK_LIBRARY}, 05622 {"libraryref", EDIF_TOK_LIBRARYREF}, 05623 {"listofnets", EDIF_TOK_LISTOFNETS}, 05624 {"listofports", EDIF_TOK_LISTOFPORTS}, 05625 {"loaddelay", EDIF_TOK_LOADDELAY}, 05626 {"logicassign", EDIF_TOK_LOGICASSIGN}, 05627 {"logicinput", EDIF_TOK_LOGICINPUT}, 05628 {"logiclist", EDIF_TOK_LOGICLIST}, 05629 {"logicmapinput", EDIF_TOK_LOGICMAPINPUT}, 05630 {"logicmapoutput", EDIF_TOK_LOGICMAPOUTPUT}, 05631 {"logiconeof", EDIF_TOK_LOGICONEOF}, 05632 {"logicoutput", EDIF_TOK_LOGICOUTPUT}, 05633 {"logicport", EDIF_TOK_LOGICPORT}, 05634 {"logicref", EDIF_TOK_LOGICREF}, 05635 {"logicvalue", EDIF_TOK_LOGICVALUE}, 05636 {"logicwaveform", EDIF_TOK_LOGICWAVEFORM}, 05637 {"maintain", EDIF_TOK_MAINTAIN}, 05638 {"match", EDIF_TOK_MATCH}, 05639 {"member", EDIF_TOK_MEMBER}, 05640 {"minomax", EDIF_TOK_MINOMAX}, 05641 {"minomaxdisplay", EDIF_TOK_MINOMAXDISPLAY}, 05642 {"mnm", EDIF_TOK_MNM}, 05643 {"multiplevalueset", EDIF_TOK_MULTIPLEVALUESET}, 05644 {"mustjoin", EDIF_TOK_MUSTJOIN}, 05645 {"name", EDIF_TOK_NAME}, 05646 {"net", EDIF_TOK_NET}, 05647 {"netbackannotate", EDIF_TOK_NETBACKANNOTATE}, 05648 {"netbundle", EDIF_TOK_NETBUNDLE}, 05649 {"netdelay", EDIF_TOK_NETDELAY}, 05650 {"netgroup", EDIF_TOK_NETGROUP}, 05651 {"netmap", EDIF_TOK_NETMAP}, 05652 {"netref", EDIF_TOK_NETREF}, 05653 {"nochange", EDIF_TOK_NOCHANGE}, 05654 {"nonpermutable", EDIF_TOK_NONPERMUTABLE}, 05655 {"notallowed", EDIF_TOK_NOTALLOWED}, 05656 {"notchspacing", EDIF_TOK_NOTCHSPACING}, 05657 {"number", EDIF_TOK_NUMBER}, 05658 {"numberdefinition", EDIF_TOK_NUMBERDEFINITION}, 05659 {"numberdisplay", EDIF_TOK_NUMBERDISPLAY}, 05660 {"offpageconnector", EDIF_TOK_OFFPAGECONNECTOR}, 05661 {"offsetevent", EDIF_TOK_OFFSETEVENT}, 05662 {"openshape", EDIF_TOK_OPENSHAPE}, 05663 {"orientation", EDIF_TOK_ORIENTATION}, 05664 {"origin", EDIF_TOK_ORIGIN}, 05665 {"overhangdistance", EDIF_TOK_OVERHANGDISTANCE}, 05666 {"overlapdistance", EDIF_TOK_OVERLAPDISTANCE}, 05667 {"oversize", EDIF_TOK_OVERSIZE}, 05668 {"owner", EDIF_TOK_OWNER}, 05669 {"page", EDIF_TOK_PAGE}, 05670 {"pagesize", EDIF_TOK_PAGESIZE}, 05671 {"parameter", EDIF_TOK_PARAMETER}, 05672 {"parameterassign", EDIF_TOK_PARAMETERASSIGN}, 05673 {"parameterdisplay", EDIF_TOK_PARAMETERDISPLAY}, 05674 {"path", EDIF_TOK_PATH}, 05675 {"pathdelay", EDIF_TOK_PATHDELAY}, 05676 {"pathwidth", EDIF_TOK_PATHWIDTH}, 05677 {"permutable", EDIF_TOK_PERMUTABLE}, 05678 {"physicaldesignrule", EDIF_TOK_PHYSICALDESIGNRULE}, 05679 {"plug", EDIF_TOK_PLUG}, 05680 {"point", EDIF_TOK_POINT}, 05681 {"pointdisplay", EDIF_TOK_POINTDISPLAY}, 05682 {"pointlist", EDIF_TOK_POINTLIST}, 05683 {"polygon", EDIF_TOK_POLYGON}, 05684 {"port", EDIF_TOK_PORT}, 05685 {"portbackannotate", EDIF_TOK_PORTBACKANNOTATE}, 05686 {"portbundle", EDIF_TOK_PORTBUNDLE}, 05687 {"portdelay", EDIF_TOK_PORTDELAY}, 05688 {"portgroup", EDIF_TOK_PORTGROUP}, 05689 {"portimplementation", EDIF_TOK_PORTIMPLEMENTATION}, 05690 {"portinstance", EDIF_TOK_PORTINSTANCE}, 05691 {"portlist", EDIF_TOK_PORTLIST}, 05692 {"portlistalias", EDIF_TOK_PORTLISTALIAS}, 05693 {"portmap", EDIF_TOK_PORTMAP}, 05694 {"portref", EDIF_TOK_PORTREF}, 05695 {"program", EDIF_TOK_PROGRAM}, 05696 {"property", EDIF_TOK_PROPERTY}, 05697 {"propertydisplay", EDIF_TOK_PROPERTYDISPLAY}, 05698 {"protectionframe", EDIF_TOK_PROTECTIONFRAME}, 05699 {"pt", EDIF_TOK_PT}, 05700 {"rangevector", EDIF_TOK_RANGEVECTOR}, 05701 {"rectangle", EDIF_TOK_RECTANGLE}, 05702 {"rectanglesize", EDIF_TOK_RECTANGLESIZE}, 05703 {"rename", EDIF_TOK_RENAME}, 05704 {"resolves", EDIF_TOK_RESOLVES}, 05705 {"scale", EDIF_TOK_SCALE}, 05706 {"scalex", EDIF_TOK_SCALEX}, 05707 {"scaley", EDIF_TOK_SCALEY}, 05708 {"section", EDIF_TOK_SECTION}, 05709 {"shape", EDIF_TOK_SHAPE}, 05710 {"simulate", EDIF_TOK_SIMULATE}, 05711 {"simulationinfo", EDIF_TOK_SIMULATIONINFO}, 05712 {"singlevalueset", EDIF_TOK_SINGLEVALUESET}, 05713 {"site", EDIF_TOK_SITE}, 05714 {"socket", EDIF_TOK_SOCKET}, 05715 {"socketset", EDIF_TOK_SOCKETSET}, 05716 {"status", EDIF_TOK_STATUS}, 05717 {"steady", EDIF_TOK_STEADY}, 05718 {"string", EDIF_TOK_STRING}, 05719 {"stringdisplay", EDIF_TOK_STRINGDISPLAY}, 05720 {"strong", EDIF_TOK_STRONG}, 05721 {"symbol", EDIF_TOK_SYMBOL}, 05722 {"symmetry", EDIF_TOK_SYMMETRY}, 05723 {"table", EDIF_TOK_TABLE}, 05724 {"tabledefault", EDIF_TOK_TABLEDEFAULT}, 05725 {"technology", EDIF_TOK_TECHNOLOGY}, 05726 {"textheight", EDIF_TOK_TEXTHEIGHT}, 05727 {"timeinterval", EDIF_TOK_TIMEINTERVAL}, 05728 {"timestamp", EDIF_TOK_TIMESTAMP}, 05729 {"timing", EDIF_TOK_TIMING}, 05730 {"transform", EDIF_TOK_TRANSFORM}, 05731 {"transition", EDIF_TOK_TRANSITION}, 05732 {"trigger", EDIF_TOK_TRIGGER}, 05733 {"true", EDIF_TOK_TRUE}, 05734 {"unconstrained", EDIF_TOK_UNCONSTRAINED}, 05735 {"undefined", EDIF_TOK_UNDEFINED}, 05736 {"union", EDIF_TOK_UNION}, 05737 {"unit", EDIF_TOK_UNIT}, 05738 {"unused", EDIF_TOK_UNUSED}, 05739 {"userdata", EDIF_TOK_USERDATA}, 05740 {"version", EDIF_TOK_VERSION}, 05741 {"view", EDIF_TOK_VIEW}, 05742 {"viewlist", EDIF_TOK_VIEWLIST}, 05743 {"viewmap", EDIF_TOK_VIEWMAP}, 05744 {"viewref", EDIF_TOK_VIEWREF}, 05745 {"viewtype", EDIF_TOK_VIEWTYPE}, 05746 {"visible", EDIF_TOK_VISIBLE}, 05747 {"voltagemap", EDIF_TOK_VOLTAGEMAP}, 05748 {"wavevalue", EDIF_TOK_WAVEVALUE}, 05749 {"weak", EDIF_TOK_WEAK}, 05750 {"weakjoined", EDIF_TOK_WEAKJOINED}, 05751 {"when", EDIF_TOK_WHEN}, 05752 {"written", EDIF_TOK_WRITTEN} 05753 }; 05754 static int ContextDefSize = sizeof(ContextDef) / sizeof(Context); 05755 /* 05756 * Context follower tables: 05757 * 05758 * This is pretty ugly, an array is defined for each context 05759 * which has following context levels. Yet another table is used 05760 * to bind these arrays to the originating contexts. 05761 * Arrays are declared as: 05762 * 05763 * static short f_<Context name>[] = { ... }; 05764 * 05765 * The array entries are the '%token' values for all keywords which 05766 * can be reached from the <Context name> context. Like I said, ugly, 05767 * but it works. 05768 * A negative entry means that the follow can only occur once within 05769 * the specified context. 05770 */ 05771 static short f_NULL[] = {EDIF_TOK_EDIF}; 05772 static short f_Edif[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, EDIF_TOK_EDIFVERSION, 05773 EDIF_TOK_EDIFLEVEL, EDIF_TOK_KEYWORDMAP, 05774 -EDIF_TOK_STATUS, EDIF_TOK_EXTERNAL, 05775 EDIF_TOK_LIBRARY, EDIF_TOK_DESIGN, EDIF_TOK_COMMENT, 05776 EDIF_TOK_USERDATA}; 05777 static short f_AcLoad[] = {EDIF_TOK_MNM, EDIF_TOK_E, EDIF_TOK_MINOMAXDISPLAY}; 05778 static short f_After[] = {EDIF_TOK_MNM, EDIF_TOK_E, EDIF_TOK_FOLLOW, 05779 EDIF_TOK_MAINTAIN, EDIF_TOK_LOGICASSIGN, 05780 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 05781 static short f_Annotate[] = {EDIF_TOK_STRINGDISPLAY}; 05782 static short f_Apply[] = {EDIF_TOK_CYCLE, EDIF_TOK_LOGICINPUT, 05783 EDIF_TOK_LOGICOUTPUT, EDIF_TOK_COMMENT, 05784 EDIF_TOK_USERDATA}; 05785 static short f_Arc[] = {EDIF_TOK_PT}; 05786 static short f_Array[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME}; 05787 static short f_ArrayMacro[] = {EDIF_TOK_PLUG}; 05788 static short f_ArrayRelatedInfo[] = {EDIF_TOK_BASEARRAY, EDIF_TOK_ARRAYSITE, 05789 EDIF_TOK_ARRAYMACRO, EDIF_TOK_COMMENT, 05790 EDIF_TOK_USERDATA}; 05791 static short f_ArraySite[] = {EDIF_TOK_SOCKET}; 05792 static short f_AtLeast[] = {EDIF_TOK_E}; 05793 static short f_AtMost[] = {EDIF_TOK_E}; 05794 static short f_Becomes[] = {EDIF_TOK_NAME, EDIF_TOK_LOGICLIST, 05795 EDIF_TOK_LOGICONEOF}; 05796 /* 05797 static short f_Between[] = {EDIF_TOK_ATLEAST, EDIF_TOK_GREATERTHAN, 05798 EDIF_TOK_ATMOST, EDIF_TOK_LESSTHAN}; 05799 */ 05800 static short f_Boolean[] = {EDIF_TOK_FALSE, EDIF_TOK_TRUE, 05801 EDIF_TOK_BOOLEANDISPLAY, EDIF_TOK_BOOLEAN}; 05802 static short f_BooleanDisplay[] = {EDIF_TOK_FALSE, EDIF_TOK_TRUE, 05803 EDIF_TOK_DISPLAY}; 05804 static short f_BooleanMap[] = {EDIF_TOK_FALSE, EDIF_TOK_TRUE}; 05805 static short f_BorderPattern[] = {EDIF_TOK_BOOLEAN}; 05806 static short f_BoundingBox[] = {EDIF_TOK_RECTANGLE}; 05807 static short f_Cell[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, EDIF_TOK_CELLTYPE, 05808 -EDIF_TOK_STATUS, -EDIF_TOK_VIEWMAP, EDIF_TOK_VIEW, 05809 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA, 05810 EDIF_TOK_PROPERTY}; 05811 static short f_CellRef[] = {EDIF_TOK_NAME, EDIF_TOK_LIBRARYREF}; 05812 static short f_Change[] = {EDIF_TOK_NAME, EDIF_TOK_PORTREF, EDIF_TOK_PORTLIST, 05813 EDIF_TOK_BECOMES, EDIF_TOK_TRANSITION}; 05814 static short f_Circle[] = {EDIF_TOK_PT, EDIF_TOK_PROPERTY}; 05815 static short f_Color[] = {EDIF_TOK_E}; 05816 static short f_CommentGraphics[] = {EDIF_TOK_ANNOTATE, EDIF_TOK_FIGURE, 05817 EDIF_TOK_INSTANCE, -EDIF_TOK_BOUNDINGBOX, 05818 EDIF_TOK_PROPERTY, EDIF_TOK_COMMENT, 05819 EDIF_TOK_USERDATA}; 05820 static short f_Compound[] = {EDIF_TOK_NAME}; 05821 static short f_ConnectLocation[] = {EDIF_TOK_FIGURE}; 05822 static short f_Contents[] = {EDIF_TOK_INSTANCE, EDIF_TOK_OFFPAGECONNECTOR, 05823 EDIF_TOK_FIGURE, EDIF_TOK_SECTION, EDIF_TOK_NET, 05824 EDIF_TOK_NETBUNDLE, EDIF_TOK_PAGE, 05825 EDIF_TOK_COMMENTGRAPHICS, 05826 EDIF_TOK_PORTIMPLEMENTATION, 05827 EDIF_TOK_TIMING, EDIF_TOK_SIMULATE, 05828 EDIF_TOK_WHEN, EDIF_TOK_FOLLOW, 05829 EDIF_TOK_LOGICPORT, -EDIF_TOK_BOUNDINGBOX, 05830 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 05831 static short f_Criticality[] = {EDIF_TOK_INTEGERDISPLAY}; 05832 static short f_CurrentMap[] = {EDIF_TOK_MNM, EDIF_TOK_E}; 05833 static short f_Curve[] = {EDIF_TOK_ARC, EDIF_TOK_PT}; 05834 static short f_Cycle[] = {EDIF_TOK_DURATION}; 05835 static short f_DataOrigin[] = {EDIF_TOK_VERSION}; 05836 static short f_DcFanInLoad[] = {EDIF_TOK_E, EDIF_TOK_NUMBERDISPLAY}; 05837 static short f_DcFanOutLoad[] = {EDIF_TOK_E, EDIF_TOK_NUMBERDISPLAY}; 05838 static short f_DcMaxFanIn[] = {EDIF_TOK_E, EDIF_TOK_NUMBERDISPLAY}; 05839 static short f_DcMaxFanOut[] = {EDIF_TOK_E, EDIF_TOK_NUMBERDISPLAY}; 05840 static short f_Delay[] = {EDIF_TOK_MNM, EDIF_TOK_E}; 05841 static short f_Delta[] = {EDIF_TOK_PT}; 05842 static short f_Design[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, EDIF_TOK_CELLREF, 05843 EDIF_TOK_STATUS, EDIF_TOK_COMMENT, 05844 EDIF_TOK_PROPERTY, EDIF_TOK_USERDATA}; 05845 static short f_Designator[] = {EDIF_TOK_STRINGDISPLAY}; 05846 static short f_Difference[] = {EDIF_TOK_FIGUREGROUPREF, EDIF_TOK_INTERSECTION, 05847 EDIF_TOK_UNION, EDIF_TOK_DIFFERENCE, 05848 EDIF_TOK_INVERSE, EDIF_TOK_OVERSIZE}; 05849 static short f_Display[] = {EDIF_TOK_NAME, EDIF_TOK_FIGUREGROUPOVERRIDE, 05850 EDIF_TOK_JUSTIFY, EDIF_TOK_ORIENTATION, 05851 EDIF_TOK_ORIGIN}; 05852 static short f_Dominates[] = {EDIF_TOK_NAME}; 05853 static short f_Dot[] = {EDIF_TOK_PT, EDIF_TOK_PROPERTY}; 05854 static short f_Duration[] = {EDIF_TOK_E}; 05855 static short f_EnclosureDistance[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 05856 EDIF_TOK_FIGUREGROUPOBJECT, 05857 EDIF_TOK_LESSTHAN, EDIF_TOK_GREATERTHAN, 05858 EDIF_TOK_ATMOST, EDIF_TOK_ATLEAST, 05859 EDIF_TOK_EXACTLY, EDIF_TOK_BETWEEN, 05860 EDIF_TOK_SINGLEVALUESET, 05861 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 05862 static short f_Entry[] = {EDIF_TOK_MATCH, EDIF_TOK_CHANGE, EDIF_TOK_STEADY, 05863 EDIF_TOK_LOGICREF, EDIF_TOK_PORTREF, 05864 EDIF_TOK_NOCHANGE, EDIF_TOK_TABLE, 05865 EDIF_TOK_DELAY, EDIF_TOK_LOADDELAY}; 05866 static short f_Exactly[] = {EDIF_TOK_E}; 05867 static short f_External[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 05868 EDIF_TOK_EDIFLEVEL, EDIF_TOK_TECHNOLOGY, 05869 -EDIF_TOK_STATUS, EDIF_TOK_CELL, EDIF_TOK_COMMENT, 05870 EDIF_TOK_USERDATA}; 05871 static short f_Fabricate[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME}; 05872 static short f_Figure[] = {EDIF_TOK_NAME, EDIF_TOK_FIGUREGROUPOVERRIDE, 05873 EDIF_TOK_CIRCLE, EDIF_TOK_DOT, EDIF_TOK_OPENSHAPE, 05874 EDIF_TOK_PATH, EDIF_TOK_POLYGON, 05875 EDIF_TOK_RECTANGLE, EDIF_TOK_SHAPE, 05876 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 05877 static short f_FigureArea[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 05878 EDIF_TOK_FIGUREGROUPOBJECT, EDIF_TOK_LESSTHAN, 05879 EDIF_TOK_GREATERTHAN, EDIF_TOK_ATMOST, 05880 EDIF_TOK_ATLEAST, EDIF_TOK_EXACTLY, 05881 EDIF_TOK_BETWEEN, EDIF_TOK_SINGLEVALUESET, 05882 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 05883 static short f_FigureGroup[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 05884 -EDIF_TOK_CORNERTYPE, -EDIF_TOK_ENDTYPE, 05885 -EDIF_TOK_PATHWIDTH, -EDIF_TOK_BORDERWIDTH, 05886 -EDIF_TOK_COLOR, -EDIF_TOK_FILLPATTERN, 05887 -EDIF_TOK_BORDERPATTERN, -EDIF_TOK_TEXTHEIGHT, 05888 -EDIF_TOK_VISIBLE, EDIF_TOK_INCLUDEFIGUREGROUP, 05889 EDIF_TOK_COMMENT, EDIF_TOK_PROPERTY, 05890 EDIF_TOK_USERDATA}; 05891 static short f_FigureGroupObject[] = {EDIF_TOK_NAME, 05892 EDIF_TOK_FIGUREGROUPOBJECT, 05893 EDIF_TOK_INTERSECTION, EDIF_TOK_UNION, 05894 EDIF_TOK_DIFFERENCE, EDIF_TOK_INVERSE, 05895 EDIF_TOK_OVERSIZE}; 05896 static short f_FigureGroupOverride[] = {EDIF_TOK_NAME, -EDIF_TOK_CORNERTYPE, 05897 -EDIF_TOK_ENDTYPE, -EDIF_TOK_PATHWIDTH, 05898 -EDIF_TOK_BORDERWIDTH, -EDIF_TOK_COLOR, 05899 -EDIF_TOK_FILLPATTERN, 05900 -EDIF_TOK_TEXTHEIGHT, 05901 -EDIF_TOK_BORDERPATTERN, 05902 EDIF_TOK_VISIBLE, EDIF_TOK_COMMENT, 05903 EDIF_TOK_PROPERTY, EDIF_TOK_USERDATA}; 05904 static short f_FigureGroupRef[] = {EDIF_TOK_NAME, EDIF_TOK_LIBRARYREF}; 05905 static short f_FigurePerimeter[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 05906 EDIF_TOK_FIGUREGROUPOBJECT, 05907 EDIF_TOK_LESSTHAN, EDIF_TOK_GREATERTHAN, 05908 EDIF_TOK_ATMOST, EDIF_TOK_ATLEAST, 05909 EDIF_TOK_EXACTLY, EDIF_TOK_BETWEEN, 05910 EDIF_TOK_SINGLEVALUESET, EDIF_TOK_COMMENT, 05911 EDIF_TOK_USERDATA}; 05912 static short f_FigureWidth[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 05913 EDIF_TOK_FIGUREGROUPOBJECT, EDIF_TOK_LESSTHAN, 05914 EDIF_TOK_GREATERTHAN, EDIF_TOK_ATMOST, 05915 EDIF_TOK_ATLEAST, EDIF_TOK_EXACTLY, 05916 EDIF_TOK_BETWEEN, EDIF_TOK_SINGLEVALUESET, 05917 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 05918 static short f_FillPattern[] = {EDIF_TOK_BOOLEAN}; 05919 static short f_Follow[] = {EDIF_TOK_NAME, EDIF_TOK_PORTREF, EDIF_TOK_TABLE, 05920 EDIF_TOK_DELAY, EDIF_TOK_LOADDELAY}; 05921 static short f_ForbiddenEvent[] = {EDIF_TOK_TIMEINTERVAL, EDIF_TOK_EVENT}; 05922 static short f_GlobalPortRef[] = {EDIF_TOK_NAME}; 05923 static short f_GreaterThan[] = {EDIF_TOK_E}; 05924 static short f_GridMap[] = {EDIF_TOK_E}; 05925 static short f_IncludeFigureGroup[] = {EDIF_TOK_FIGUREGROUPREF, 05926 EDIF_TOK_INTERSECTION, EDIF_TOK_UNION, 05927 EDIF_TOK_DIFFERENCE, EDIF_TOK_INVERSE, 05928 EDIF_TOK_OVERSIZE}; 05929 static short f_Instance[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, EDIF_TOK_ARRAY, 05930 EDIF_TOK_VIEWREF, EDIF_TOK_VIEWLIST, 05931 -EDIF_TOK_TRANSFORM, EDIF_TOK_PARAMETERASSIGN, 05932 EDIF_TOK_PORTINSTANCE, EDIF_TOK_TIMING, 05933 -EDIF_TOK_DESIGNATOR, EDIF_TOK_PROPERTY, 05934 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 05935 static short f_InstanceBackAnnotate[] = {EDIF_TOK_INSTANCEREF, 05936 -EDIF_TOK_DESIGNATOR, EDIF_TOK_TIMING, 05937 EDIF_TOK_PROPERTY, EDIF_TOK_COMMENT}; 05938 static short f_InstanceGroup[] = {EDIF_TOK_INSTANCEREF}; 05939 static short f_InstanceMap[] = {EDIF_TOK_INSTANCEREF, EDIF_TOK_INSTANCEGROUP, 05940 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 05941 static short f_InstanceRef[] = {EDIF_TOK_NAME, EDIF_TOK_MEMBER, 05942 EDIF_TOK_INSTANCEREF, EDIF_TOK_VIEWREF}; 05943 static short f_Integer[] = {EDIF_TOK_INTEGERDISPLAY, EDIF_TOK_INTEGER}; 05944 static short f_IntegerDisplay[] = {EDIF_TOK_DISPLAY}; 05945 static short f_Interface[] = {EDIF_TOK_PORT, EDIF_TOK_PORTBUNDLE, 05946 -EDIF_TOK_SYMBOL, -EDIF_TOK_PROTECTIONFRAME, 05947 -EDIF_TOK_ARRAYRELATEDINFO, EDIF_TOK_PARAMETER, 05948 EDIF_TOK_JOINED, EDIF_TOK_MUSTJOIN, 05949 EDIF_TOK_WEAKJOINED, EDIF_TOK_PERMUTABLE, 05950 EDIF_TOK_TIMING, EDIF_TOK_SIMULATE, 05951 -EDIF_TOK_DESIGNATOR, EDIF_TOK_PROPERTY, 05952 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 05953 static short f_InterFigureGroupSpacing[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 05954 EDIF_TOK_FIGUREGROUPOBJECT, 05955 EDIF_TOK_LESSTHAN, 05956 EDIF_TOK_GREATERTHAN, 05957 EDIF_TOK_ATMOST, 05958 EDIF_TOK_ATLEAST, EDIF_TOK_EXACTLY, 05959 EDIF_TOK_BETWEEN, 05960 EDIF_TOK_SINGLEVALUESET, 05961 EDIF_TOK_COMMENT, 05962 EDIF_TOK_USERDATA}; 05963 static short f_Intersection[] = {EDIF_TOK_FIGUREGROUPREF, 05964 EDIF_TOK_INTERSECTION, EDIF_TOK_UNION, 05965 EDIF_TOK_DIFFERENCE, EDIF_TOK_INVERSE, 05966 EDIF_TOK_OVERSIZE}; 05967 static short f_IntraFigureGroupSpacing[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 05968 EDIF_TOK_FIGUREGROUPOBJECT, 05969 EDIF_TOK_LESSTHAN, 05970 EDIF_TOK_GREATERTHAN, 05971 EDIF_TOK_ATMOST, EDIF_TOK_ATLEAST, 05972 EDIF_TOK_EXACTLY, EDIF_TOK_BETWEEN, 05973 EDIF_TOK_SINGLEVALUESET, 05974 EDIF_TOK_COMMENT, 05975 EDIF_TOK_USERDATA}; 05976 static short f_Inverse[] = {EDIF_TOK_FIGUREGROUPREF, EDIF_TOK_INTERSECTION, 05977 EDIF_TOK_UNION, EDIF_TOK_DIFFERENCE, 05978 EDIF_TOK_INVERSE, EDIF_TOK_OVERSIZE}; 05979 static short f_Joined[] = {EDIF_TOK_PORTREF, EDIF_TOK_PORTLIST, 05980 EDIF_TOK_GLOBALPORTREF}; 05981 static short f_KeywordDisplay[] = {EDIF_TOK_DISPLAY}; 05982 static short f_KeywordMap[] = {EDIF_TOK_KEYWORDLEVEL, EDIF_TOK_COMMENT}; 05983 static short f_LessThan[] = {EDIF_TOK_E}; 05984 static short f_Library[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, EDIF_TOK_EDIFLEVEL, 05985 EDIF_TOK_TECHNOLOGY, -EDIF_TOK_STATUS, 05986 EDIF_TOK_CELL, EDIF_TOK_COMMENT, 05987 EDIF_TOK_USERDATA}; 05988 static short f_LibraryRef[] = {EDIF_TOK_NAME}; 05989 static short f_ListOfNets[] = {EDIF_TOK_NET}; 05990 static short f_ListOfPorts[] = {EDIF_TOK_PORT, EDIF_TOK_PORTBUNDLE}; 05991 static short f_LoadDelay[] = {EDIF_TOK_MNM, EDIF_TOK_E, EDIF_TOK_MINOMAXDISPLAY}; 05992 static short f_LogicAssign[] = {EDIF_TOK_NAME, EDIF_TOK_PORTREF, 05993 EDIF_TOK_LOGICREF, EDIF_TOK_TABLE, 05994 EDIF_TOK_DELAY, EDIF_TOK_LOADDELAY}; 05995 static short f_LogicInput[] = {EDIF_TOK_PORTLIST, EDIF_TOK_PORTREF, 05996 EDIF_TOK_NAME, EDIF_TOK_LOGICWAVEFORM}; 05997 static short f_LogicList[] = {EDIF_TOK_NAME, EDIF_TOK_LOGICONEOF, 05998 EDIF_TOK_IGNORE}; 05999 static short f_LogicMapInput[] = {EDIF_TOK_LOGICREF}; 06000 static short f_LogicMapOutput[] = {EDIF_TOK_LOGICREF}; 06001 static short f_LogicOneOf[] = {EDIF_TOK_NAME, EDIF_TOK_LOGICLIST}; 06002 static short f_LogicOutput[] = {EDIF_TOK_PORTLIST, EDIF_TOK_PORTREF, 06003 EDIF_TOK_NAME, EDIF_TOK_LOGICWAVEFORM}; 06004 static short f_LogicPort[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 06005 EDIF_TOK_PROPERTY, EDIF_TOK_COMMENT, 06006 EDIF_TOK_USERDATA}; 06007 static short f_LogicRef[] = {EDIF_TOK_NAME, EDIF_TOK_LIBRARYREF}; 06008 static short f_LogicValue[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 06009 -EDIF_TOK_VOLTAGEMAP, -EDIF_TOK_CURRENTMAP, 06010 -EDIF_TOK_BOOLEANMAP, -EDIF_TOK_COMPOUND, 06011 -EDIF_TOK_WEAK ,-EDIF_TOK_STRONG, 06012 -EDIF_TOK_DOMINATES, -EDIF_TOK_LOGICMAPOUTPUT, 06013 -EDIF_TOK_LOGICMAPINPUT, 06014 -EDIF_TOK_ISOLATED, EDIF_TOK_RESOLVES, 06015 EDIF_TOK_PROPERTY, EDIF_TOK_COMMENT, 06016 EDIF_TOK_USERDATA}; 06017 static short f_LogicWaveform[] = {EDIF_TOK_NAME, EDIF_TOK_LOGICLIST, 06018 EDIF_TOK_LOGICONEOF, EDIF_TOK_IGNORE}; 06019 static short f_Maintain[] = {EDIF_TOK_NAME, EDIF_TOK_PORTREF, EDIF_TOK_DELAY, 06020 EDIF_TOK_LOADDELAY}; 06021 static short f_Match[] = {EDIF_TOK_NAME, EDIF_TOK_PORTREF, EDIF_TOK_PORTLIST, 06022 EDIF_TOK_LOGICLIST, EDIF_TOK_LOGICONEOF}; 06023 static short f_Member[] = {EDIF_TOK_NAME}; 06024 static short f_MiNoMax[] = {EDIF_TOK_MNM, EDIF_TOK_E, EDIF_TOK_MINOMAXDISPLAY, 06025 EDIF_TOK_MINOMAX}; 06026 static short f_MiNoMaxDisplay[] = {EDIF_TOK_MNM, EDIF_TOK_E, EDIF_TOK_DISPLAY}; 06027 static short f_Mnm[] = {EDIF_TOK_E, EDIF_TOK_UNDEFINED, 06028 EDIF_TOK_UNCONSTRAINED}; 06029 static short f_MultipleValueSet[] = {EDIF_TOK_RANGEVECTOR}; 06030 static short f_MustJoin[] = {EDIF_TOK_PORTREF, EDIF_TOK_PORTLIST, 06031 EDIF_TOK_WEAKJOINED, EDIF_TOK_JOINED}; 06032 static short f_Name[] = {EDIF_TOK_DISPLAY}; 06033 static short f_Net[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, -EDIF_TOK_CRITICALITY, 06034 EDIF_TOK_NETDELAY, EDIF_TOK_FIGURE, EDIF_TOK_NET, 06035 EDIF_TOK_INSTANCE, EDIF_TOK_COMMENTGRAPHICS, 06036 EDIF_TOK_PROPERTY, EDIF_TOK_COMMENT, 06037 EDIF_TOK_USERDATA, EDIF_TOK_JOINED, EDIF_TOK_ARRAY}; 06038 static short f_NetBackAnnotate[] = {EDIF_TOK_NETREF, EDIF_TOK_NETDELAY, 06039 -EDIF_TOK_CRITICALITY, EDIF_TOK_PROPERTY, 06040 EDIF_TOK_COMMENT}; 06041 static short f_NetBundle[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, EDIF_TOK_ARRAY, 06042 EDIF_TOK_LISTOFNETS, EDIF_TOK_FIGURE, 06043 EDIF_TOK_COMMENTGRAPHICS, EDIF_TOK_PROPERTY, 06044 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 06045 static short f_NetDelay[] = {EDIF_TOK_DERIVATION, EDIF_TOK_DELAY, 06046 EDIF_TOK_TRANSITION, EDIF_TOK_BECOMES}; 06047 static short f_NetGroup[] = {EDIF_TOK_NAME, EDIF_TOK_MEMBER, EDIF_TOK_NETREF}; 06048 static short f_NetMap[] = {EDIF_TOK_NETREF, EDIF_TOK_NETGROUP, 06049 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 06050 static short f_NetRef[] = {EDIF_TOK_NAME, EDIF_TOK_MEMBER, EDIF_TOK_NETREF, 06051 EDIF_TOK_INSTANCEREF, EDIF_TOK_VIEWREF}; 06052 static short f_NonPermutable[] = {EDIF_TOK_PORTREF, EDIF_TOK_PERMUTABLE}; 06053 static short f_NotAllowed[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 06054 EDIF_TOK_FIGUREGROUPOBJECT, EDIF_TOK_COMMENT, 06055 EDIF_TOK_USERDATA}; 06056 static short f_NotchSpacing[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 06057 EDIF_TOK_FIGUREGROUPOBJECT, EDIF_TOK_LESSTHAN, 06058 EDIF_TOK_GREATERTHAN, EDIF_TOK_ATMOST, 06059 EDIF_TOK_ATLEAST, EDIF_TOK_EXACTLY, 06060 EDIF_TOK_BETWEEN, EDIF_TOK_SINGLEVALUESET, 06061 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 06062 static short f_Number[] = {EDIF_TOK_E, EDIF_TOK_NUMBERDISPLAY, EDIF_TOK_NUMBER}; 06063 static short f_NumberDefinition[] = {EDIF_TOK_SCALE, -EDIF_TOK_GRIDMAP, 06064 EDIF_TOK_COMMENT}; 06065 static short f_NumberDisplay[] = {EDIF_TOK_E, EDIF_TOK_DISPLAY}; 06066 static short f_OffPageConnector[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 06067 -EDIF_TOK_UNUSED, EDIF_TOK_PROPERTY, 06068 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 06069 static short f_OffsetEvent[] = {EDIF_TOK_EVENT, EDIF_TOK_E}; 06070 static short f_OpenShape[] = {EDIF_TOK_CURVE, EDIF_TOK_PROPERTY}; 06071 static short f_Origin[] = {EDIF_TOK_PT}; 06072 static short f_OverhangDistance[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 06073 EDIF_TOK_FIGUREGROUPOBJECT, EDIF_TOK_LESSTHAN, 06074 EDIF_TOK_GREATERTHAN, EDIF_TOK_ATMOST, 06075 EDIF_TOK_ATLEAST, EDIF_TOK_EXACTLY, 06076 EDIF_TOK_BETWEEN, EDIF_TOK_SINGLEVALUESET, 06077 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 06078 static short f_OverlapDistance[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 06079 EDIF_TOK_FIGUREGROUPOBJECT, EDIF_TOK_LESSTHAN, 06080 EDIF_TOK_GREATERTHAN, EDIF_TOK_ATMOST, 06081 EDIF_TOK_ATLEAST, EDIF_TOK_EXACTLY, 06082 EDIF_TOK_BETWEEN, EDIF_TOK_SINGLEVALUESET, 06083 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 06084 static short f_Oversize[] = {EDIF_TOK_FIGUREGROUPREF, EDIF_TOK_INTERSECTION, 06085 EDIF_TOK_UNION, EDIF_TOK_DIFFERENCE, 06086 EDIF_TOK_INVERSE, EDIF_TOK_OVERSIZE, 06087 EDIF_TOK_CORNERTYPE}; 06088 static short f_Page[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, EDIF_TOK_ARRAY, 06089 EDIF_TOK_INSTANCE, EDIF_TOK_NET, EDIF_TOK_NETBUNDLE, 06090 EDIF_TOK_COMMENTGRAPHICS, EDIF_TOK_PORTIMPLEMENTATION, 06091 -EDIF_TOK_PAGESIZE, -EDIF_TOK_BOUNDINGBOX, 06092 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 06093 static short f_PageSize[] = {EDIF_TOK_RECTANGLE}; 06094 static short f_Parameter[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, EDIF_TOK_ARRAY, 06095 EDIF_TOK_BOOLEAN, EDIF_TOK_INTEGER, 06096 EDIF_TOK_MINOMAX, EDIF_TOK_NUMBER, 06097 EDIF_TOK_POINT, EDIF_TOK_STRING}; 06098 static short f_ParameterAssign[] = {EDIF_TOK_NAME, EDIF_TOK_MEMBER, 06099 EDIF_TOK_BOOLEAN, EDIF_TOK_INTEGER, 06100 EDIF_TOK_MINOMAX, EDIF_TOK_NUMBER, EDIF_TOK_POINT, 06101 EDIF_TOK_STRING}; 06102 static short f_ParameterDisplay[] = {EDIF_TOK_NAME, EDIF_TOK_MEMBER, 06103 EDIF_TOK_DISPLAY}; 06104 static short f_Path[] = {EDIF_TOK_POINTLIST, EDIF_TOK_PROPERTY}; 06105 static short f_PathDelay[] = {EDIF_TOK_DELAY, EDIF_TOK_EVENT}; 06106 static short f_Permutable[] = {EDIF_TOK_PORTREF, EDIF_TOK_PERMUTABLE, 06107 EDIF_TOK_NONPERMUTABLE}; 06108 static short f_PhysicalDesignRule[] = {EDIF_TOK_FIGUREWIDTH, 06109 EDIF_TOK_FIGUREAREA, 06110 EDIF_TOK_RECTANGLESIZE, 06111 EDIF_TOK_FIGUREPERIMETER, 06112 EDIF_TOK_OVERLAPDISTANCE, 06113 EDIF_TOK_OVERHANGDISTANCE, 06114 EDIF_TOK_ENCLOSUREDISTANCE, 06115 EDIF_TOK_INTERFIGUREGROUPSPACING, 06116 EDIF_TOK_NOTCHSPACING, 06117 EDIF_TOK_INTRAFIGUREGROUPSPACING, 06118 EDIF_TOK_NOTALLOWED, 06119 EDIF_TOK_FIGUREGROUP, EDIF_TOK_COMMENT, 06120 EDIF_TOK_USERDATA}; 06121 static short f_Plug[] = {EDIF_TOK_SOCKETSET}; 06122 static short f_Point[] = {EDIF_TOK_PT, EDIF_TOK_POINTDISPLAY, 06123 EDIF_TOK_POINT}; 06124 static short f_PointDisplay[] = {EDIF_TOK_PT, EDIF_TOK_DISPLAY}; 06125 static short f_PointList[] = {EDIF_TOK_PT}; 06126 static short f_Polygon[] = {EDIF_TOK_POINTLIST, EDIF_TOK_PROPERTY}; 06127 static short f_Port[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, EDIF_TOK_ARRAY, 06128 -EDIF_TOK_DIRECTION, -EDIF_TOK_UNUSED, 06129 EDIF_TOK_PORTDELAY, -EDIF_TOK_DESIGNATOR, 06130 -EDIF_TOK_DCFANINLOAD, -EDIF_TOK_DCFANOUTLOAD, 06131 -EDIF_TOK_DCMAXFANIN, -EDIF_TOK_DCMAXFANOUT, 06132 -EDIF_TOK_ACLOAD, EDIF_TOK_PROPERTY, 06133 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 06134 static short f_PortBackAnnotate[] = {EDIF_TOK_PORTREF, -EDIF_TOK_DESIGNATOR, 06135 EDIF_TOK_PORTDELAY, -EDIF_TOK_DCFANINLOAD, 06136 -EDIF_TOK_DCFANOUTLOAD, 06137 -EDIF_TOK_DCMAXFANIN, 06138 -EDIF_TOK_DCMAXFANOUT, -EDIF_TOK_ACLOAD, 06139 EDIF_TOK_PROPERTY, EDIF_TOK_COMMENT}; 06140 static short f_PortBundle[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, EDIF_TOK_ARRAY, 06141 EDIF_TOK_LISTOFPORTS, EDIF_TOK_PROPERTY, 06142 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 06143 static short f_PortDelay[] = {EDIF_TOK_DERIVATION, EDIF_TOK_DELAY, 06144 EDIF_TOK_LOADDELAY, EDIF_TOK_TRANSITION, 06145 EDIF_TOK_BECOMES}; 06146 static short f_PortGroup[] = {EDIF_TOK_NAME, EDIF_TOK_MEMBER, 06147 EDIF_TOK_PORTREF}; 06148 static short f_PortImplementation[] = {EDIF_TOK_PORTREF, EDIF_TOK_NAME, EDIF_TOK_MEMBER, 06149 -EDIF_TOK_CONNECTLOCATION, 06150 EDIF_TOK_FIGURE, EDIF_TOK_INSTANCE, 06151 EDIF_TOK_COMMENTGRAPHICS, 06152 EDIF_TOK_PROPERTYDISPLAY, 06153 EDIF_TOK_KEYWORDDISPLAY, 06154 EDIF_TOK_PROPERTY, 06155 EDIF_TOK_USERDATA, EDIF_TOK_COMMENT}; 06156 static short f_PortInstance[] = {EDIF_TOK_PORTREF, EDIF_TOK_NAME, 06157 EDIF_TOK_MEMBER, -EDIF_TOK_UNUSED, 06158 EDIF_TOK_PORTDELAY, -EDIF_TOK_DESIGNATOR, 06159 -EDIF_TOK_DCFANINLOAD, 06160 -EDIF_TOK_DCFANOUTLOAD, -EDIF_TOK_DCMAXFANIN, 06161 -EDIF_TOK_DCMAXFANOUT, -EDIF_TOK_ACLOAD, 06162 EDIF_TOK_PROPERTY, EDIF_TOK_COMMENT, 06163 EDIF_TOK_USERDATA}; 06164 static short f_PortList[] = {EDIF_TOK_PORTREF, EDIF_TOK_NAME, 06165 EDIF_TOK_MEMBER}; 06166 static short f_PortListAlias[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 06167 EDIF_TOK_ARRAY, EDIF_TOK_PORTLIST}; 06168 static short f_PortMap[] = {EDIF_TOK_PORTREF, EDIF_TOK_PORTGROUP, 06169 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 06170 static short f_PortRef[] = {EDIF_TOK_NAME, EDIF_TOK_MEMBER, 06171 EDIF_TOK_PORTREF, EDIF_TOK_INSTANCEREF, 06172 EDIF_TOK_VIEWREF}; 06173 static short f_Program[] = {EDIF_TOK_VERSION}; 06174 static short f_Property[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, EDIF_TOK_BOOLEAN, 06175 EDIF_TOK_INTEGER, EDIF_TOK_MINOMAX, 06176 EDIF_TOK_NUMBER, EDIF_TOK_POINT, EDIF_TOK_STRING, 06177 -EDIF_TOK_OWNER, -EDIF_TOK_UNIT, 06178 EDIF_TOK_PROPERTY, EDIF_TOK_COMMENT}; 06179 static short f_PropertyDisplay[] = {EDIF_TOK_NAME, EDIF_TOK_DISPLAY}; 06180 static short f_ProtectionFrame[] = {EDIF_TOK_PORTIMPLEMENTATION, 06181 EDIF_TOK_FIGURE, EDIF_TOK_INSTANCE, 06182 EDIF_TOK_COMMENTGRAPHICS, 06183 -EDIF_TOK_BOUNDINGBOX, 06184 EDIF_TOK_PROPERTYDISPLAY, 06185 EDIF_TOK_KEYWORDDISPLAY, 06186 EDIF_TOK_PARAMETERDISPLAY, 06187 EDIF_TOK_PROPERTY, EDIF_TOK_COMMENT, 06188 EDIF_TOK_USERDATA}; 06189 static short f_RangeVector[] = {EDIF_TOK_LESSTHAN, EDIF_TOK_GREATERTHAN, 06190 EDIF_TOK_ATMOST, EDIF_TOK_ATLEAST, 06191 EDIF_TOK_EXACTLY, EDIF_TOK_BETWEEN, 06192 EDIF_TOK_SINGLEVALUESET}; 06193 static short f_Rectangle[] = {EDIF_TOK_PT, EDIF_TOK_PROPERTY}; 06194 static short f_RectangleSize[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, 06195 EDIF_TOK_FIGUREGROUPOBJECT, 06196 EDIF_TOK_RANGEVECTOR, 06197 EDIF_TOK_MULTIPLEVALUESET,EDIF_TOK_COMMENT, 06198 EDIF_TOK_USERDATA}; 06199 static short f_Rename[] = {EDIF_TOK_NAME, EDIF_TOK_STRINGDISPLAY}; 06200 static short f_Resolves[] = {EDIF_TOK_NAME}; 06201 static short f_Scale[] = {EDIF_TOK_E, EDIF_TOK_UNIT}; 06202 static short f_Section[] = {EDIF_TOK_SECTION, EDIF_TOK_INSTANCE}; 06203 static short f_Shape[] = {EDIF_TOK_CURVE, EDIF_TOK_PROPERTY}; 06204 static short f_Simulate[] = {EDIF_TOK_NAME, EDIF_TOK_PORTLISTALIAS, 06205 EDIF_TOK_WAVEVALUE, EDIF_TOK_APPLY, 06206 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA}; 06207 static short f_SimulationInfo[] = {EDIF_TOK_LOGICVALUE, EDIF_TOK_COMMENT, 06208 EDIF_TOK_USERDATA}; 06209 static short f_SingleValueSet[] = {EDIF_TOK_LESSTHAN, EDIF_TOK_GREATERTHAN, 06210 EDIF_TOK_ATMOST, EDIF_TOK_ATLEAST, 06211 EDIF_TOK_EXACTLY, EDIF_TOK_BETWEEN}; 06212 static short f_Site[] = {EDIF_TOK_VIEWREF, EDIF_TOK_TRANSFORM}; 06213 static short f_Socket[] = {EDIF_TOK_SYMMETRY}; 06214 static short f_SocketSet[] = {EDIF_TOK_SYMMETRY, EDIF_TOK_SITE}; 06215 static short f_Status[] = {EDIF_TOK_WRITTEN, EDIF_TOK_COMMENT, 06216 EDIF_TOK_USERDATA}; 06217 static short f_Steady[] = {EDIF_TOK_NAME, EDIF_TOK_MEMBER, EDIF_TOK_PORTREF, 06218 EDIF_TOK_PORTLIST, EDIF_TOK_DURATION, 06219 EDIF_TOK_TRANSITION, EDIF_TOK_BECOMES}; 06220 static short f_String[] = {EDIF_TOK_STRINGDISPLAY, EDIF_TOK_STRING}; 06221 static short f_StringDisplay[] = {EDIF_TOK_DISPLAY}; 06222 static short f_Strong[] = {EDIF_TOK_NAME}; 06223 static short f_Symbol[] = {EDIF_TOK_PORTIMPLEMENTATION, EDIF_TOK_FIGURE, 06224 EDIF_TOK_INSTANCE, EDIF_TOK_COMMENTGRAPHICS, 06225 EDIF_TOK_ANNOTATE, -EDIF_TOK_PAGESIZE, 06226 -EDIF_TOK_BOUNDINGBOX, EDIF_TOK_PROPERTYDISPLAY, 06227 EDIF_TOK_KEYWORDDISPLAY, EDIF_TOK_PARAMETERDISPLAY, 06228 EDIF_TOK_PROPERTY, EDIF_TOK_COMMENT, 06229 EDIF_TOK_USERDATA}; 06230 static short f_Symmetry[] = {EDIF_TOK_TRANSFORM}; 06231 static short f_Table[] = {EDIF_TOK_ENTRY, EDIF_TOK_TABLEDEFAULT}; 06232 static short f_TableDefault[] = {EDIF_TOK_LOGICREF, EDIF_TOK_PORTREF, 06233 EDIF_TOK_NOCHANGE, EDIF_TOK_TABLE, 06234 EDIF_TOK_DELAY, EDIF_TOK_LOADDELAY}; 06235 static short f_Technology[] = {EDIF_TOK_NUMBERDEFINITION, EDIF_TOK_FIGUREGROUP, 06236 EDIF_TOK_FABRICATE, -EDIF_TOK_SIMULATIONINFO, 06237 EDIF_TOK_COMMENT, EDIF_TOK_USERDATA, 06238 -EDIF_TOK_PHYSICALDESIGNRULE}; 06239 static short f_TimeInterval[] = {EDIF_TOK_EVENT, EDIF_TOK_OFFSETEVENT, 06240 EDIF_TOK_DURATION}; 06241 static short f_Timing[] = {EDIF_TOK_DERIVATION, EDIF_TOK_PATHDELAY, 06242 EDIF_TOK_FORBIDDENEVENT, EDIF_TOK_COMMENT, 06243 EDIF_TOK_USERDATA}; 06244 static short f_Transform[] = {EDIF_TOK_SCALEX, EDIF_TOK_SCALEY, EDIF_TOK_DELTA, 06245 EDIF_TOK_ORIENTATION, EDIF_TOK_ORIGIN}; 06246 static short f_Transition[] = {EDIF_TOK_NAME, EDIF_TOK_LOGICLIST, 06247 EDIF_TOK_LOGICONEOF}; 06248 static short f_Trigger[] = {EDIF_TOK_CHANGE, EDIF_TOK_STEADY, 06249 EDIF_TOK_INITIAL}; 06250 static short f_Union[] = {EDIF_TOK_FIGUREGROUPREF, EDIF_TOK_INTERSECTION, 06251 EDIF_TOK_UNION, EDIF_TOK_DIFFERENCE, 06252 EDIF_TOK_INVERSE, EDIF_TOK_OVERSIZE}; 06253 static short f_View[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, EDIF_TOK_VIEWTYPE, 06254 EDIF_TOK_INTERFACE, -EDIF_TOK_STATUS, 06255 -EDIF_TOK_CONTENTS, EDIF_TOK_COMMENT, 06256 EDIF_TOK_PROPERTY, EDIF_TOK_USERDATA}; 06257 static short f_ViewList[] = {EDIF_TOK_VIEWREF, EDIF_TOK_VIEWLIST}; 06258 static short f_ViewMap[] = {EDIF_TOK_PORTMAP, EDIF_TOK_PORTBACKANNOTATE, 06259 EDIF_TOK_INSTANCEMAP, 06260 EDIF_TOK_INSTANCEBACKANNOTATE, EDIF_TOK_NETMAP, 06261 EDIF_TOK_NETBACKANNOTATE, EDIF_TOK_COMMENT, 06262 EDIF_TOK_USERDATA}; 06263 static short f_ViewRef[] = {EDIF_TOK_NAME, EDIF_TOK_CELLREF}; 06264 static short f_Visible[] = {EDIF_TOK_FALSE, EDIF_TOK_TRUE}; 06265 static short f_VoltageMap[] = {EDIF_TOK_MNM, EDIF_TOK_E}; 06266 static short f_WaveValue[] = {EDIF_TOK_NAME, EDIF_TOK_RENAME, EDIF_TOK_E, 06267 EDIF_TOK_LOGICWAVEFORM}; 06268 static short f_Weak[] = {EDIF_TOK_NAME}; 06269 static short f_WeakJoined[] = {EDIF_TOK_PORTREF, EDIF_TOK_PORTLIST, 06270 EDIF_TOK_JOINED}; 06271 static short f_When[] = {EDIF_TOK_TRIGGER, EDIF_TOK_AFTER, 06272 EDIF_TOK_FOLLOW, EDIF_TOK_MAINTAIN, 06273 EDIF_TOK_LOGICASSIGN, EDIF_TOK_COMMENT, 06274 EDIF_TOK_USERDATA}; 06275 static short f_Written[] = {EDIF_TOK_TIMESTAMP, EDIF_TOK_AUTHOR, 06276 EDIF_TOK_PROGRAM, EDIF_TOK_DATAORIGIN, 06277 EDIF_TOK_PROPERTY, EDIF_TOK_COMMENT, 06278 EDIF_TOK_USERDATA}; 06279 /* 06280 * Context binding table: 06281 * 06282 * This binds context follower arrays to their originating context. 06283 */ 06284 typedef struct Binder { 06285 short *Follower; /* pointer to follower array */ 06286 short Origin; /* '%token' value of origin */ 06287 short FollowerSize; /* size of follower array */ 06288 } Binder; 06289 #define BE(f,o) {f,o,sizeof(f)/sizeof(short)} 06290 static Binder BinderDef[] = { 06291 BE(f_NULL, 0), 06292 BE(f_Edif, EDIF_TOK_EDIF), 06293 BE(f_AcLoad, EDIF_TOK_ACLOAD), 06294 BE(f_After, EDIF_TOK_AFTER), 06295 BE(f_Annotate, EDIF_TOK_ANNOTATE), 06296 BE(f_Apply, EDIF_TOK_APPLY), 06297 BE(f_Arc, EDIF_TOK_ARC), 06298 BE(f_Array, EDIF_TOK_ARRAY), 06299 BE(f_ArrayMacro, EDIF_TOK_ARRAYMACRO), 06300 BE(f_ArrayRelatedInfo, EDIF_TOK_ARRAYRELATEDINFO), 06301 BE(f_ArraySite, EDIF_TOK_ARRAYSITE), 06302 BE(f_AtLeast, EDIF_TOK_ATLEAST), 06303 BE(f_AtMost, EDIF_TOK_ATMOST), 06304 BE(f_Becomes, EDIF_TOK_BECOMES), 06305 BE(f_Boolean, EDIF_TOK_BOOLEAN), 06306 BE(f_BooleanDisplay, EDIF_TOK_BOOLEANDISPLAY), 06307 BE(f_BooleanMap, EDIF_TOK_BOOLEANMAP), 06308 BE(f_BorderPattern, EDIF_TOK_BORDERPATTERN), 06309 BE(f_BoundingBox, EDIF_TOK_BOUNDINGBOX), 06310 BE(f_Cell, EDIF_TOK_CELL), 06311 BE(f_CellRef, EDIF_TOK_CELLREF), 06312 BE(f_Change, EDIF_TOK_CHANGE), 06313 BE(f_Circle, EDIF_TOK_CIRCLE), 06314 BE(f_Color, EDIF_TOK_COLOR), 06315 BE(f_CommentGraphics, EDIF_TOK_COMMENTGRAPHICS), 06316 BE(f_Compound, EDIF_TOK_COMPOUND), 06317 BE(f_ConnectLocation, EDIF_TOK_CONNECTLOCATION), 06318 BE(f_Contents, EDIF_TOK_CONTENTS), 06319 BE(f_Criticality, EDIF_TOK_CRITICALITY), 06320 BE(f_CurrentMap, EDIF_TOK_CURRENTMAP), 06321 BE(f_Curve, EDIF_TOK_CURVE), 06322 BE(f_Cycle, EDIF_TOK_CYCLE), 06323 BE(f_DataOrigin, EDIF_TOK_DATAORIGIN), 06324 BE(f_DcFanInLoad, EDIF_TOK_DCFANINLOAD), 06325 BE(f_DcFanOutLoad, EDIF_TOK_DCFANOUTLOAD), 06326 BE(f_DcMaxFanIn, EDIF_TOK_DCMAXFANIN), 06327 BE(f_DcMaxFanOut, EDIF_TOK_DCMAXFANOUT), 06328 BE(f_Delay, EDIF_TOK_DELAY), 06329 BE(f_Delta, EDIF_TOK_DELTA), 06330 BE(f_Design, EDIF_TOK_DESIGN), 06331 BE(f_Designator, EDIF_TOK_DESIGNATOR), 06332 BE(f_Difference, EDIF_TOK_DIFFERENCE), 06333 BE(f_Display, EDIF_TOK_DISPLAY), 06334 BE(f_Dominates, EDIF_TOK_DOMINATES), 06335 BE(f_Dot, EDIF_TOK_DOT), 06336 BE(f_Duration, EDIF_TOK_DURATION), 06337 BE(f_EnclosureDistance, EDIF_TOK_ENCLOSUREDISTANCE), 06338 BE(f_Entry, EDIF_TOK_ENTRY), 06339 BE(f_Exactly, EDIF_TOK_EXACTLY), 06340 BE(f_External, EDIF_TOK_EXTERNAL), 06341 BE(f_Fabricate, EDIF_TOK_FABRICATE), 06342 BE(f_Figure, EDIF_TOK_FIGURE), 06343 BE(f_FigureArea, EDIF_TOK_FIGUREAREA), 06344 BE(f_FigureGroup, EDIF_TOK_FIGUREGROUP), 06345 BE(f_FigureGroupObject, EDIF_TOK_FIGUREGROUPOBJECT), 06346 BE(f_FigureGroupOverride, EDIF_TOK_FIGUREGROUPOVERRIDE), 06347 BE(f_FigureGroupRef, EDIF_TOK_FIGUREGROUPREF), 06348 BE(f_FigurePerimeter, EDIF_TOK_FIGUREPERIMETER), 06349 BE(f_FigureWidth, EDIF_TOK_FIGUREWIDTH), 06350 BE(f_FillPattern, EDIF_TOK_FILLPATTERN), 06351 BE(f_Follow, EDIF_TOK_FOLLOW), 06352 BE(f_ForbiddenEvent, EDIF_TOK_FORBIDDENEVENT), 06353 BE(f_GlobalPortRef, EDIF_TOK_GLOBALPORTREF), 06354 BE(f_GreaterThan, EDIF_TOK_GREATERTHAN), 06355 BE(f_GridMap, EDIF_TOK_GRIDMAP), 06356 BE(f_IncludeFigureGroup, EDIF_TOK_INCLUDEFIGUREGROUP), 06357 BE(f_Instance, EDIF_TOK_INSTANCE), 06358 BE(f_InstanceBackAnnotate, EDIF_TOK_INSTANCEBACKANNOTATE), 06359 BE(f_InstanceGroup, EDIF_TOK_INSTANCEGROUP), 06360 BE(f_InstanceMap, EDIF_TOK_INSTANCEMAP), 06361 BE(f_InstanceRef, EDIF_TOK_INSTANCEREF), 06362 BE(f_Integer, EDIF_TOK_INTEGER), 06363 BE(f_IntegerDisplay, EDIF_TOK_INTEGERDISPLAY), 06364 BE(f_InterFigureGroupSpacing, EDIF_TOK_INTERFIGUREGROUPSPACING), 06365 BE(f_Interface, EDIF_TOK_INTERFACE), 06366 BE(f_Intersection, EDIF_TOK_INTERSECTION), 06367 BE(f_IntraFigureGroupSpacing, EDIF_TOK_INTRAFIGUREGROUPSPACING), 06368 BE(f_Inverse, EDIF_TOK_INVERSE), 06369 BE(f_Joined, EDIF_TOK_JOINED), 06370 BE(f_KeywordDisplay, EDIF_TOK_KEYWORDDISPLAY), 06371 BE(f_KeywordMap, EDIF_TOK_KEYWORDMAP), 06372 BE(f_LessThan, EDIF_TOK_LESSTHAN), 06373 BE(f_Library, EDIF_TOK_LIBRARY), 06374 BE(f_LibraryRef, EDIF_TOK_LIBRARYREF), 06375 BE(f_ListOfNets, EDIF_TOK_LISTOFNETS), 06376 BE(f_ListOfPorts, EDIF_TOK_LISTOFPORTS), 06377 BE(f_LoadDelay, EDIF_TOK_LOADDELAY), 06378 BE(f_LogicAssign, EDIF_TOK_LOGICASSIGN), 06379 BE(f_LogicInput, EDIF_TOK_LOGICINPUT), 06380 BE(f_LogicList, EDIF_TOK_LOGICLIST), 06381 BE(f_LogicMapInput, EDIF_TOK_LOGICMAPINPUT), 06382 BE(f_LogicMapOutput, EDIF_TOK_LOGICMAPOUTPUT), 06383 BE(f_LogicOneOf, EDIF_TOK_LOGICONEOF), 06384 BE(f_LogicOutput, EDIF_TOK_LOGICOUTPUT), 06385 BE(f_LogicPort, EDIF_TOK_LOGICPORT), 06386 BE(f_LogicRef, EDIF_TOK_LOGICREF), 06387 BE(f_LogicValue, EDIF_TOK_LOGICVALUE), 06388 BE(f_LogicWaveform, EDIF_TOK_LOGICWAVEFORM), 06389 BE(f_Maintain, EDIF_TOK_MAINTAIN), 06390 BE(f_Match, EDIF_TOK_MATCH), 06391 BE(f_Member, EDIF_TOK_MEMBER), 06392 BE(f_MiNoMax, EDIF_TOK_MINOMAX), 06393 BE(f_MiNoMaxDisplay, EDIF_TOK_MINOMAXDISPLAY), 06394 BE(f_Mnm, EDIF_TOK_MNM), 06395 BE(f_MultipleValueSet, EDIF_TOK_MULTIPLEVALUESET), 06396 BE(f_MustJoin, EDIF_TOK_MUSTJOIN), 06397 BE(f_Name, EDIF_TOK_NAME), 06398 BE(f_Net, EDIF_TOK_NET), 06399 BE(f_NetBackAnnotate, EDIF_TOK_NETBACKANNOTATE), 06400 BE(f_NetBundle, EDIF_TOK_NETBUNDLE), 06401 BE(f_NetDelay, EDIF_TOK_NETDELAY), 06402 BE(f_NetGroup, EDIF_TOK_NETGROUP), 06403 BE(f_NetMap, EDIF_TOK_NETMAP), 06404 BE(f_NetRef, EDIF_TOK_NETREF), 06405 BE(f_NonPermutable, EDIF_TOK_NONPERMUTABLE), 06406 BE(f_NotAllowed, EDIF_TOK_NOTALLOWED), 06407 BE(f_NotchSpacing, EDIF_TOK_NOTCHSPACING), 06408 BE(f_Number, EDIF_TOK_NUMBER), 06409 BE(f_NumberDefinition, EDIF_TOK_NUMBERDEFINITION), 06410 BE(f_NumberDisplay, EDIF_TOK_NUMBERDISPLAY), 06411 BE(f_OffPageConnector, EDIF_TOK_OFFPAGECONNECTOR), 06412 BE(f_OffsetEvent, EDIF_TOK_OFFSETEVENT), 06413 BE(f_OpenShape, EDIF_TOK_OPENSHAPE), 06414 BE(f_Origin, EDIF_TOK_ORIGIN), 06415 BE(f_OverhangDistance, EDIF_TOK_OVERHANGDISTANCE), 06416 BE(f_OverlapDistance, EDIF_TOK_OVERLAPDISTANCE), 06417 BE(f_Oversize, EDIF_TOK_OVERSIZE), 06418 BE(f_Page, EDIF_TOK_PAGE), 06419 BE(f_PageSize, EDIF_TOK_PAGESIZE), 06420 BE(f_Parameter, EDIF_TOK_PARAMETER), 06421 BE(f_ParameterAssign, EDIF_TOK_PARAMETERASSIGN), 06422 BE(f_ParameterDisplay, EDIF_TOK_PARAMETERDISPLAY), 06423 BE(f_Path, EDIF_TOK_PATH), 06424 BE(f_PathDelay, EDIF_TOK_PATHDELAY), 06425 BE(f_Permutable, EDIF_TOK_PERMUTABLE), 06426 BE(f_PhysicalDesignRule, EDIF_TOK_PHYSICALDESIGNRULE), 06427 BE(f_Plug, EDIF_TOK_PLUG), 06428 BE(f_Point, EDIF_TOK_POINT), 06429 BE(f_PointDisplay, EDIF_TOK_POINTDISPLAY), 06430 BE(f_PointList, EDIF_TOK_POINTLIST), 06431 BE(f_Polygon, EDIF_TOK_POLYGON), 06432 BE(f_Port, EDIF_TOK_PORT), 06433 BE(f_PortBackAnnotate, EDIF_TOK_PORTBACKANNOTATE), 06434 BE(f_PortBundle, EDIF_TOK_PORTBUNDLE), 06435 BE(f_PortDelay, EDIF_TOK_PORTDELAY), 06436 BE(f_PortGroup, EDIF_TOK_PORTGROUP), 06437 BE(f_PortImplementation, EDIF_TOK_PORTIMPLEMENTATION), 06438 BE(f_PortInstance, EDIF_TOK_PORTINSTANCE), 06439 BE(f_PortList, EDIF_TOK_PORTLIST), 06440 BE(f_PortListAlias, EDIF_TOK_PORTLISTALIAS), 06441 BE(f_PortMap, EDIF_TOK_PORTMAP), 06442 BE(f_PortRef, EDIF_TOK_PORTREF), 06443 BE(f_Program, EDIF_TOK_PROGRAM), 06444 BE(f_Property, EDIF_TOK_PROPERTY), 06445 BE(f_PropertyDisplay, EDIF_TOK_PROPERTYDISPLAY), 06446 BE(f_ProtectionFrame, EDIF_TOK_PROTECTIONFRAME), 06447 BE(f_RangeVector, EDIF_TOK_RANGEVECTOR), 06448 BE(f_Rectangle, EDIF_TOK_RECTANGLE), 06449 BE(f_RectangleSize, EDIF_TOK_RECTANGLESIZE), 06450 BE(f_Rename, EDIF_TOK_RENAME), 06451 BE(f_Resolves, EDIF_TOK_RESOLVES), 06452 BE(f_Scale, EDIF_TOK_SCALE), 06453 BE(f_Section, EDIF_TOK_SECTION), 06454 BE(f_Shape, EDIF_TOK_SHAPE), 06455 BE(f_Simulate, EDIF_TOK_SIMULATE), 06456 BE(f_SimulationInfo, EDIF_TOK_SIMULATIONINFO), 06457 BE(f_SingleValueSet, EDIF_TOK_SINGLEVALUESET), 06458 BE(f_Site, EDIF_TOK_SITE), 06459 BE(f_Socket, EDIF_TOK_SOCKET), 06460 BE(f_SocketSet, EDIF_TOK_SOCKETSET), 06461 BE(f_Status, EDIF_TOK_STATUS), 06462 BE(f_Steady, EDIF_TOK_STEADY), 06463 BE(f_String, EDIF_TOK_STRING), 06464 BE(f_StringDisplay, EDIF_TOK_STRINGDISPLAY), 06465 BE(f_Strong, EDIF_TOK_STRONG), 06466 BE(f_Symbol, EDIF_TOK_SYMBOL), 06467 BE(f_Symmetry, EDIF_TOK_SYMMETRY), 06468 BE(f_Table, EDIF_TOK_TABLE), 06469 BE(f_TableDefault, EDIF_TOK_TABLEDEFAULT), 06470 BE(f_Technology, EDIF_TOK_TECHNOLOGY), 06471 BE(f_TimeInterval, EDIF_TOK_TIMEINTERVAL), 06472 BE(f_Timing, EDIF_TOK_TIMING), 06473 BE(f_Transform, EDIF_TOK_TRANSFORM), 06474 BE(f_Transition, EDIF_TOK_TRANSITION), 06475 BE(f_Trigger, EDIF_TOK_TRIGGER), 06476 BE(f_Union, EDIF_TOK_UNION), 06477 BE(f_View, EDIF_TOK_VIEW), 06478 BE(f_ViewList, EDIF_TOK_VIEWLIST), 06479 BE(f_ViewMap, EDIF_TOK_VIEWMAP), 06480 BE(f_ViewRef, EDIF_TOK_VIEWREF), 06481 BE(f_Visible, EDIF_TOK_VISIBLE), 06482 BE(f_VoltageMap, EDIF_TOK_VOLTAGEMAP), 06483 BE(f_WaveValue, EDIF_TOK_WAVEVALUE), 06484 BE(f_Weak, EDIF_TOK_WEAK), 06485 BE(f_WeakJoined, EDIF_TOK_WEAKJOINED), 06486 BE(f_When, EDIF_TOK_WHEN), 06487 BE(f_Written, EDIF_TOK_WRITTEN) 06488 }; 06489 static int BinderDefSize = sizeof(BinderDef) / sizeof(Binder); 06490 /* 06491 * Keyword table: 06492 * 06493 * This hash table holds all strings which may have to be matched 06494 * to. WARNING: it is assumed that there is no overlap of the 'token' 06495 * and 'context' strings. 06496 */ 06497 typedef struct Keyword { 06498 struct Keyword *Next; /* pointer to next entry */ 06499 char *String; /* pointer to associated string */ 06500 } Keyword; 06501 #define KEYWORD_HASH 127 /* hash table size */ 06502 static Keyword *KeywordTable[KEYWORD_HASH]; 06503 /* 06504 * Enter keyword: 06505 * 06506 * The passed string is entered into the keyword hash table. 06507 */ 06508 static void EnterKeyword(char * str) 06509 { 06510 /* 06511 * Locals. 06512 */ 06513 register Keyword *key; 06514 register unsigned int hsh; 06515 register char *cp; 06516 /* 06517 * Create the hash code, and add an entry to the table. 06518 */ 06519 for (hsh = 0, cp = str; *cp; hsh += hsh + *cp++); 06520 hsh %= KEYWORD_HASH; 06521 key = (Keyword *) Malloc(sizeof(Keyword)); 06522 key->Next = KeywordTable[hsh]; 06523 (KeywordTable[hsh] = key)->String = str; 06524 } 06525 /* 06526 * Find keyword: 06527 * 06528 * The passed string is located within the keyword table. If an 06529 * entry exists, then the value of the keyword string is returned. This 06530 * is real useful for doing string comparisons by pointer value later. 06531 * If there is no match, a NULL is returned. 06532 */ 06533 static char *FindKeyword(char * str) 06534 { 06535 /* 06536 * Locals. 06537 */ 06538 register Keyword *wlk,*owk; 06539 register unsigned int hsh; 06540 register char *cp; 06541 char lower[IDENT_LENGTH + 1]; 06542 /* 06543 * Create a lower case copy of the string. 06544 */ 06545 for (cp = lower; *str;) 06546 if (isupper( (int) *str)) 06547 *cp++ = tolower( (int) *str++); 06548 else 06549 *cp++ = *str++; 06550 *cp = '\0'; 06551 /* 06552 * Search the hash table for a match. 06553 */ 06554 for (hsh = 0, cp = lower; *cp; hsh += hsh + *cp++); 06555 hsh %= KEYWORD_HASH; 06556 for (owk = NULL, wlk = KeywordTable[hsh]; wlk; wlk = (owk = wlk)->Next) 06557 if (!strcmp(wlk->String,lower)){ 06558 /* 06559 * Readjust the LRU. 06560 */ 06561 if (owk){ 06562 owk->Next = wlk->Next; 06563 wlk->Next = KeywordTable[hsh]; 06564 KeywordTable[hsh] = wlk; 06565 } 06566 return (wlk->String); 06567 } 06568 return (NULL); 06569 } 06570 /* 06571 * Token hash table. 06572 */ 06573 #define TOKEN_HASH 51 06574 static Token *TokenHash[TOKEN_HASH]; 06575 /* 06576 * Find token: 06577 * 06578 * A pointer to the token of the passed code is returned. If 06579 * no such beastie is present a NULL is returned instead. 06580 */ 06581 static Token *FindToken(register int cod) 06582 { 06583 /* 06584 * Locals. 06585 */ 06586 register Token *wlk,*owk; 06587 register unsigned int hsh; 06588 /* 06589 * Search the hash table for a matching token. 06590 */ 06591 hsh = cod % TOKEN_HASH; 06592 for (owk = NULL, wlk = TokenHash[hsh]; wlk; wlk = (owk = wlk)->Next) 06593 if (cod == wlk->Code){ 06594 if (owk){ 06595 owk->Next = wlk->Next; 06596 wlk->Next = TokenHash[hsh]; 06597 TokenHash[hsh] = wlk; 06598 } 06599 break; 06600 } 06601 return (wlk); 06602 } 06603 /* 06604 * Context hash table. 06605 */ 06606 #define CONTEXT_HASH 127 06607 static Context *ContextHash[CONTEXT_HASH]; 06608 /* 06609 * Find context: 06610 * 06611 * A pointer to the context of the passed code is returned. If 06612 * no such beastie is present a NULL is returned instead. 06613 */ 06614 static Context *FindContext(register int cod) 06615 { 06616 /* 06617 * Locals. 06618 */ 06619 register Context *wlk,*owk; 06620 register unsigned int hsh; 06621 /* 06622 * Search the hash table for a matching context. 06623 */ 06624 hsh = cod % CONTEXT_HASH; 06625 for (owk = NULL, wlk = ContextHash[hsh]; wlk; wlk = (owk = wlk)->Next) 06626 if (cod == wlk->Code){ 06627 if (owk){ 06628 owk->Next = wlk->Next; 06629 wlk->Next = ContextHash[hsh]; 06630 ContextHash[hsh] = wlk; 06631 } 06632 break; 06633 } 06634 return (wlk); 06635 } 06636 /* 06637 * Parser state variables. 06638 */ 06639 static FILE *Input = NULL; /* input stream */ 06640 static FILE *Error = NULL; /* error stream */ 06641 static char *InFile; /* file name on the input stream */ 06642 static long LineNumber; /* current input line number */ 06643 static ContextCar *CSP = NULL; /* top of context stack */ 06644 static char yytext[IDENT_LENGTH + 1]; /* token buffer */ 06645 static char CharBuf[IDENT_LENGTH + 1]; /* garbage buffer */ 06646 /* 06647 * Token stacking variables. 06648 */ 06649 #ifdef DEBUG 06650 #define TS_DEPTH 8 06651 #define TS_MASK (TS_DEPTH - 1) 06652 static unsigned int TSP = 0; /* token stack pointer */ 06653 static char *TokenStack[TS_DEPTH]; /* token name strings */ 06654 static short TokenType[TS_DEPTH]; /* token types */ 06655 /* 06656 * Stack: 06657 * 06658 * Add a token to the debug stack. The passed string and type are 06659 * what is to be pushed. 06660 */ 06661 static int Stack(char * str, int typ) 06662 { 06663 /* 06664 * Free any previous string, then push. 06665 */ 06666 if (TokenStack[TSP & TS_MASK]) 06667 Free(TokenStack[TSP & TS_MASK]); 06668 TokenStack[TSP & TS_MASK] = strcpy((char *)Malloc(strlen(str) + 1),str); 06669 TokenType[TSP & TS_MASK] = typ; 06670 TSP += 1; 06671 return 0; 06672 } 06673 /* 06674 * Dump stack: 06675 * 06676 * This displays the last set of accumulated tokens. 06677 */ 06678 static int DumpStack() 06679 { 06680 /* 06681 * Locals. 06682 */ 06683 register int i; 06684 register Context *cxt; 06685 register Token *tok; 06686 register char *nam; 06687 /* 06688 * Run through the list displaying the oldest first. 06689 */ 06690 fprintf(Error,"\n\n"); 06691 for (i = 0; i < TS_DEPTH; i += 1) 06692 if (TokenStack[(TSP + i) & TS_MASK]){ 06693 /* 06694 * Get the type name string. 06695 */ 06696 if ((cxt = FindContext(TokenType[(TSP + i) & TS_MASK]))) 06697 nam = cxt->Name; 06698 else if ((tok = FindToken(TokenType[(TSP + i) & TS_MASK]))) 06699 nam = tok->Name; 06700 else switch (TokenType[(TSP + i) & TS_MASK]){ 06701 case EDIF_TOK_IDENT: nam = "IDENT"; break; 06702 case EDIF_TOK_INT: nam = "INT"; break; 06703 case EDIF_TOK_KEYWORD: nam = "KEYWORD"; break; 06704 case EDIF_TOK_STR: nam = "STR"; break; 06705 default: nam = "?"; break; 06706 } 06707 /* 06708 * Now print the token state. 06709 */ 06710 fprintf(Error,"%2d %-16.16s '%s'\n",TS_DEPTH - i,nam, 06711 TokenStack[(TSP + i) & TS_MASK]); 06712 } 06713 fprintf(Error,"\n"); 06714 return 0; 06715 } 06716 #else 06717 #define Stack(s,t) 06718 #endif /* DEBUG */ 06719 /* 06720 * yyerror: 06721 * 06722 * Standard error reporter, it prints out the passed string 06723 * preceeded by the current filename and line number. 06724 */ 06725 static void yyerror(const char *ers) 06726 { 06727 #ifdef DEBUG 06728 DumpStack(); 06729 #endif /* DEBUG */ 06730 fprintf(Error,"%s, line %ld: %s\n",InFile,LineNumber,ers); 06731 } 06732 /* 06733 * String bucket definitions. 06734 */ 06735 #define BUCKET_SIZE 64 06736 typedef struct Bucket { 06737 struct Bucket *Next; /* pointer to next bucket */ 06738 int Index; /* pointer to next free slot */ 06739 char Data[BUCKET_SIZE]; /* string data */ 06740 } Bucket; 06741 static Bucket *CurrentBucket = NULL; /* string bucket list */ 06742 static int StringSize = 0; /* current string length */ 06743 /* 06744 * Push string: 06745 * 06746 * This adds the passed charater to the current string bucket. 06747 */ 06748 static void PushString(char chr) 06749 { 06750 /* 06751 * Locals. 06752 */ 06753 register Bucket *bck; 06754 /* 06755 * Make sure there is room for the push. 06756 */ 06757 if ((bck = CurrentBucket)->Index >= BUCKET_SIZE){ 06758 bck = (Bucket *) Malloc(sizeof(Bucket)); 06759 bck->Next = CurrentBucket; 06760 (CurrentBucket = bck)->Index = 0; 06761 } 06762 /* 06763 * Push the character. 06764 */ 06765 bck->Data[bck->Index++] = chr; 06766 StringSize += 1; 06767 } 06768 /* 06769 * Form string: 06770 * 06771 * This converts the current string bucket into a real live string, 06772 * whose pointer is returned. 06773 */ 06774 static char *FormString() 06775 { 06776 /* 06777 * Locals. 06778 */ 06779 register Bucket *bck; 06780 register char *cp; 06781 /* 06782 * Allocate space for the string, set the pointer at the end. 06783 */ 06784 cp = (char *) Malloc(StringSize + 1); 06785 06786 cp += StringSize; 06787 *cp-- = '\0'; 06788 /* 06789 * Yank characters out of the bucket. 06790 */ 06791 for (bck = CurrentBucket; bck->Index || bck->Next;){ 06792 if (!bck->Index){ 06793 CurrentBucket = bck->Next; 06794 Free(bck); 06795 bck = CurrentBucket; 06796 } 06797 *cp-- = bck->Data[--bck->Index]; 06798 } 06799 /* reset buffer size to zero */ 06800 StringSize =0; 06801 return (cp + 1); 06802 } 06803 /* 06804 * Parse EDIF: 06805 * 06806 * This builds the context tree and then calls the real parser. 06807 * It is passed two file streams, the first is where the input comes 06808 * from; the second is where error messages get printed. 06809 */ 06810 void ParseEDIF(char* filename,FILE* err) 06811 { 06812 /* 06813 * Locals. 06814 */ 06815 register int i; 06816 static int ContextDefined = 1; 06817 /* 06818 * Set up the file state to something useful. 06819 */ 06820 InFile = filename; 06821 Input = fopen(filename,"r"); 06822 Error = err; 06823 LineNumber = 1; 06824 /* 06825 * Define both the enabled token and context strings. 06826 */ 06827 if (ContextDefined){ 06828 for (i = TokenDefSize; i--; EnterKeyword(TokenDef[i].Name)){ 06829 register unsigned int hsh; 06830 hsh = TokenDef[i].Code % TOKEN_HASH; 06831 TokenDef[i].Next = TokenHash[hsh]; 06832 TokenHash[hsh] = &TokenDef[i]; 06833 } 06834 for (i = ContextDefSize; i--; EnterKeyword(ContextDef[i].Name)){ 06835 register unsigned int hsh; 06836 hsh = ContextDef[i].Code % CONTEXT_HASH; 06837 ContextDef[i].Next = ContextHash[hsh]; 06838 ContextHash[hsh] = &ContextDef[i]; 06839 } 06840 /* 06841 * Build the context tree. 06842 */ 06843 for (i = BinderDefSize; i--;){ 06844 register Context *cxt; 06845 register int j; 06846 /* 06847 * Define the current context to have carriers bound to it. 06848 */ 06849 cxt = FindContext(BinderDef[i].Origin); 06850 for (j = BinderDef[i].FollowerSize; j--;){ 06851 register ContextCar *cc; 06852 /* 06853 * Add carriers to the current context. 06854 */ 06855 cc = (ContextCar *) Malloc(sizeof(ContextCar)); 06856 cc->Next = cxt->Context; 06857 (cxt->Context = cc)->Context = 06858 FindContext(ABS(BinderDef[i].Follower[j])); 06859 cc->u.Single = BinderDef[i].Follower[j] < 0; 06860 } 06861 } 06862 /* 06863 * Build the token tree. 06864 */ 06865 for (i = TieDefSize; i--;){ 06866 register Context *cxt; 06867 register int j; 06868 /* 06869 * Define the current context to have carriers bound to it. 06870 */ 06871 cxt = FindContext(TieDef[i].Origin); 06872 for (j = TieDef[i].EnableSize; j--;){ 06873 register TokenCar *tc; 06874 /* 06875 * Add carriers to the current context. 06876 */ 06877 tc = (TokenCar *) Malloc(sizeof(TokenCar)); 06878 tc->Next = cxt->Token; 06879 (cxt->Token = tc)->Token = FindToken(TieDef[i].Enable[j]); 06880 } 06881 } 06882 /* 06883 * Put a bogus context on the stack which has 'EDIF' as its 06884 * follower. 06885 */ 06886 CSP = (ContextCar *) Malloc(sizeof(ContextCar)); 06887 CSP->Next = NULL; 06888 CSP->Context = FindContext(0); 06889 CSP->u.Used = NULL; 06890 ContextDefined = 0; 06891 } 06892 /* 06893 * Create an initial, empty string bucket. 06894 */ 06895 CurrentBucket = (Bucket *) Malloc(sizeof(Bucket)); 06896 CurrentBucket->Next = 0; 06897 CurrentBucket->Index = 0; 06898 /* 06899 * Fill the token stack with NULLs if debugging is enabled. 06900 */ 06901 #ifdef DEBUG 06902 for (i = TS_DEPTH; i--; TokenStack[i] = NULL) 06903 if (TokenStack[i]) 06904 Free(TokenStack[i]); 06905 TSP = 0; 06906 #endif /* DEBUG */ 06907 /* 06908 * Go parse things! 06909 */ 06910 edifparse(); 06911 } 06912 /* 06913 * Match token: 06914 * 06915 * The passed string is looked up in the current context's token 06916 * list to see if it is enabled. If so the token value is returned, 06917 * if not then zero. 06918 */ 06919 static int MatchToken(register char * str) 06920 { 06921 /* 06922 * Locals. 06923 */ 06924 register TokenCar *wlk,*owk; 06925 /* 06926 * Convert the string to the proper form, then search the token 06927 * carrier list for a match. 06928 */ 06929 str = FindKeyword(str); 06930 for (owk = NULL, wlk = CSP->Context->Token; wlk; wlk = (owk = wlk)->Next) 06931 if (str == wlk->Token->Name){ 06932 if (owk){ 06933 owk->Next = wlk->Next; 06934 wlk->Next = CSP->Context->Token; 06935 CSP->Context->Token = wlk; 06936 } 06937 return (wlk->Token->Code); 06938 } 06939 return (0); 06940 } 06941 /* 06942 * Match context: 06943 * 06944 * If the passed keyword string is within the current context, the 06945 * new context is pushed and token value is returned. A zero otherwise. 06946 */ 06947 static int MatchContext(register char * str) 06948 { 06949 /* 06950 * Locals. 06951 */ 06952 register ContextCar *wlk,*owk; 06953 /* 06954 * See if the context is present. 06955 */ 06956 str = FindKeyword(str); 06957 for (owk = NULL, wlk = CSP->Context->Context; wlk; wlk = (owk = wlk)->Next) 06958 if (str == wlk->Context->Name){ 06959 if (owk){ 06960 owk->Next = wlk->Next; 06961 wlk->Next = CSP->Context->Context; 06962 CSP->Context->Context = wlk; 06963 } 06964 /* 06965 * If a single context, make sure it isn't already used. 06966 */ 06967 if (wlk->u.Single){ 06968 register UsedCar *usc; 06969 for (usc = CSP->u.Used; usc; usc = usc->Next) 06970 if (usc->Code == wlk->Context->Code) 06971 break; 06972 if (usc){ 06973 sprintf(CharBuf,"'%s' is used more than once within '%s'", 06974 str,CSP->Context->Name); 06975 yyerror(CharBuf); 06976 } else { 06977 usc = (UsedCar *) Malloc(sizeof(UsedCar)); 06978 usc->Next = CSP->u.Used; 06979 (CSP->u.Used = usc)->Code = wlk->Context->Code; 06980 } 06981 } 06982 /* 06983 * Push the new context. 06984 */ 06985 owk = (ContextCar *) Malloc(sizeof(ContextCar)); 06986 owk->Next = CSP; 06987 (CSP = owk)->Context = wlk->Context; 06988 owk->u.Used = NULL; 06989 return (wlk->Context->Code); 06990 } 06991 return (0); 06992 } 06993 /* 06994 * PopC: 06995 * 06996 * This pops the current context. 06997 */ 06998 static void PopC() 06999 { 07000 /* 07001 * Locals. 07002 */ 07003 register UsedCar *usc; 07004 register ContextCar *csp; 07005 /* 07006 * Release single markers and pop context. 07007 */ 07008 while ( (usc = CSP->u.Used) ){ 07009 CSP->u.Used = usc->Next; 07010 Free(usc); 07011 } 07012 csp = CSP->Next; 07013 Free(CSP); 07014 CSP = csp; 07015 } 07016 /* 07017 * Lexical analyzer states. 07018 */ 07019 #define L_START 0 07020 #define L_INT 1 07021 #define L_IDENT 2 07022 #define L_KEYWORD 3 07023 #define L_STRING 4 07024 #define L_KEYWORD2 5 07025 #define L_ASCIICHAR 6 07026 #define L_ASCIICHAR2 7 07027 /* 07028 * yylex: 07029 * 07030 * This is the lexical analyzer called by the YACC/BISON parser. 07031 * It returns a pretty restricted set of token types and does the 07032 * context movement when acceptable keywords are found. The token 07033 * value returned is a NULL terminated string to allocated storage 07034 * (ie - it should get released some time) with some restrictions. 07035 * The token value for integers is strips a leading '+' if present. 07036 * String token values have the leading and trailing '"'-s stripped. 07037 * '%' conversion characters in string values are passed converted. 07038 * The '(' and ')' characters do not have a token value. 07039 */ 07040 static int yylex() 07041 { 07042 /* 07043 * Locals. 07044 */ 07045 register int c,s,l; 07046 /* 07047 * Keep on sucking up characters until we find something which 07048 * explicitly forces us out of this function. 07049 */ 07050 for (s = L_START, l = 0; 1;){ 07051 yytext[l++] = c = Getc(Input); 07052 switch (s){ 07053 /* 07054 * Starting state, look for something resembling a token. 07055 */ 07056 case L_START: 07057 if (isdigit(c) || c == '-') 07058 s = L_INT; 07059 else if (isalpha(c) || c == '&') 07060 s = L_IDENT; 07061 else if (isspace(c)){ 07062 if (c == '\n') 07063 LineNumber += 1; 07064 l = 0; 07065 } else if (c == '('){ 07066 l = 0; 07067 s = L_KEYWORD; 07068 } else if (c == '"') 07069 s = L_STRING; 07070 else if (c == '+'){ 07071 l = 0; /* strip '+' */ 07072 s = L_INT; 07073 } else if (c == EOF) 07074 return ('\0'); 07075 else { 07076 yytext[1] = '\0'; 07077 Stack(yytext,c); 07078 return (c); 07079 } 07080 break; 07081 /* 07082 * Suck up the integer digits. 07083 */ 07084 case L_INT: 07085 if (isdigit(c)) 07086 break; 07087 Ungetc(c); 07088 yytext[--l] = '\0'; 07089 yylval.s = strcpy((char *)Malloc(l + 1),yytext); 07090 Stack(yytext,EDIF_TOK_INT); 07091 return (EDIF_TOK_INT); 07092 /* 07093 * Grab an identifier, see if the current context enables 07094 * it with a specific token value. 07095 */ 07096 case L_IDENT: 07097 if (isalpha(c) || isdigit(c) || c == '_') 07098 break; 07099 Ungetc(c); 07100 yytext[--l] = '\0'; 07101 if (CSP->Context->Token && (c = MatchToken(yytext))){ 07102 Stack(yytext,c); 07103 return (c); 07104 } 07105 yylval.s = strcpy((char *)Malloc(l + 1),yytext); 07106 Stack(yytext, EDIF_TOK_IDENT); 07107 return (EDIF_TOK_IDENT); 07108 /* 07109 * Scan until you find the start of an identifier, discard 07110 * any whitespace found. On no identifier, return a '('. 07111 */ 07112 case L_KEYWORD: 07113 if (isalpha(c) || c == '&'){ 07114 s = L_KEYWORD2; 07115 break; 07116 } else if (isspace(c)){ 07117 l = 0; 07118 break; 07119 } 07120 Ungetc(c); 07121 Stack("(",'('); 07122 return ('('); 07123 /* 07124 * Suck up the keyword identifier, if it matches the set of 07125 * allowable contexts then return its token value and push 07126 * the context, otherwise just return the identifier string. 07127 */ 07128 case L_KEYWORD2: 07129 if (isalpha(c) || isdigit(c) || c == '_') 07130 break; 07131 Ungetc(c); 07132 yytext[--l] = '\0'; 07133 if ( (c = MatchContext(yytext)) ){ 07134 Stack(yytext,c); 07135 return (c); 07136 } 07137 yylval.s = strcpy((char *)Malloc(l + 1),yytext); 07138 Stack(yytext, EDIF_TOK_KEYWORD); 07139 return (EDIF_TOK_KEYWORD); 07140 /* 07141 * Suck up string characters but once resolved they should 07142 * be deposited in the string bucket because they can be 07143 * arbitrarily long. 07144 */ 07145 case L_STRING: 07146 if (c == '\n') 07147 LineNumber += 1; 07148 else if (c == '\r') 07149 ; 07150 else if (c == '"' || c == EOF){ 07151 yylval.s = FormString(); 07152 Stack(yylval.s, EDIF_TOK_STR); 07153 return (EDIF_TOK_STR); 07154 } else if (c == '%') 07155 s = L_ASCIICHAR; 07156 else 07157 PushString(c); 07158 l = 0; 07159 break; 07160 /* 07161 * Skip white space and look for integers to be pushed 07162 * as characters. 07163 */ 07164 case L_ASCIICHAR: 07165 if (isdigit(c)){ 07166 s = L_ASCIICHAR2; 07167 break; 07168 } else if (c == '%' || c == EOF) 07169 s = L_STRING; 07170 else if (c == '\n') 07171 LineNumber += 1; 07172 l = 0; 07173 break; 07174 /* 07175 * Convert the accumulated integer into a char and push. 07176 */ 07177 case L_ASCIICHAR2: 07178 if (isdigit(c)) 07179 break; 07180 Ungetc(c); 07181 yytext[--l] = '\0'; 07182 PushString(atoi(yytext)); 07183 s = L_ASCIICHAR; 07184 l = 0; 07185 break; 07186 } 07187 } 07188 } 07189