/home/coin/SVN-release/OS-2.4.1/OS/src/OSParsers/OSParseosol.tab.cpp

Go to the documentation of this file.
00001 /* A Bison parser, made by GNU Bison 2.3.  */
00002 
00003 /* Skeleton implementation for Bison's Yacc-like parsers in C
00004 
00005    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
00006    Free Software Foundation, Inc.
00007 
00008    This program is free software; you can redistribute it and/or modify
00009    it under the terms of the GNU General Public License as published by
00010    the Free Software Foundation; either version 2, or (at your option)
00011    any later version.
00012 
00013    This program is distributed in the hope that it will be useful,
00014    but WITHOUT ANY WARRANTY; without even the implied warranty of
00015    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016    GNU General Public License for more details.
00017 
00018    You should have received a copy of the GNU General Public License
00019    along with this program; if not, write to the Free Software
00020    Foundation, Inc., 51 Franklin Street, Fifth Floor,
00021    Boston, MA 02110-1301, USA.  */
00022 
00023 /* As a special exception, you may create a larger work that contains
00024    part or all of the Bison parser skeleton and distribute that work
00025    under terms of your choice, so long as that work isn't itself a
00026    parser generator using the skeleton or a modified version thereof
00027    as a parser skeleton.  Alternatively, if you modify or redistribute
00028    the parser skeleton itself, you may (at your option) remove this
00029    special exception, which will cause the skeleton and the resulting
00030    Bison output files to be licensed under the GNU General Public
00031    License without this special exception.
00032 
00033    This special exception was added by the Free Software Foundation in
00034    version 2.2 of Bison.  */
00035 
00036 /* C LALR(1) parser skeleton written by Richard Stallman, by
00037    simplifying the original so-called "semantic" parser.  */
00038 
00039 /* All symbols defined below should begin with yy or YY, to avoid
00040    infringing on user name space.  This should be done even for local
00041    variables, as they might otherwise be expanded by user macros.
00042    There are some unavoidable exceptions within include files to
00043    define necessary library symbols; they are noted "INFRINGES ON
00044    USER NAME SPACE" below.  */
00045 
00046 /* Identify Bison output.  */
00047 #define YYBISON 1
00048 
00049 /* Bison version.  */
00050 #define YYBISON_VERSION "2.3"
00051 
00052 /* Skeleton name.  */
00053 #define YYSKELETON_NAME "yacc.c"
00054 
00055 /* Pure parsers.  */
00056 #define YYPURE 1
00057 
00058 /* Using locations.  */
00059 #define YYLSP_NEEDED 1
00060 
00061 /* Substitute the variable and function names.  */
00062 #define yyparse osolparse
00063 #define yylex   osollex
00064 #define yyerror osolerror
00065 #define yylval  osollval
00066 #define yychar  osolchar
00067 #define yydebug osoldebug
00068 #define yynerrs osolnerrs
00069 #define yylloc osollloc
00070 
00071 /* Tokens.  */
00072 #ifndef YYTOKENTYPE
00073 # define YYTOKENTYPE
00074    /* Put the tokens into the symbol table, so that GDB and other debuggers
00075       know about them.  */
00076    enum yytokentype {
00077      ATTRIBUTETEXT = 258,
00078      ELEMENTTEXT = 259,
00079      ITEMTEXT = 260,
00080      INTEGER = 261,
00081      DOUBLE = 262,
00082      QUOTE = 263,
00083      TWOQUOTES = 264,
00084      GREATERTHAN = 265,
00085      ENDOFELEMENT = 266,
00086      OSOLSTART = 267,
00087      OSOLSTARTEMPTY = 268,
00088      OSOLATTRIBUTETEXT = 269,
00089      OSOLEND = 270,
00090      NUMBEROFOTHEROPTIONSATT = 271,
00091      NUMBEROFENUMERATIONSATT = 272,
00092      NUMBEROFJOBIDSATT = 273,
00093      NUMBEROFPATHSATT = 274,
00094      NUMBEROFPATHPAIRSATT = 275,
00095      FROMATT = 276,
00096      TOATT = 277,
00097      MAKECOPYATT = 278,
00098      CATEGORYATT = 279,
00099      TYPEATT = 280,
00100      GROUPWEIGHTATT = 281,
00101      NUMBEROFPROCESSESATT = 282,
00102      NUMBEROFSOLVEROPTIONSATT = 283,
00103      NUMBEROFSOSATT = 284,
00104      NUMBEROFVARIABLESATT = 285,
00105      NUMBEROFOBJECTIVESATT = 286,
00106      NUMBEROFCONSTRAINTSATT = 287,
00107      NUMBEROFOTHERVARIABLEOPTIONSATT = 288,
00108      NUMBEROFOTHEROBJECTIVEOPTIONSATT = 289,
00109      NUMBEROFOTHERCONSTRAINTOPTIONSATT = 290,
00110      NUMBEROFITEMSATT = 291,
00111      NUMBEROFVARATT = 292,
00112      NUMBEROFOBJATT = 293,
00113      NUMBEROFCONATT = 294,
00114      NUMBEROFELATT = 295,
00115      NAMEATT = 296,
00116      IDXATT = 297,
00117      SOSIDXATT = 298,
00118      VALUEATT = 299,
00119      UNITATT = 300,
00120      DESCRIPTIONATT = 301,
00121      EMPTYTYPEATT = 302,
00122      EMPTYNAMEATT = 303,
00123      EMPTYCATEGORYATT = 304,
00124      EMPTYDESCRIPTIONATT = 305,
00125      EMPTYUNITATT = 306,
00126      EMPTYVALUEATT = 307,
00127      EMPTYLBVALUEATT = 308,
00128      EMPTYUBVALUEATT = 309,
00129      LBVALUEATT = 310,
00130      UBVALUEATT = 311,
00131      EMPTYLBDUALVALUEATT = 312,
00132      EMPTYUBDUALVALUEATT = 313,
00133      LBDUALVALUEATT = 314,
00134      UBDUALVALUEATT = 315,
00135      SOLVERATT = 316,
00136      EMPTYSOLVERATT = 317,
00137      WEIGHTATT = 318,
00138      EMPTYWEIGHTATT = 319,
00139      TRANSPORTTYPEATT = 320,
00140      LOCATIONTYPEATT = 321,
00141      HEADERSTART = 322,
00142      HEADEREND = 323,
00143      GENERALSTART = 324,
00144      GENERALEND = 325,
00145      SYSTEMSTART = 326,
00146      SYSTEMEND = 327,
00147      SERVICESTART = 328,
00148      SERVICEEND = 329,
00149      JOBSTART = 330,
00150      JOBEND = 331,
00151      OPTIMIZATIONSTART = 332,
00152      OPTIMIZATIONEND = 333,
00153      FILENAMESTART = 334,
00154      FILENAMEEND = 335,
00155      FILENAMEEMPTY = 336,
00156      FILENAMESTARTANDEND = 337,
00157      FILESOURCESTART = 338,
00158      FILESOURCEEND = 339,
00159      FILESOURCEEMPTY = 340,
00160      FILESOURCESTARTANDEND = 341,
00161      FILEDESCRIPTIONSTART = 342,
00162      FILEDESCRIPTIONEND = 343,
00163      FILEDESCRIPTIONEMPTY = 344,
00164      FILEDESCRIPTIONSTARTANDEND = 345,
00165      FILECREATORSTART = 346,
00166      FILECREATOREND = 347,
00167      FILECREATOREMPTY = 348,
00168      FILECREATORSTARTANDEND = 349,
00169      FILELICENCESTART = 350,
00170      FILELICENCEEND = 351,
00171      FILELICENCEEMPTY = 352,
00172      FILELICENCESTARTANDEND = 353,
00173      SERVICEURISTART = 354,
00174      SERVICEURIEND = 355,
00175      SERVICENAMESTART = 356,
00176      SERVICENAMEEND = 357,
00177      INSTANCENAMESTART = 358,
00178      INSTANCENAMEEND = 359,
00179      INSTANCELOCATIONSTART = 360,
00180      INSTANCELOCATIONEND = 361,
00181      JOBIDSTART = 362,
00182      JOBIDEND = 363,
00183      SOLVERTOINVOKESTART = 364,
00184      SOLVERTOINVOKEEND = 365,
00185      LICENSESTART = 366,
00186      LICENSEEND = 367,
00187      USERNAMESTART = 368,
00188      USERNAMEEND = 369,
00189      PASSWORDSTART = 370,
00190      PASSWORDEND = 371,
00191      CONTACTSTART = 372,
00192      CONTACTEND = 373,
00193      OTHEROPTIONSSTART = 374,
00194      OTHEROPTIONSEND = 375,
00195      OTHERSTART = 376,
00196      OTHEREND = 377,
00197      MINDISKSPACESTART = 378,
00198      MINDISKSPACEEND = 379,
00199      MINMEMORYSTART = 380,
00200      MINMEMORYEND = 381,
00201      MINCPUSPEEDSTART = 382,
00202      MINCPUSPEEDEND = 383,
00203      MINCPUNUMBERSTART = 384,
00204      MINCPUNUMBEREND = 385,
00205      SERVICETYPESTART = 386,
00206      SERVICETYPEEND = 387,
00207      MAXTIMESTART = 388,
00208      MAXTIMEEND = 389,
00209      REQUESTEDSTARTTIMESTART = 390,
00210      REQUESTEDSTARTTIMEEND = 391,
00211      DEPENDENCIESSTART = 392,
00212      DEPENDENCIESEND = 393,
00213      REQUIREDDIRECTORIESSTART = 394,
00214      REQUIREDDIRECTORIESEND = 395,
00215      REQUIREDFILESSTART = 396,
00216      REQUIREDFILESEND = 397,
00217      PATHSTART = 398,
00218      PATHEND = 399,
00219      PATHPAIRSTART = 400,
00220      PATHPAIREND = 401,
00221      DIRECTORIESTOMAKESTART = 402,
00222      DIRECTORIESTOMAKEEND = 403,
00223      FILESTOMAKESTART = 404,
00224      FILESTOMAKEEND = 405,
00225      DIRECTORIESTODELETESTART = 406,
00226      DIRECTORIESTODELETEEND = 407,
00227      FILESTODELETESTART = 408,
00228      FILESTODELETEEND = 409,
00229      INPUTDIRECTORIESTOMOVESTART = 410,
00230      INPUTDIRECTORIESTOMOVEEND = 411,
00231      INPUTFILESTOMOVESTART = 412,
00232      INPUTFILESTOMOVEEND = 413,
00233      OUTPUTDIRECTORIESTOMOVESTART = 414,
00234      OUTPUTDIRECTORIESTOMOVEEND = 415,
00235      OUTPUTFILESTOMOVESTART = 416,
00236      OUTPUTFILESTOMOVEEND = 417,
00237      PROCESSESTOKILLSTART = 418,
00238      PROCESSESTOKILLEND = 419,
00239      PROCESSSTART = 420,
00240      PROCESSEND = 421,
00241      VARIABLESSTART = 422,
00242      VARIABLESEND = 423,
00243      INITIALVARIABLEVALUESSTART = 424,
00244      INITIALVARIABLEVALUESEND = 425,
00245      VARSTART = 426,
00246      VAREND = 427,
00247      INITIALVARIABLEVALUESSTRINGSTART = 428,
00248      INITIALVARIABLEVALUESSTRINGEND = 429,
00249      INITIALBASISSTATUSSTART = 430,
00250      INITIALBASISSTATUSEND = 431,
00251      BASICSTART = 432,
00252      BASICEND = 433,
00253      ATUPPERSTART = 434,
00254      ATUPPEREND = 435,
00255      ATLOWERSTART = 436,
00256      ATLOWEREND = 437,
00257      SUPERBASICSTART = 438,
00258      SUPERBASICEND = 439,
00259      ISFREESTART = 440,
00260      ISFREEEND = 441,
00261      UNKNOWNSTART = 442,
00262      UNKNOWNEND = 443,
00263      INTEGERVARIABLEBRANCHINGWEIGHTSSTART = 444,
00264      INTEGERVARIABLEBRANCHINGWEIGHTSEND = 445,
00265      SOSVARIABLEBRANCHINGWEIGHTSSTART = 446,
00266      SOSVARIABLEBRANCHINGWEIGHTSEND = 447,
00267      SOSSTART = 448,
00268      SOSEND = 449,
00269      OBJECTIVESSTART = 450,
00270      OBJECTIVESEND = 451,
00271      INITIALOBJECTIVEVALUESSTART = 452,
00272      INITIALOBJECTIVEVALUESEND = 453,
00273      OBJSTART = 454,
00274      OBJEND = 455,
00275      INITIALOBJECTIVEBOUNDSSTART = 456,
00276      INITIALOBJECTIVEBOUNDSEND = 457,
00277      CONSTRAINTSSTART = 458,
00278      CONSTRAINTSEND = 459,
00279      INITIALCONSTRAINTVALUESSTART = 460,
00280      INITIALCONSTRAINTVALUESEND = 461,
00281      CONSTART = 462,
00282      CONEND = 463,
00283      INITIALDUALVALUESSTART = 464,
00284      INITIALDUALVALUESEND = 465,
00285      SOLVEROPTIONSSTART = 466,
00286      SOLVEROPTIONSEND = 467,
00287      SOLVEROPTIONSTART = 468,
00288      SOLVEROPTIONEND = 469,
00289      ENUMERATIONSTART = 470,
00290      ENUMERATIONEND = 471,
00291      ITEMEMPTY = 472,
00292      ITEMSTART = 473,
00293      ITEMEND = 474,
00294      ITEMSTARTANDEND = 475,
00295      BASE64START = 476,
00296      BASE64END = 477,
00297      INCRATT = 478,
00298      MULTATT = 479,
00299      SIZEOFATT = 480,
00300      ELSTART = 481,
00301      ELEND = 482,
00302      DUMMY = 483
00303    };
00304 #endif
00305 /* Tokens.  */
00306 #define ATTRIBUTETEXT 258
00307 #define ELEMENTTEXT 259
00308 #define ITEMTEXT 260
00309 #define INTEGER 261
00310 #define DOUBLE 262
00311 #define QUOTE 263
00312 #define TWOQUOTES 264
00313 #define GREATERTHAN 265
00314 #define ENDOFELEMENT 266
00315 #define OSOLSTART 267
00316 #define OSOLSTARTEMPTY 268
00317 #define OSOLATTRIBUTETEXT 269
00318 #define OSOLEND 270
00319 #define NUMBEROFOTHEROPTIONSATT 271
00320 #define NUMBEROFENUMERATIONSATT 272
00321 #define NUMBEROFJOBIDSATT 273
00322 #define NUMBEROFPATHSATT 274
00323 #define NUMBEROFPATHPAIRSATT 275
00324 #define FROMATT 276
00325 #define TOATT 277
00326 #define MAKECOPYATT 278
00327 #define CATEGORYATT 279
00328 #define TYPEATT 280
00329 #define GROUPWEIGHTATT 281
00330 #define NUMBEROFPROCESSESATT 282
00331 #define NUMBEROFSOLVEROPTIONSATT 283
00332 #define NUMBEROFSOSATT 284
00333 #define NUMBEROFVARIABLESATT 285
00334 #define NUMBEROFOBJECTIVESATT 286
00335 #define NUMBEROFCONSTRAINTSATT 287
00336 #define NUMBEROFOTHERVARIABLEOPTIONSATT 288
00337 #define NUMBEROFOTHEROBJECTIVEOPTIONSATT 289
00338 #define NUMBEROFOTHERCONSTRAINTOPTIONSATT 290
00339 #define NUMBEROFITEMSATT 291
00340 #define NUMBEROFVARATT 292
00341 #define NUMBEROFOBJATT 293
00342 #define NUMBEROFCONATT 294
00343 #define NUMBEROFELATT 295
00344 #define NAMEATT 296
00345 #define IDXATT 297
00346 #define SOSIDXATT 298
00347 #define VALUEATT 299
00348 #define UNITATT 300
00349 #define DESCRIPTIONATT 301
00350 #define EMPTYTYPEATT 302
00351 #define EMPTYNAMEATT 303
00352 #define EMPTYCATEGORYATT 304
00353 #define EMPTYDESCRIPTIONATT 305
00354 #define EMPTYUNITATT 306
00355 #define EMPTYVALUEATT 307
00356 #define EMPTYLBVALUEATT 308
00357 #define EMPTYUBVALUEATT 309
00358 #define LBVALUEATT 310
00359 #define UBVALUEATT 311
00360 #define EMPTYLBDUALVALUEATT 312
00361 #define EMPTYUBDUALVALUEATT 313
00362 #define LBDUALVALUEATT 314
00363 #define UBDUALVALUEATT 315
00364 #define SOLVERATT 316
00365 #define EMPTYSOLVERATT 317
00366 #define WEIGHTATT 318
00367 #define EMPTYWEIGHTATT 319
00368 #define TRANSPORTTYPEATT 320
00369 #define LOCATIONTYPEATT 321
00370 #define HEADERSTART 322
00371 #define HEADEREND 323
00372 #define GENERALSTART 324
00373 #define GENERALEND 325
00374 #define SYSTEMSTART 326
00375 #define SYSTEMEND 327
00376 #define SERVICESTART 328
00377 #define SERVICEEND 329
00378 #define JOBSTART 330
00379 #define JOBEND 331
00380 #define OPTIMIZATIONSTART 332
00381 #define OPTIMIZATIONEND 333
00382 #define FILENAMESTART 334
00383 #define FILENAMEEND 335
00384 #define FILENAMEEMPTY 336
00385 #define FILENAMESTARTANDEND 337
00386 #define FILESOURCESTART 338
00387 #define FILESOURCEEND 339
00388 #define FILESOURCEEMPTY 340
00389 #define FILESOURCESTARTANDEND 341
00390 #define FILEDESCRIPTIONSTART 342
00391 #define FILEDESCRIPTIONEND 343
00392 #define FILEDESCRIPTIONEMPTY 344
00393 #define FILEDESCRIPTIONSTARTANDEND 345
00394 #define FILECREATORSTART 346
00395 #define FILECREATOREND 347
00396 #define FILECREATOREMPTY 348
00397 #define FILECREATORSTARTANDEND 349
00398 #define FILELICENCESTART 350
00399 #define FILELICENCEEND 351
00400 #define FILELICENCEEMPTY 352
00401 #define FILELICENCESTARTANDEND 353
00402 #define SERVICEURISTART 354
00403 #define SERVICEURIEND 355
00404 #define SERVICENAMESTART 356
00405 #define SERVICENAMEEND 357
00406 #define INSTANCENAMESTART 358
00407 #define INSTANCENAMEEND 359
00408 #define INSTANCELOCATIONSTART 360
00409 #define INSTANCELOCATIONEND 361
00410 #define JOBIDSTART 362
00411 #define JOBIDEND 363
00412 #define SOLVERTOINVOKESTART 364
00413 #define SOLVERTOINVOKEEND 365
00414 #define LICENSESTART 366
00415 #define LICENSEEND 367
00416 #define USERNAMESTART 368
00417 #define USERNAMEEND 369
00418 #define PASSWORDSTART 370
00419 #define PASSWORDEND 371
00420 #define CONTACTSTART 372
00421 #define CONTACTEND 373
00422 #define OTHEROPTIONSSTART 374
00423 #define OTHEROPTIONSEND 375
00424 #define OTHERSTART 376
00425 #define OTHEREND 377
00426 #define MINDISKSPACESTART 378
00427 #define MINDISKSPACEEND 379
00428 #define MINMEMORYSTART 380
00429 #define MINMEMORYEND 381
00430 #define MINCPUSPEEDSTART 382
00431 #define MINCPUSPEEDEND 383
00432 #define MINCPUNUMBERSTART 384
00433 #define MINCPUNUMBEREND 385
00434 #define SERVICETYPESTART 386
00435 #define SERVICETYPEEND 387
00436 #define MAXTIMESTART 388
00437 #define MAXTIMEEND 389
00438 #define REQUESTEDSTARTTIMESTART 390
00439 #define REQUESTEDSTARTTIMEEND 391
00440 #define DEPENDENCIESSTART 392
00441 #define DEPENDENCIESEND 393
00442 #define REQUIREDDIRECTORIESSTART 394
00443 #define REQUIREDDIRECTORIESEND 395
00444 #define REQUIREDFILESSTART 396
00445 #define REQUIREDFILESEND 397
00446 #define PATHSTART 398
00447 #define PATHEND 399
00448 #define PATHPAIRSTART 400
00449 #define PATHPAIREND 401
00450 #define DIRECTORIESTOMAKESTART 402
00451 #define DIRECTORIESTOMAKEEND 403
00452 #define FILESTOMAKESTART 404
00453 #define FILESTOMAKEEND 405
00454 #define DIRECTORIESTODELETESTART 406
00455 #define DIRECTORIESTODELETEEND 407
00456 #define FILESTODELETESTART 408
00457 #define FILESTODELETEEND 409
00458 #define INPUTDIRECTORIESTOMOVESTART 410
00459 #define INPUTDIRECTORIESTOMOVEEND 411
00460 #define INPUTFILESTOMOVESTART 412
00461 #define INPUTFILESTOMOVEEND 413
00462 #define OUTPUTDIRECTORIESTOMOVESTART 414
00463 #define OUTPUTDIRECTORIESTOMOVEEND 415
00464 #define OUTPUTFILESTOMOVESTART 416
00465 #define OUTPUTFILESTOMOVEEND 417
00466 #define PROCESSESTOKILLSTART 418
00467 #define PROCESSESTOKILLEND 419
00468 #define PROCESSSTART 420
00469 #define PROCESSEND 421
00470 #define VARIABLESSTART 422
00471 #define VARIABLESEND 423
00472 #define INITIALVARIABLEVALUESSTART 424
00473 #define INITIALVARIABLEVALUESEND 425
00474 #define VARSTART 426
00475 #define VAREND 427
00476 #define INITIALVARIABLEVALUESSTRINGSTART 428
00477 #define INITIALVARIABLEVALUESSTRINGEND 429
00478 #define INITIALBASISSTATUSSTART 430
00479 #define INITIALBASISSTATUSEND 431
00480 #define BASICSTART 432
00481 #define BASICEND 433
00482 #define ATUPPERSTART 434
00483 #define ATUPPEREND 435
00484 #define ATLOWERSTART 436
00485 #define ATLOWEREND 437
00486 #define SUPERBASICSTART 438
00487 #define SUPERBASICEND 439
00488 #define ISFREESTART 440
00489 #define ISFREEEND 441
00490 #define UNKNOWNSTART 442
00491 #define UNKNOWNEND 443
00492 #define INTEGERVARIABLEBRANCHINGWEIGHTSSTART 444
00493 #define INTEGERVARIABLEBRANCHINGWEIGHTSEND 445
00494 #define SOSVARIABLEBRANCHINGWEIGHTSSTART 446
00495 #define SOSVARIABLEBRANCHINGWEIGHTSEND 447
00496 #define SOSSTART 448
00497 #define SOSEND 449
00498 #define OBJECTIVESSTART 450
00499 #define OBJECTIVESEND 451
00500 #define INITIALOBJECTIVEVALUESSTART 452
00501 #define INITIALOBJECTIVEVALUESEND 453
00502 #define OBJSTART 454
00503 #define OBJEND 455
00504 #define INITIALOBJECTIVEBOUNDSSTART 456
00505 #define INITIALOBJECTIVEBOUNDSEND 457
00506 #define CONSTRAINTSSTART 458
00507 #define CONSTRAINTSEND 459
00508 #define INITIALCONSTRAINTVALUESSTART 460
00509 #define INITIALCONSTRAINTVALUESEND 461
00510 #define CONSTART 462
00511 #define CONEND 463
00512 #define INITIALDUALVALUESSTART 464
00513 #define INITIALDUALVALUESEND 465
00514 #define SOLVEROPTIONSSTART 466
00515 #define SOLVEROPTIONSEND 467
00516 #define SOLVEROPTIONSTART 468
00517 #define SOLVEROPTIONEND 469
00518 #define ENUMERATIONSTART 470
00519 #define ENUMERATIONEND 471
00520 #define ITEMEMPTY 472
00521 #define ITEMSTART 473
00522 #define ITEMEND 474
00523 #define ITEMSTARTANDEND 475
00524 #define BASE64START 476
00525 #define BASE64END 477
00526 #define INCRATT 478
00527 #define MULTATT 479
00528 #define SIZEOFATT 480
00529 #define ELSTART 481
00530 #define ELEND 482
00531 #define DUMMY 483
00532 
00533 
00534 
00535 
00536 /* Copy the first part of user declarations.  */
00537 
00538 
00539 
00540 
00541 #include "OSMathUtil.h"
00542 #include "OSParameters.h"
00543 #include "OSGeneral.h"
00544 #include "OSConfig.h"
00545 #include "OSErrorClass.h"
00546 #include "OSOption.h"
00547 #include "OSoLParserData.h"
00548 #include "OSgLParserData.h"
00549 #include "OSBase64.h"
00550 
00551 #include <iostream>
00552 #include <sstream>
00553 #include <cstdio>
00554 #include <cstring>
00555 
00556 //#define DEBUG
00557 
00558 #ifdef DEBUG
00559 #define YYDEBUG 1
00560 #endif
00561 
00562 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00563 YY_BUFFER_STATE osol_scan_string (const char *yy_str , void* yyscanner  );
00564 int osollex_init(void** ptr_yy_globals);
00565 int osollex_destroy (void* yyscanner );
00566 int osolget_lineno( void* yyscanner);
00567 char *osolget_text (void* yyscanner );
00568 void osolset_lineno (int line_number , void* yyscanner );
00569 void osolset_extra (OSoLParserData* parserData , void* yyscanner );
00570 void  yygetOSOption(const char *ch, OSOption* m_osoption, OSoLParserData *m_parserData, OSgLParserData *osglData ) throw(ErrorClass);
00571 void osol_empty_vectors( OSoLParserData* parserData);
00572 void osgl_empty_vectors( OSgLParserData* osglData);
00573 
00574 
00575 
00576 
00577 
00578 /* Enabling traces.  */
00579 #ifndef YYDEBUG
00580 # define YYDEBUG 0
00581 #endif
00582 
00583 /* Enabling verbose error messages.  */
00584 #ifdef YYERROR_VERBOSE
00585 # undef YYERROR_VERBOSE
00586 # define YYERROR_VERBOSE 1
00587 #else
00588 # define YYERROR_VERBOSE 0
00589 #endif
00590 
00591 /* Enabling the token table.  */
00592 #ifndef YYTOKEN_TABLE
00593 # define YYTOKEN_TABLE 0
00594 #endif
00595 
00596 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
00597 typedef union YYSTYPE
00598 
00599 {
00600         double dval;
00601         int ival;
00602         char* sval;
00603 }
00604 /* Line 193 of yacc.c.  */
00605 
00606         YYSTYPE;
00607 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
00608 # define YYSTYPE_IS_DECLARED 1
00609 # define YYSTYPE_IS_TRIVIAL 1
00610 #endif
00611 
00612 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
00613 typedef struct YYLTYPE
00614 {
00615   int first_line;
00616   int first_column;
00617   int last_line;
00618   int last_column;
00619 } YYLTYPE;
00620 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
00621 # define YYLTYPE_IS_DECLARED 1
00622 # define YYLTYPE_IS_TRIVIAL 1
00623 #endif
00624 
00625 
00626 /* Copy the second part of user declarations.  */
00627 
00628 
00629 
00630 void osolerror(YYLTYPE* type, OSOption *osoption,  OSoLParserData *parserData, OSgLParserData *osglData, const char* errormsg ) ;
00631 int osollex(YYSTYPE* lvalp,  YYLTYPE* llocp, void* scanner);
00632 
00633 #define scanner parserData->scanner
00634 
00635 
00636 /* Line 216 of yacc.c.  */
00637 
00638 
00639 #ifdef short
00640 # undef short
00641 #endif
00642 
00643 #ifdef YYTYPE_UINT8
00644 typedef YYTYPE_UINT8 yytype_uint8;
00645 #else
00646 typedef unsigned char yytype_uint8;
00647 #endif
00648 
00649 #ifdef YYTYPE_INT8
00650 typedef YYTYPE_INT8 yytype_int8;
00651 #elif (defined __STDC__ || defined __C99__FUNC__ \
00652      || defined __cplusplus || defined _MSC_VER)
00653 typedef signed char yytype_int8;
00654 #else
00655 typedef short int yytype_int8;
00656 #endif
00657 
00658 #ifdef YYTYPE_UINT16
00659 typedef YYTYPE_UINT16 yytype_uint16;
00660 #else
00661 typedef unsigned short int yytype_uint16;
00662 #endif
00663 
00664 #ifdef YYTYPE_INT16
00665 typedef YYTYPE_INT16 yytype_int16;
00666 #else
00667 typedef short int yytype_int16;
00668 #endif
00669 
00670 #ifndef YYSIZE_T
00671 # ifdef __SIZE_TYPE__
00672 #  define YYSIZE_T __SIZE_TYPE__
00673 # elif defined size_t
00674 #  define YYSIZE_T size_t
00675 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
00676      || defined __cplusplus || defined _MSC_VER)
00677 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
00678 #  define YYSIZE_T size_t
00679 # else
00680 #  define YYSIZE_T unsigned int
00681 # endif
00682 #endif
00683 
00684 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
00685 
00686 #ifndef YY_
00687 # if YYENABLE_NLS
00688 #  if ENABLE_NLS
00689 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
00690 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
00691 #  endif
00692 # endif
00693 # ifndef YY_
00694 #  define YY_(msgid) msgid
00695 # endif
00696 #endif
00697 
00698 /* Suppress unused-variable warnings by "using" E.  */
00699 #if ! defined lint || defined __GNUC__
00700 # define YYUSE(e) ((void) (e))
00701 #else
00702 # define YYUSE(e) /* empty */
00703 #endif
00704 
00705 /* Identity function, used to suppress warnings about constant conditions.  */
00706 #ifndef lint
00707 # define YYID(n) (n)
00708 #else
00709 #if (defined __STDC__ || defined __C99__FUNC__ \
00710      || defined __cplusplus || defined _MSC_VER)
00711 static int
00712 YYID (int i)
00713 #else
00714 static int
00715 YYID (i)
00716     int i;
00717 #endif
00718 {
00719   return i;
00720 }
00721 #endif
00722 
00723 #if ! defined yyoverflow || YYERROR_VERBOSE
00724 
00725 /* The parser invokes alloca or malloc; define the necessary symbols.  */
00726 
00727 # ifdef YYSTACK_USE_ALLOCA
00728 #  if YYSTACK_USE_ALLOCA
00729 #   ifdef __GNUC__
00730 #    define YYSTACK_ALLOC __builtin_alloca
00731 #   elif defined __BUILTIN_VA_ARG_INCR
00732 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
00733 #   elif defined _AIX
00734 #    define YYSTACK_ALLOC __alloca
00735 #   elif defined _MSC_VER
00736 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
00737 #    define alloca _alloca
00738 #   else
00739 #    define YYSTACK_ALLOC alloca
00740 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00741      || defined __cplusplus || defined _MSC_VER)
00742 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
00743 #     ifndef _STDLIB_H
00744 #      define _STDLIB_H 1
00745 #     endif
00746 #    endif
00747 #   endif
00748 #  endif
00749 # endif
00750 
00751 # ifdef YYSTACK_ALLOC
00752    /* Pacify GCC's `empty if-body' warning.  */
00753 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
00754 #  ifndef YYSTACK_ALLOC_MAXIMUM
00755     /* The OS might guarantee only one guard page at the bottom of the stack,
00756        and a page size can be as small as 4096 bytes.  So we cannot safely
00757        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
00758        to allow for a few compiler-allocated temporary stack slots.  */
00759 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
00760 #  endif
00761 # else
00762 #  define YYSTACK_ALLOC YYMALLOC
00763 #  define YYSTACK_FREE YYFREE
00764 #  ifndef YYSTACK_ALLOC_MAXIMUM
00765 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
00766 #  endif
00767 #  if (defined __cplusplus && ! defined _STDLIB_H \
00768        && ! ((defined YYMALLOC || defined malloc) \
00769              && (defined YYFREE || defined free)))
00770 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
00771 #   ifndef _STDLIB_H
00772 #    define _STDLIB_H 1
00773 #   endif
00774 #  endif
00775 #  ifndef YYMALLOC
00776 #   define YYMALLOC malloc
00777 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00778      || defined __cplusplus || defined _MSC_VER)
00779 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
00780 #   endif
00781 #  endif
00782 #  ifndef YYFREE
00783 #   define YYFREE free
00784 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00785      || defined __cplusplus || defined _MSC_VER)
00786 void free (void *); /* INFRINGES ON USER NAME SPACE */
00787 #   endif
00788 #  endif
00789 # endif
00790 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
00791 
00792 
00793 #if (! defined yyoverflow \
00794      && (! defined __cplusplus \
00795          || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
00796              && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
00797 
00798 /* A type that is properly aligned for any stack member.  */
00799 union yyalloc
00800 {
00801   yytype_int16 yyss;
00802   YYSTYPE yyvs;
00803     YYLTYPE yyls;
00804 };
00805 
00806 /* The size of the maximum gap between one aligned stack and the next.  */
00807 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
00808 
00809 /* The size of an array large to enough to hold all stacks, each with
00810    N elements.  */
00811 # define YYSTACK_BYTES(N) \
00812      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
00813       + 2 * YYSTACK_GAP_MAXIMUM)
00814 
00815 /* Copy COUNT objects from FROM to TO.  The source and destination do
00816    not overlap.  */
00817 # ifndef YYCOPY
00818 #  if defined __GNUC__ && 1 < __GNUC__
00819 #   define YYCOPY(To, From, Count) \
00820       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00821 #  else
00822 #   define YYCOPY(To, From, Count)              \
00823       do                                        \
00824         {                                       \
00825           YYSIZE_T yyi;                         \
00826           for (yyi = 0; yyi < (Count); yyi++)   \
00827             (To)[yyi] = (From)[yyi];            \
00828         }                                       \
00829       while (YYID (0))
00830 #  endif
00831 # endif
00832 
00833 /* Relocate STACK from its old location to the new one.  The
00834    local variables YYSIZE and YYSTACKSIZE give the old and new number of
00835    elements in the stack, and YYPTR gives the new location of the
00836    stack.  Advance YYPTR to a properly aligned location for the next
00837    stack.  */
00838 # define YYSTACK_RELOCATE(Stack)                                        \
00839     do                                                                  \
00840       {                                                                 \
00841         YYSIZE_T yynewbytes;                                            \
00842         YYCOPY (&yyptr->Stack, Stack, yysize);                          \
00843         Stack = &yyptr->Stack;                                          \
00844         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
00845         yyptr += yynewbytes / sizeof (*yyptr);                          \
00846       }                                                                 \
00847     while (YYID (0))
00848 
00849 #endif
00850 
00851 /* YYFINAL -- State number of the termination state.  */
00852 #define YYFINAL  6
00853 /* YYLAST -- Last index in YYTABLE.  */
00854 #define YYLAST   1279
00855 
00856 /* YYNTOKENS -- Number of terminals.  */
00857 #define YYNTOKENS  233
00858 /* YYNNTS -- Number of nonterminals.  */
00859 #define YYNNTS  804
00860 /* YYNRULES -- Number of rules.  */
00861 #define YYNRULES  1196
00862 /* YYNRULES -- Number of states.  */
00863 #define YYNSTATES  1651
00864 
00865 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
00866 #define YYUNDEFTOK  2
00867 #define YYMAXUTOK   483
00868 
00869 #define YYTRANSLATE(YYX)                                                \
00870   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
00871 
00872 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
00873 static const yytype_uint8 yytranslate[] =
00874 {
00875        0,     2,     2,     2,     2,     2,     2,     2,     2,   230,
00876      232,     2,     2,   231,     2,     2,     2,     2,     2,     2,
00877        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00878        2,     2,   229,     2,     2,     2,     2,     2,     2,     2,
00879        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00880        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00881        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00882        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00883        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00884        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00885        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00886        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00887        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00888        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00889        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00890        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00891        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00892        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00893        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00894        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00895        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00896        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00897        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00898        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00899        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00900        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
00901        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
00902       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
00903       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
00904       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
00905       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
00906       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
00907       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
00908       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
00909       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
00910       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
00911      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
00912      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
00913      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
00914      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
00915      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
00916      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
00917      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
00918      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
00919      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
00920      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
00921      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
00922      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
00923      225,   226,   227,   228
00924 };
00925 
00926 #if YYDEBUG
00927 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
00928    YYRHS.  */
00929 static const yytype_uint16 yyprhs[] =
00930 {
00931        0,     0,     3,     7,    11,    13,    15,    16,    18,    20,
00932       22,    24,    28,    30,    31,    38,    39,    42,    44,    46,
00933       48,    50,    54,    60,    61,    63,    65,    67,    69,    71,
00934       75,    76,    78,    80,    82,    84,    86,    90,    91,    93,
00935       95,    97,    99,   101,   105,   106,   108,   110,   112,   114,
00936      116,   120,   121,   123,   125,   127,   129,   131,   135,   136,
00937      139,   141,   143,   145,   148,   150,   154,   156,   158,   161,
00938      163,   165,   167,   169,   171,   173,   175,   177,   179,   181,
00939      183,   186,   188,   190,   192,   195,   197,   201,   203,   206,
00940      208,   210,   212,   215,   217,   221,   223,   226,   228,   230,
00941      232,   235,   237,   241,   243,   247,   249,   250,   252,   256,
00942      258,   260,   263,   265,   269,   271,   274,   276,   278,   280,
00943      283,   285,   289,   291,   294,   296,   298,   300,   303,   305,
00944      309,   311,   314,   316,   318,   320,   323,   325,   329,   331,
00945      334,   336,   338,   340,   343,   345,   349,   351,   354,   356,
00946      358,   360,   363,   365,   369,   371,   375,   377,   378,   380,
00947      384,   386,   388,   391,   393,   397,   399,   403,   405,   407,
00948      409,   411,   414,   416,   420,   422,   424,   427,   431,   433,
00949      435,   436,   439,   441,   443,   445,   448,   450,   451,   454,
00950      456,   458,   460,   463,   465,   469,   471,   473,   476,   478,
00951      480,   482,   484,   486,   490,   492,   494,   495,   498,   500,
00952      502,   506,   508,   512,   514,   516,   517,   520,   522,   524,
00953      528,   530,   534,   536,   538,   539,   542,   544,   546,   550,
00954      552,   556,   558,   559,   561,   565,   567,   571,   573,   575,
00955      577,   579,   582,   584,   588,   590,   592,   595,   599,   601,
00956      603,   604,   607,   609,   611,   613,   616,   618,   619,   622,
00957      624,   626,   628,   631,   633,   637,   639,   641,   644,   646,
00958      648,   651,   653,   655,   657,   660,   662,   666,   668,   672,
00959      674,   676,   678,   680,   683,   685,   689,   691,   693,   696,
00960      700,   702,   704,   705,   708,   710,   712,   714,   717,   719,
00961      720,   723,   725,   727,   729,   732,   734,   738,   740,   742,
00962      745,   747,   749,   751,   753,   755,   757,   759,   761,   763,
00963      765,   767,   769,   771,   773,   775,   779,   781,   782,   784,
00964      786,   788,   791,   793,   797,   799,   801,   804,   806,   808,
00965      810,   813,   815,   819,   821,   825,   827,   829,   831,   833,
00966      836,   838,   842,   844,   847,   852,   856,   858,   860,   862,
00967      864,   867,   869,   873,   875,   878,   883,   887,   889,   891,
00968      893,   895,   898,   900,   904,   906,   909,   914,   918,   920,
00969      922,   924,   926,   929,   931,   935,   937,   940,   945,   949,
00970      951,   953,   955,   957,   960,   962,   966,   968,   971,   976,
00971      980,   982,   984,   986,   988,   991,   993,   997,   999,  1002,
00972     1004,  1008,  1010,  1012,  1014,  1016,  1019,  1021,  1025,  1027,
00973     1030,  1032,  1036,  1038,  1040,  1042,  1044,  1047,  1049,  1053,
00974     1055,  1058,  1060,  1064,  1066,  1068,  1070,  1072,  1075,  1077,
00975     1081,  1083,  1086,  1088,  1092,  1094,  1096,  1098,  1100,  1103,
00976     1105,  1109,  1111,  1114,  1119,  1123,  1125,  1127,  1129,  1131,
00977     1134,  1136,  1140,  1142,  1145,  1150,  1154,  1156,  1158,  1160,
00978     1162,  1165,  1167,  1171,  1173,  1176,  1181,  1185,  1187,  1189,
00979     1191,  1193,  1196,  1198,  1202,  1204,  1206,  1209,  1213,  1215,
00980     1217,  1218,  1221,  1223,  1225,  1227,  1230,  1232,  1233,  1237,
00981     1239,  1241,  1242,  1245,  1247,  1249,  1251,  1253,  1255,  1257,
00982     1261,  1266,  1267,  1271,  1273,  1275,  1276,  1278,  1280,  1282,
00983     1284,  1288,  1295,  1296,  1300,  1302,  1304,  1306,  1308,  1311,
00984     1313,  1317,  1319,  1321,  1324,  1328,  1330,  1332,  1333,  1336,
00985     1338,  1340,  1342,  1345,  1347,  1348,  1352,  1354,  1356,  1358,
00986     1360,  1363,  1365,  1369,  1371,  1373,  1376,  1380,  1382,  1384,
00987     1385,  1388,  1390,  1392,  1394,  1397,  1399,  1400,  1403,  1405,
00988     1407,  1409,  1411,  1415,  1422,  1423,  1427,  1429,  1431,  1433,
00989     1435,  1437,  1441,  1443,  1444,  1448,  1450,  1452,  1454,  1456,
00990     1458,  1462,  1464,  1465,  1469,  1471,  1473,  1475,  1477,  1479,
00991     1483,  1485,  1486,  1490,  1492,  1494,  1496,  1498,  1500,  1504,
00992     1506,  1507,  1511,  1513,  1515,  1517,  1519,  1521,  1525,  1527,
00993     1528,  1532,  1534,  1536,  1538,  1540,  1542,  1546,  1548,  1549,
00994     1553,  1555,  1557,  1559,  1561,  1564,  1566,  1570,  1572,  1574,
00995     1577,  1581,  1583,  1585,  1586,  1589,  1591,  1593,  1595,  1598,
00996     1600,  1601,  1605,  1607,  1612,  1614,  1616,  1619,  1621,  1625,
00997     1627,  1630,  1634,  1636,  1638,  1639,  1642,  1644,  1646,  1648,
00998     1650,  1652,  1655,  1657,  1661,  1662,  1665,  1669,  1671,  1673,
00999     1674,  1677,  1679,  1681,  1683,  1685,  1687,  1689,  1691,  1693,
01000     1695,  1697,  1700,  1702,  1706,  1708,  1710,  1712,  1715,  1719,
01001     1721,  1723,  1724,  1727,  1729,  1731,  1733,  1735,  1737,  1739,
01002     1742,  1744,  1745,  1749,  1751,  1753,  1754,  1756,  1758,  1760,
01003     1762,  1766,  1771,  1772,  1776,  1778,  1780,  1782,  1784,  1787,
01004     1789,  1793,  1795,  1797,  1800,  1804,  1806,  1808,  1809,  1812,
01005     1814,  1816,  1818,  1821,  1823,  1824,  1828,  1830,  1832,  1834,
01006     1836,  1839,  1841,  1845,  1847,  1849,  1852,  1856,  1858,  1860,
01007     1861,  1864,  1866,  1868,  1870,  1872,  1875,  1877,  1878,  1881,
01008     1883,  1885,  1887,  1889,  1893,  1900,  1901,  1905,  1907,  1909,
01009     1911,  1913,  1915,  1919,  1921,  1922,  1926,  1928,  1930,  1932,
01010     1934,  1936,  1940,  1942,  1943,  1947,  1949,  1951,  1953,  1955,
01011     1957,  1961,  1963,  1964,  1968,  1970,  1972,  1974,  1976,  1978,
01012     1982,  1984,  1985,  1989,  1991,  1993,  1995,  1997,  1999,  2003,
01013     2005,  2006,  2010,  2012,  2014,  2016,  2018,  2020,  2024,  2026,
01014     2027,  2030,  2034,  2036,  2038,  2039,  2042,  2044,  2046,  2048,
01015     2050,  2052,  2054,  2056,  2058,  2060,  2062,  2065,  2067,  2071,
01016     2073,  2075,  2077,  2080,  2084,  2086,  2088,  2089,  2092,  2094,
01017     2096,  2098,  2100,  2102,  2104,  2107,  2109,  2110,  2114,  2116,
01018     2118,  2119,  2121,  2123,  2125,  2127,  2131,  2136,  2137,  2141,
01019     2143,  2145,  2147,  2149,  2152,  2154,  2158,  2160,  2162,  2165,
01020     2169,  2171,  2173,  2174,  2177,  2179,  2181,  2183,  2186,  2188,
01021     2189,  2193,  2195,  2197,  2199,  2201,  2204,  2206,  2210,  2212,
01022     2214,  2217,  2221,  2223,  2225,  2226,  2229,  2231,  2233,  2235,
01023     2237,  2240,  2242,  2243,  2246,  2248,  2250,  2252,  2254,  2258,
01024     2265,  2266,  2270,  2272,  2274,  2276,  2278,  2280,  2284,  2286,
01025     2287,  2291,  2293,  2295,  2297,  2299,  2301,  2305,  2307,  2308,
01026     2312,  2314,  2316,  2318,  2320,  2322,  2326,  2328,  2329,  2333,
01027     2335,  2337,  2339,  2341,  2343,  2347,  2349,  2350,  2354,  2356,
01028     2358,  2360,  2362,  2364,  2368,  2370,  2371,  2375,  2377,  2379,
01029     2381,  2383,  2385,  2389,  2391,  2392,  2395,  2399,  2401,  2403,
01030     2404,  2407,  2409,  2411,  2413,  2415,  2417,  2419,  2421,  2423,
01031     2425,  2427,  2430,  2432,  2436,  2438,  2440,  2442,  2445,  2449,
01032     2451,  2453,  2454,  2457,  2459,  2461,  2463,  2465,  2467,  2469,
01033     2472,  2474,  2475,  2479,  2481,  2483,  2485,  2487,  2489,  2493,
01034     2494,  2497,  2501,  2503,  2505,  2507,  2510,  2512,  2514,  2516,
01035     2518,  2520,  2522,  2524,  2526,  2528,  2531,  2533,  2537,  2539,
01036     2541,  2544,  2546,  2548,  2550,  2552,  2554,  2558,  2560,  2564,
01037     2566,  2568,  2569,  2572,  2574,  2576,  2578,  2582,  2586,  2590,
01038     2593,  2595,  2597,  2599,  2601,  2603,  2607,  2609,  2611,  2613,
01039     2615,  2619,  2621,  2626,  2628,  2630,  2635,  2637,  2639,  2641,
01040     2643,  2647,  2649,  2651,  2653,  2655,  2660,  2662,  2664,  2666,
01041     2668,  2672,  2674,  2676,  2678,  2680,  2684,  2686,  2688,  2693,
01042     2695,  2697,  2699,  2701,  2705,  2707,  2709,  2711,  2713,  2717,
01043     2719,  2721,  2723,  2725,  2730,  2732,  2734,  2736,  2738,  2742,
01044     2744,  2746,  2748,  2750,  2754,  2759,  2764,  2769,  2774,  2779,
01045     2784,  2789,  2794,  2799,  2804,  2809,  2814,  2819,  2824,  2829,
01046     2834,  2839,  2844,  2846,  2849,  2853,  2855,  2857,  2858,  2861,
01047     2863,  2865,  2867,  2869,  2871,  2873,  2877,  2879,  2881,  2883,
01048     2884,  2887,  2891,  2893,  2895,  2896,  2899,  2901,  2903,  2907,
01049     2911,  2916,  2918,  2920,  2923,  2925,  2929,  2934,  2939,  2941,
01050     2943,  2946,  2947,  2950,  2952,  2954,  2956
01051 };
01052 
01053 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
01054 static const yytype_int16 yyrhs[] =
01055 {
01056      234,     0,    -1,   235,   242,   241,    -1,   236,   237,   238,
01057       -1,    13,    -1,    12,    -1,    -1,    14,    -1,   239,    -1,
01058      240,    -1,    11,    -1,    10,   242,   241,    -1,    15,    -1,
01059       -1,   243,   269,   355,   403,   431,   563,    -1,    -1,   244,
01060      245,    -1,    67,    -1,   246,    -1,   247,    -1,    11,    -1,
01061       10,   248,    68,    -1,   249,   253,   257,   261,   265,    -1,
01062       -1,   250,    -1,   251,    -1,   252,    -1,    82,    -1,    81,
01063       -1,    79,     5,    80,    -1,    -1,   254,    -1,   255,    -1,
01064      256,    -1,    86,    -1,    85,    -1,    83,     5,    84,    -1,
01065       -1,   258,    -1,   259,    -1,   260,    -1,    90,    -1,    89,
01066       -1,    87,     5,    88,    -1,    -1,   262,    -1,   263,    -1,
01067      264,    -1,    94,    -1,    93,    -1,    91,     5,    92,    -1,
01068       -1,   266,    -1,   267,    -1,   268,    -1,    98,    -1,    97,
01069       -1,    95,     5,    96,    -1,    -1,   270,   271,    -1,    69,
01070       -1,   272,    -1,   273,    -1,    10,    70,    -1,    11,    -1,
01071       10,   274,    70,    -1,   275,    -1,   276,    -1,   275,   276,
01072       -1,   277,    -1,   283,    -1,   289,    -1,   295,    -1,   303,
01073       -1,   309,    -1,   315,    -1,   321,    -1,   327,    -1,   333,
01074       -1,   341,    -1,   278,   279,    -1,    99,    -1,   280,    -1,
01075      281,    -1,    10,   100,    -1,    11,    -1,    10,   282,   100,
01076       -1,     4,    -1,   284,   285,    -1,   101,    -1,   286,    -1,
01077      287,    -1,    10,   102,    -1,    11,    -1,    10,   288,   102,
01078       -1,     4,    -1,   290,   291,    -1,   103,    -1,   292,    -1,
01079      293,    -1,    10,   104,    -1,    11,    -1,    10,   294,   104,
01080       -1,     4,    -1,   296,   297,   299,    -1,   105,    -1,    -1,
01081      298,    -1,    66,     3,     8,    -1,   300,    -1,   301,    -1,
01082       10,   106,    -1,    11,    -1,    10,   302,   106,    -1,     4,
01083       -1,   304,   305,    -1,   107,    -1,   306,    -1,   307,    -1,
01084       10,   108,    -1,    11,    -1,    10,   308,   108,    -1,     4,
01085       -1,   310,   311,    -1,   109,    -1,   312,    -1,   313,    -1,
01086       10,   110,    -1,    11,    -1,    10,   314,   110,    -1,     4,
01087       -1,   316,   317,    -1,   111,    -1,   318,    -1,   319,    -1,
01088       10,   112,    -1,    11,    -1,    10,   320,   112,    -1,     4,
01089       -1,   322,   323,    -1,   113,    -1,   324,    -1,   325,    -1,
01090       10,   114,    -1,    11,    -1,    10,   326,   114,    -1,     4,
01091       -1,   328,   329,    -1,   115,    -1,   330,    -1,   331,    -1,
01092       10,   116,    -1,    11,    -1,    10,   332,   116,    -1,     4,
01093       -1,   334,   335,   337,    -1,   117,    -1,    -1,   336,    -1,
01094       65,     3,     8,    -1,   338,    -1,   339,    -1,    10,   118,
01095       -1,    11,    -1,    10,   340,   118,    -1,     4,    -1,   342,
01096      343,   344,    -1,   119,    -1,  1000,    -1,   345,    -1,   346,
01097       -1,    10,   120,    -1,    11,    -1,    10,   347,   120,    -1,
01098      348,    -1,   349,    -1,   348,   349,    -1,   350,   351,   354,
01099       -1,   121,    -1,   352,    -1,    -1,   352,   353,    -1,   959,
01100       -1,   986,    -1,   942,    -1,    10,   122,    -1,    11,    -1,
01101       -1,   356,   357,    -1,    71,    -1,   358,    -1,   359,    -1,
01102       10,    72,    -1,    11,    -1,    10,   360,    72,    -1,   361,
01103       -1,   362,    -1,   361,   362,    -1,   363,    -1,   370,    -1,
01104      377,    -1,   384,    -1,   389,    -1,   364,   365,   368,    -1,
01105      123,    -1,   366,    -1,    -1,   366,   367,    -1,   982,    -1,
01106      942,    -1,    10,   369,   124,    -1,  1033,    -1,   371,   372,
01107      375,    -1,   125,    -1,   373,    -1,    -1,   373,   374,    -1,
01108      982,    -1,   942,    -1,    10,   376,   126,    -1,  1033,    -1,
01109      378,   379,   382,    -1,   127,    -1,   380,    -1,    -1,   380,
01110      381,    -1,   982,    -1,   942,    -1,    10,   383,   128,    -1,
01111     1033,    -1,   385,   386,   387,    -1,   129,    -1,    -1,   942,
01112       -1,    10,   388,   130,    -1,     6,    -1,   390,   391,   392,
01113       -1,   119,    -1,  1000,    -1,   393,    -1,   394,    -1,    10,
01114      120,    -1,    11,    -1,    10,   395,   120,    -1,   396,    -1,
01115      397,    -1,   396,   397,    -1,   398,   399,   402,    -1,   121,
01116       -1,   400,    -1,    -1,   400,   401,    -1,   959,    -1,   986,
01117       -1,   942,    -1,    10,   122,    -1,    11,    -1,    -1,   404,
01118      405,    -1,    73,    -1,   406,    -1,   407,    -1,    10,    74,
01119       -1,    11,    -1,    10,   408,    74,    -1,   409,    -1,   410,
01120       -1,   409,   410,    -1,   411,    -1,   417,    -1,   412,   413,
01121       -1,   131,    -1,   414,    -1,   415,    -1,    10,   132,    -1,
01122       11,    -1,    10,   416,   132,    -1,     4,    -1,   418,   419,
01123      420,    -1,   119,    -1,  1000,    -1,   421,    -1,   422,    -1,
01124       10,   120,    -1,    11,    -1,    10,   423,   120,    -1,   424,
01125       -1,   425,    -1,   424,   425,    -1,   426,   427,   430,    -1,
01126      121,    -1,   428,    -1,    -1,   428,   429,    -1,   959,    -1,
01127      986,    -1,   942,    -1,    10,   122,    -1,    11,    -1,    -1,
01128      432,   433,    -1,    75,    -1,   434,    -1,   435,    -1,    10,
01129       76,    -1,    11,    -1,    10,   436,    76,    -1,   437,    -1,
01130      438,    -1,   437,   438,    -1,   439,    -1,   447,    -1,   453,
01131       -1,   461,    -1,   469,    -1,   477,    -1,   485,    -1,   493,
01132       -1,   501,    -1,   517,    -1,   509,    -1,   525,    -1,   533,
01133       -1,   541,    -1,   549,    -1,   440,   441,   442,    -1,   133,
01134       -1,    -1,   982,    -1,   443,    -1,   444,    -1,    10,   134,
01135       -1,    11,    -1,    10,   445,   134,    -1,   446,    -1,  1033,
01136       -1,   448,   449,    -1,   135,    -1,   450,    -1,   451,    -1,
01137       10,   136,    -1,    11,    -1,    10,   452,   136,    -1,     4,
01138       -1,   454,   455,   456,    -1,   137,    -1,   995,    -1,   457,
01139       -1,   458,    -1,    10,   138,    -1,    11,    -1,    10,   459,
01140      138,    -1,   460,    -1,   459,   460,    -1,   107,    10,     4,
01141      108,    -1,   462,   463,   464,    -1,   139,    -1,  1003,    -1,
01142      465,    -1,   466,    -1,    10,   140,    -1,    11,    -1,    10,
01143      467,   140,    -1,   468,    -1,   467,   468,    -1,   143,    10,
01144        4,   144,    -1,   470,   471,   472,    -1,   141,    -1,  1003,
01145       -1,   473,    -1,   474,    -1,    10,   142,    -1,    11,    -1,
01146       10,   475,   142,    -1,   476,    -1,   475,   476,    -1,   143,
01147       10,     4,   144,    -1,   478,   479,   480,    -1,   147,    -1,
01148     1003,    -1,   481,    -1,   482,    -1,    10,   148,    -1,    11,
01149       -1,    10,   483,   148,    -1,   484,    -1,   483,   484,    -1,
01150      143,    10,     4,   144,    -1,   486,   487,   488,    -1,   149,
01151       -1,  1003,    -1,   489,    -1,   490,    -1,    10,   150,    -1,
01152       11,    -1,    10,   491,   150,    -1,   492,    -1,   491,   492,
01153       -1,   143,    10,     4,   144,    -1,   494,   495,   496,    -1,
01154      155,    -1,  1002,    -1,   497,    -1,   498,    -1,    10,   156,
01155       -1,    11,    -1,    10,   499,   156,    -1,   500,    -1,   499,
01156      500,    -1,   929,    -1,   502,   503,   504,    -1,   157,    -1,
01157     1002,    -1,   505,    -1,   506,    -1,    10,   158,    -1,    11,
01158       -1,    10,   507,   158,    -1,   508,    -1,   507,   508,    -1,
01159      929,    -1,   510,   511,   512,    -1,   161,    -1,  1002,    -1,
01160      513,    -1,   514,    -1,    10,   162,    -1,    11,    -1,    10,
01161      515,   162,    -1,   516,    -1,   515,   516,    -1,   929,    -1,
01162      518,   519,   520,    -1,   159,    -1,  1002,    -1,   521,    -1,
01163      522,    -1,    10,   160,    -1,    11,    -1,    10,   523,   160,
01164       -1,   524,    -1,   523,   524,    -1,   929,    -1,   526,   527,
01165      528,    -1,   153,    -1,  1003,    -1,   529,    -1,   530,    -1,
01166       10,   154,    -1,    11,    -1,    10,   531,   154,    -1,   532,
01167       -1,   531,   532,    -1,   143,    10,     4,   144,    -1,   534,
01168      535,   536,    -1,   151,    -1,  1003,    -1,   537,    -1,   538,
01169       -1,    10,   152,    -1,    11,    -1,    10,   539,   152,    -1,
01170      540,    -1,   539,   540,    -1,   143,    10,     4,   144,    -1,
01171      542,   543,   544,    -1,   163,    -1,  1004,    -1,   545,    -1,
01172      546,    -1,    10,   164,    -1,    11,    -1,    10,   547,   164,
01173       -1,   548,    -1,   547,   548,    -1,   165,    10,     4,   166,
01174       -1,   550,   551,   552,    -1,   119,    -1,  1000,    -1,   553,
01175       -1,   554,    -1,    10,   120,    -1,    11,    -1,    10,   555,
01176      120,    -1,   556,    -1,   557,    -1,   556,   557,    -1,   558,
01177      559,   562,    -1,   121,    -1,   560,    -1,    -1,   560,   561,
01178       -1,   959,    -1,   986,    -1,   942,    -1,    10,   122,    -1,
01179       11,    -1,    -1,   564,   565,   568,    -1,    77,    -1,   566,
01180       -1,    -1,   566,   567,    -1,  1007,    -1,   991,    -1,   997,
01181       -1,   569,    -1,   570,    -1,    11,    -1,    10,   571,    78,
01182       -1,   572,   703,   805,   907,    -1,    -1,   573,   574,   576,
01183       -1,   167,    -1,   575,    -1,    -1,  1001,    -1,   577,    -1,
01184      578,    -1,    11,    -1,    10,   579,   168,    -1,   580,   594,
01185      608,   656,   670,   685,    -1,    -1,   581,   582,   583,    -1,
01186      169,    -1,  1006,    -1,   584,    -1,   585,    -1,    10,   170,
01187       -1,    11,    -1,    10,   586,   170,    -1,   587,    -1,   588,
01188       -1,   587,   588,    -1,   589,   590,   593,    -1,   171,    -1,
01189      591,    -1,    -1,   591,   592,    -1,   948,    -1,   959,    -1,
01190      986,    -1,    10,   172,    -1,    11,    -1,    -1,   595,   596,
01191      597,    -1,   173,    -1,  1006,    -1,   598,    -1,   599,    -1,
01192       10,   174,    -1,    11,    -1,    10,   600,   174,    -1,   601,
01193       -1,   602,    -1,   601,   602,    -1,   603,   604,   607,    -1,
01194      171,    -1,   605,    -1,    -1,   605,   606,    -1,   948,    -1,
01195      959,    -1,   986,    -1,    10,   172,    -1,    11,    -1,    -1,
01196      609,   610,    -1,   175,    -1,   611,    -1,   612,    -1,    11,
01197       -1,    10,   613,   176,    -1,   614,   621,   628,   635,   642,
01198      649,    -1,    -1,   615,   616,   617,    -1,   177,    -1,   992,
01199       -1,   618,    -1,   619,    -1,    11,    -1,    10,   620,   178,
01200       -1,  1018,    -1,    -1,   622,   623,   624,    -1,   181,    -1,
01201      992,    -1,   625,    -1,   626,    -1,    11,    -1,    10,   627,
01202      182,    -1,  1018,    -1,    -1,   629,   630,   631,    -1,   179,
01203       -1,   992,    -1,   632,    -1,   633,    -1,    11,    -1,    10,
01204      634,   180,    -1,  1018,    -1,    -1,   636,   637,   638,    -1,
01205      185,    -1,   992,    -1,   639,    -1,   640,    -1,    11,    -1,
01206       10,   641,   186,    -1,  1018,    -1,    -1,   643,   644,   645,
01207       -1,   183,    -1,   992,    -1,   646,    -1,   647,    -1,    11,
01208       -1,    10,   648,   184,    -1,  1018,    -1,    -1,   650,   651,
01209      652,    -1,   187,    -1,   992,    -1,   653,    -1,   654,    -1,
01210       11,    -1,    10,   655,   188,    -1,  1018,    -1,    -1,   657,
01211      658,   659,    -1,   189,    -1,  1006,    -1,   660,    -1,   661,
01212       -1,    10,   190,    -1,    11,    -1,    10,   662,   190,    -1,
01213      663,    -1,   664,    -1,   663,   664,    -1,   665,   666,   669,
01214       -1,   171,    -1,   667,    -1,    -1,   667,   668,    -1,   948,
01215       -1,   959,    -1,   986,    -1,    10,   172,    -1,    11,    -1,
01216       -1,   671,   672,   673,    -1,   191,    -1,    29,     8,     6,
01217        8,    -1,   674,    -1,   675,    -1,    10,   192,    -1,    11,
01218       -1,    10,   676,   192,    -1,   677,    -1,   676,   677,    -1,
01219      678,   679,   682,    -1,   193,    -1,   680,    -1,    -1,   680,
01220      681,    -1,   967,    -1,  1006,    -1,   946,    -1,   683,    -1,
01221      684,    -1,    10,   194,    -1,    11,    -1,    10,   663,   194,
01222       -1,    -1,   685,   686,    -1,   687,   688,   691,    -1,   121,
01223       -1,   689,    -1,    -1,   689,   690,    -1,  1006,    -1,   993,
01224       -1,   959,    -1,   986,    -1,   963,    -1,   938,    -1,   970,
01225       -1,   942,    -1,   692,    -1,   693,    -1,    10,   122,    -1,
01226       11,    -1,    10,   694,   122,    -1,   695,    -1,  1008,    -1,
01227      696,    -1,   695,   696,    -1,   697,   698,   701,    -1,   171,
01228       -1,   699,    -1,    -1,   699,   700,    -1,   948,    -1,   959,
01229       -1,   986,    -1,   951,    -1,   974,    -1,   702,    -1,    10,
01230      172,    -1,    11,    -1,    -1,   704,   705,   707,    -1,   195,
01231       -1,   706,    -1,    -1,   999,    -1,   708,    -1,   709,    -1,
01232       11,    -1,    10,   710,   196,    -1,   711,   725,   739,   787,
01233       -1,    -1,   712,   713,   714,    -1,   197,    -1,   996,    -1,
01234      715,    -1,   716,    -1,    10,   198,    -1,    11,    -1,    10,
01235      717,   198,    -1,   718,    -1,   719,    -1,   718,   719,    -1,
01236      720,   721,   724,    -1,   199,    -1,   722,    -1,    -1,   722,
01237      723,    -1,   948,    -1,   959,    -1,   986,    -1,    10,   200,
01238       -1,    11,    -1,    -1,   726,   727,   728,    -1,   201,    -1,
01239      996,    -1,   729,    -1,   730,    -1,    10,   202,    -1,    11,
01240       -1,    10,   731,   202,    -1,   732,    -1,   733,    -1,   732,
01241      733,    -1,   734,   735,   738,    -1,   199,    -1,   736,    -1,
01242       -1,   736,   737,    -1,   948,    -1,   959,    -1,   951,    -1,
01243      974,    -1,    10,   200,    -1,    11,    -1,    -1,   740,   741,
01244       -1,   175,    -1,   742,    -1,   743,    -1,    11,    -1,    10,
01245      744,   176,    -1,   745,   752,   759,   766,   773,   780,    -1,
01246       -1,   746,   747,   748,    -1,   177,    -1,   992,    -1,   749,
01247       -1,   750,    -1,    11,    -1,    10,   751,   178,    -1,  1018,
01248       -1,    -1,   753,   754,   755,    -1,   181,    -1,   992,    -1,
01249      756,    -1,   757,    -1,    11,    -1,    10,   758,   182,    -1,
01250     1018,    -1,    -1,   760,   761,   762,    -1,   179,    -1,   992,
01251       -1,   763,    -1,   764,    -1,    11,    -1,    10,   765,   180,
01252       -1,  1018,    -1,    -1,   767,   768,   769,    -1,   185,    -1,
01253      992,    -1,   770,    -1,   771,    -1,    11,    -1,    10,   772,
01254      186,    -1,  1018,    -1,    -1,   774,   775,   776,    -1,   183,
01255       -1,   992,    -1,   777,    -1,   778,    -1,    11,    -1,    10,
01256      779,   184,    -1,  1018,    -1,    -1,   781,   782,   783,    -1,
01257      187,    -1,   992,    -1,   784,    -1,   785,    -1,    11,    -1,
01258       10,   786,   188,    -1,  1018,    -1,    -1,   787,   788,    -1,
01259      789,   790,   793,    -1,   121,    -1,   791,    -1,    -1,   791,
01260      792,    -1,   996,    -1,   993,    -1,   959,    -1,   986,    -1,
01261      963,    -1,   938,    -1,   970,    -1,   942,    -1,   794,    -1,
01262      795,    -1,    10,   122,    -1,    11,    -1,    10,   796,   122,
01263       -1,   797,    -1,  1008,    -1,   798,    -1,   797,   798,    -1,
01264      799,   800,   803,    -1,   199,    -1,   801,    -1,    -1,   801,
01265      802,    -1,   948,    -1,   959,    -1,   986,    -1,   951,    -1,
01266      974,    -1,   804,    -1,    10,   200,    -1,    11,    -1,    -1,
01267      806,   807,   809,    -1,   203,    -1,   808,    -1,    -1,   998,
01268       -1,   810,    -1,   811,    -1,    11,    -1,    10,   812,   204,
01269       -1,   813,   827,   841,   889,    -1,    -1,   814,   815,   816,
01270       -1,   205,    -1,   990,    -1,   817,    -1,   818,    -1,    10,
01271      206,    -1,    11,    -1,    10,   819,   206,    -1,   820,    -1,
01272      821,    -1,   820,   821,    -1,   822,   823,   826,    -1,   207,
01273       -1,   824,    -1,    -1,   824,   825,    -1,   948,    -1,   959,
01274       -1,   986,    -1,    10,   208,    -1,    11,    -1,    -1,   828,
01275      829,   830,    -1,   209,    -1,   990,    -1,   831,    -1,   832,
01276       -1,    10,   210,    -1,    11,    -1,    10,   833,   210,    -1,
01277      834,    -1,   835,    -1,   834,   835,    -1,   836,   837,   840,
01278       -1,   207,    -1,   838,    -1,    -1,   838,   839,    -1,   948,
01279       -1,   959,    -1,   955,    -1,   978,    -1,    10,   208,    -1,
01280       11,    -1,    -1,   842,   843,    -1,   175,    -1,   844,    -1,
01281      845,    -1,    11,    -1,    10,   846,   176,    -1,   847,   854,
01282      861,   868,   875,   882,    -1,    -1,   848,   849,   850,    -1,
01283      177,    -1,   992,    -1,   851,    -1,   852,    -1,    11,    -1,
01284       10,   853,   178,    -1,  1018,    -1,    -1,   855,   856,   857,
01285       -1,   181,    -1,   992,    -1,   858,    -1,   859,    -1,    11,
01286       -1,    10,   860,   182,    -1,  1018,    -1,    -1,   862,   863,
01287      864,    -1,   179,    -1,   992,    -1,   865,    -1,   866,    -1,
01288       11,    -1,    10,   867,   180,    -1,  1018,    -1,    -1,   869,
01289      870,   871,    -1,   185,    -1,   992,    -1,   872,    -1,   873,
01290       -1,    11,    -1,    10,   874,   186,    -1,  1018,    -1,    -1,
01291      876,   877,   878,    -1,   183,    -1,   992,    -1,   879,    -1,
01292      880,    -1,    11,    -1,    10,   881,   184,    -1,  1018,    -1,
01293       -1,   883,   884,   885,    -1,   187,    -1,   992,    -1,   886,
01294       -1,   887,    -1,    11,    -1,    10,   888,   188,    -1,  1018,
01295       -1,    -1,   889,   890,    -1,   891,   892,   895,    -1,   121,
01296       -1,   893,    -1,    -1,   893,   894,    -1,   990,    -1,   993,
01297       -1,   959,    -1,   986,    -1,   963,    -1,   938,    -1,   970,
01298       -1,   942,    -1,   896,    -1,   897,    -1,    10,   122,    -1,
01299       11,    -1,    10,   898,   122,    -1,   899,    -1,  1008,    -1,
01300      900,    -1,   899,   900,    -1,   901,   902,   905,    -1,   207,
01301       -1,   903,    -1,    -1,   903,   904,    -1,   948,    -1,   959,
01302       -1,   986,    -1,   951,    -1,   974,    -1,   906,    -1,    10,
01303      208,    -1,    11,    -1,    -1,   908,   909,   910,    -1,   211,
01304       -1,  1005,    -1,   911,    -1,   912,    -1,    11,    -1,    10,
01305      913,   212,    -1,    -1,   913,   914,    -1,   915,   916,   919,
01306       -1,   213,    -1,   917,    -1,   918,    -1,   917,   918,    -1,
01307      959,    -1,   986,    -1,   963,    -1,   938,    -1,   970,    -1,
01308      942,    -1,   994,    -1,   920,    -1,   921,    -1,    10,   214,
01309       -1,    11,    -1,    10,   922,   214,    -1,   923,    -1,   924,
01310       -1,   923,   924,    -1,   925,    -1,   926,    -1,   927,    -1,
01311      220,    -1,   217,    -1,   218,   928,   219,    -1,     5,    -1,
01312      930,   931,   937,    -1,   145,    -1,   932,    -1,    -1,   932,
01313      933,    -1,   934,    -1,   935,    -1,   936,    -1,    21,     3,
01314        8,    -1,    22,     3,     8,    -1,    23,     3,     8,    -1,
01315       10,   146,    -1,    11,    -1,   939,    -1,   940,    -1,   941,
01316       -1,    49,    -1,    24,     3,  1034,    -1,   943,    -1,   944,
01317       -1,   945,    -1,    50,    -1,    46,     3,  1034,    -1,   947,
01318       -1,    26,     8,  1033,     8,    -1,   949,    -1,   950,    -1,
01319       42,  1034,     6,  1034,    -1,   952,    -1,   953,    -1,   954,
01320       -1,    53,    -1,    55,     3,  1034,    -1,   956,    -1,   957,
01321       -1,   958,    -1,    57,    -1,    59,  1034,  1033,  1034,    -1,
01322      960,    -1,   961,    -1,   962,    -1,    48,    -1,    41,     3,
01323     1034,    -1,   964,    -1,   965,    -1,   966,    -1,    62,    -1,
01324       61,     3,  1034,    -1,   968,    -1,   969,    -1,    43,  1034,
01325        6,  1034,    -1,   971,    -1,   972,    -1,   973,    -1,    47,
01326       -1,    25,     3,     8,    -1,   975,    -1,   976,    -1,   977,
01327       -1,    54,    -1,    56,     3,  1034,    -1,   979,    -1,   980,
01328       -1,   981,    -1,    58,    -1,    60,  1034,  1033,  1034,    -1,
01329      983,    -1,   984,    -1,   985,    -1,    51,    -1,    45,     3,
01330        8,    -1,   987,    -1,   988,    -1,   989,    -1,    52,    -1,
01331       44,     3,     8,    -1,    39,  1034,     6,  1034,    -1,    32,
01332     1034,     6,  1034,    -1,    40,  1034,     6,  1034,    -1,    17,
01333     1034,     6,  1034,    -1,    36,  1034,     6,  1034,    -1,    18,
01334        8,     6,     8,    -1,    38,  1034,     6,  1034,    -1,    31,
01335     1034,     6,  1034,    -1,    35,  1034,     6,  1034,    -1,    34,
01336     1034,     6,  1034,    -1,    16,  1034,     6,  1034,    -1,    33,
01337     1034,     6,  1034,    -1,    20,     8,     6,     8,    -1,    19,
01338        8,     6,     8,    -1,    27,     8,     6,     8,    -1,    28,
01339     1034,     6,  1034,    -1,    37,  1034,     6,  1034,    -1,    30,
01340     1034,     6,  1034,    -1,  1009,    -1,  1008,  1009,    -1,  1010,
01341     1011,  1014,    -1,   215,    -1,  1012,    -1,    -1,  1012,  1013,
01342       -1,   992,    -1,   986,    -1,   942,    -1,  1015,    -1,  1016,
01343       -1,    11,    -1,    10,  1017,   216,    -1,  1018,    -1,  1019,
01344       -1,  1026,    -1,    -1,  1019,  1020,    -1,  1021,  1022,  1025,
01345       -1,   226,    -1,  1023,    -1,    -1,  1023,  1024,    -1,  1032,
01346       -1,  1031,    -1,    10,     6,   227,    -1,   221,  1027,  1028,
01347       -1,   225,  1034,     6,  1034,    -1,  1029,    -1,  1030,    -1,
01348       10,   222,    -1,    11,    -1,    10,     4,   222,    -1,   223,
01349     1034,     6,  1034,    -1,   224,  1034,     6,  1034,    -1,     6,
01350       -1,     7,    -1,  1035,     8,    -1,    -1,  1035,  1036,    -1,
01351      229,    -1,   230,    -1,   231,    -1,   232,    -1
01352 };
01353 
01354 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
01355 static const yytype_uint16 yyrline[] =
01356 {
01357        0,   164,   164,   165,   167,   174,   181,   181,   183,   183,
01358      185,   187,   189,   190,   193,   201,   201,   208,   217,   217,
01359      219,   221,   223,   225,   225,   227,   227,   229,   229,   231,
01360      237,   237,   239,   239,   241,   241,   243,   249,   249,   251,
01361      251,   253,   253,   255,   261,   261,   263,   263,   265,   265,
01362      267,   273,   273,   275,   275,   277,   277,   279,   290,   290,
01363      292,   308,   308,   310,   310,   312,   314,   316,   316,   319,
01364      320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
01365      333,   335,   343,   343,   345,   345,   347,   349,   359,   361,
01366      367,   367,   369,   369,   371,   373,   382,   384,   390,   390,
01367      392,   392,   394,   396,   406,   413,   421,   422,   429,   435,
01368      435,   437,   437,   439,   441,   449,   451,   457,   457,   459,
01369      459,   461,   463,   472,   474,   481,   481,   483,   483,   485,
01370      487,   497,   499,   506,   506,   508,   508,   510,   512,   522,
01371      524,   530,   530,   532,   532,   534,   536,   546,   548,   554,
01372      554,   556,   556,   558,   560,   570,   577,   586,   587,   593,
01373      600,   600,   602,   602,   604,   606,   614,   616,   622,   630,
01374      634,   639,   639,   641,   643,   647,   647,   649,   656,   667,
01375      673,   673,   676,   680,   681,   684,   684,   693,   693,   695,
01376      705,   705,   707,   707,   709,   711,   713,   713,   716,   717,
01377      718,   719,   720,   724,   726,   736,   738,   738,   741,   742,
01378      745,   747,   755,   757,   767,   769,   769,   772,   773,   776,
01379      778,   787,   789,   799,   801,   801,   804,   805,   808,   810,
01380      819,   821,   829,   830,   832,   834,   845,   847,   854,   862,
01381      866,   871,   871,   873,   875,   879,   879,   881,   888,   899,
01382      904,   904,   907,   912,   913,   916,   916,   925,   925,   927,
01383      934,   934,   936,   936,   938,   940,   942,   942,   945,   946,
01384      950,   952,   958,   958,   960,   960,   962,   964,   975,   977,
01385      984,   992,   996,  1001,  1001,  1003,  1005,  1009,  1009,  1011,
01386     1018,  1029,  1034,  1034,  1037,  1042,  1043,  1046,  1046,  1054,
01387     1054,  1056,  1076,  1076,  1078,  1078,  1080,  1082,  1084,  1084,
01388     1087,  1088,  1089,  1090,  1091,  1092,  1093,  1094,  1095,  1096,
01389     1097,  1098,  1099,  1100,  1101,  1106,  1112,  1122,  1123,  1125,
01390     1125,  1127,  1127,  1129,  1131,  1133,  1140,  1142,  1148,  1148,
01391     1150,  1150,  1152,  1154,  1164,  1172,  1179,  1181,  1181,  1183,
01392     1183,  1185,  1191,  1191,  1193,  1204,  1212,  1218,  1220,  1220,
01393     1222,  1222,  1224,  1230,  1230,  1232,  1243,  1251,  1257,  1259,
01394     1259,  1261,  1261,  1263,  1269,  1269,  1271,  1281,  1289,  1295,
01395     1297,  1297,  1299,  1299,  1301,  1307,  1307,  1309,  1319,  1327,
01396     1333,  1335,  1335,  1337,  1337,  1339,  1345,  1345,  1347,  1358,
01397     1371,  1377,  1379,  1379,  1381,  1381,  1383,  1389,  1389,  1391,
01398     1395,  1408,  1414,  1416,  1416,  1418,  1418,  1420,  1426,  1426,
01399     1428,  1432,  1445,  1451,  1453,  1453,  1455,  1455,  1457,  1463,
01400     1463,  1465,  1469,  1482,  1488,  1490,  1490,  1492,  1492,  1494,
01401     1500,  1500,  1502,  1506,  1514,  1520,  1522,  1522,  1524,  1524,
01402     1526,  1532,  1532,  1534,  1545,  1553,  1559,  1561,  1561,  1563,
01403     1563,  1565,  1571,  1571,  1573,  1584,  1592,  1599,  1601,  1601,
01404     1603,  1603,  1605,  1611,  1611,  1613,  1625,  1627,  1633,  1641,
01405     1645,  1650,  1650,  1652,  1654,  1658,  1658,  1660,  1667,  1678,
01406     1683,  1683,  1686,  1691,  1692,  1695,  1695,  1703,  1703,  1705,
01407     1713,  1715,  1715,  1718,  1724,  1730,  1738,  1738,  1740,  1742,
01408     1744,  1751,  1751,  1753,  1759,  1766,  1766,  1771,  1771,  1773,
01409     1775,  1777,  1782,  1782,  1794,  1799,  1810,  1815,  1821,  1821,
01410     1823,  1825,  1827,  1827,  1830,  1835,  1844,  1850,  1850,  1853,
01411     1864,  1868,  1875,  1875,  1879,  1879,  1891,  1896,  1907,  1912,
01412     1918,  1918,  1920,  1922,  1924,  1924,  1927,  1932,  1942,  1948,
01413     1948,  1951,  1962,  1966,  1971,  1971,  1975,  1975,  1977,  1982,
01414     1982,  1984,  1986,  1988,  1991,  1991,  1999,  2005,  2012,  2012,
01415     2014,  2016,  2018,  2022,  2022,  2031,  2037,  2044,  2044,  2046,
01416     2048,  2050,  2054,  2054,  2062,  2068,  2075,  2075,  2077,  2079,
01417     2081,  2085,  2085,  2093,  2099,  2106,  2106,  2108,  2110,  2112,
01418     2116,  2116,  2124,  2130,  2137,  2137,  2139,  2141,  2143,  2147,
01419     2147,  2155,  2161,  2168,  2168,  2170,  2172,  2174,  2178,  2178,
01420     2191,  2196,  2207,  2212,  2218,  2218,  2220,  2222,  2228,  2228,
01421     2230,  2235,  2246,  2255,  2255,  2258,  2269,  2273,  2280,  2280,
01422     2284,  2284,  2286,  2292,  2300,  2304,  2309,  2309,  2311,  2313,
01423     2313,  2315,  2331,  2341,  2349,  2349,  2352,  2353,  2362,  2365,
01424     2365,  2367,  2367,  2369,  2374,  2374,  2376,  2381,  2403,  2420,
01425     2420,  2423,  2427,  2431,  2432,  2433,  2434,  2435,  2436,  2439,
01426     2439,  2441,  2441,  2443,  2445,  2445,  2447,  2447,  2450,  2464,
01427     2479,  2481,  2481,  2484,  2494,  2495,  2496,  2497,  2500,  2502,
01428     2502,  2510,  2510,  2512,  2518,  2525,  2525,  2530,  2530,  2532,
01429     2534,  2536,  2540,  2540,  2553,  2559,  2571,  2576,  2582,  2582,
01430     2584,  2586,  2588,  2588,  2591,  2596,  2606,  2608,  2608,  2611,
01431     2622,  2626,  2633,  2633,  2636,  2636,  2651,  2656,  2670,  2675,
01432     2681,  2681,  2683,  2685,  2687,  2687,  2690,  2695,  2708,  2710,
01433     2710,  2713,  2724,  2728,  2734,  2741,  2741,  2745,  2745,  2747,
01434     2752,  2752,  2754,  2756,  2758,  2761,  2761,  2769,  2775,  2782,
01435     2782,  2784,  2786,  2788,  2791,  2791,  2799,  2805,  2812,  2812,
01436     2814,  2816,  2818,  2821,  2821,  2829,  2835,  2842,  2842,  2844,
01437     2846,  2848,  2851,  2851,  2859,  2865,  2872,  2872,  2874,  2876,
01438     2878,  2881,  2881,  2889,  2896,  2903,  2903,  2905,  2907,  2909,
01439     2913,  2913,  2921,  2927,  2934,  2934,  2936,  2938,  2940,  2944,
01440     2944,  2946,  2952,  2974,  2992,  2992,  2995,  2999,  3003,  3004,
01441     3005,  3006,  3007,  3008,  3011,  3011,  3013,  3013,  3015,  3017,
01442     3017,  3019,  3019,  3022,  3036,  3052,  3061,  3061,  3064,  3074,
01443     3075,  3076,  3077,  3080,  3082,  3082,  3090,  3090,  3092,  3098,
01444     3105,  3105,  3110,  3110,  3112,  3114,  3116,  3120,  3120,  3133,
01445     3138,  3149,  3154,  3160,  3160,  3162,  3164,  3166,  3166,  3169,
01446     3174,  3184,  3190,  3190,  3193,  3204,  3208,  3215,  3215,  3219,
01447     3219,  3234,  3239,  3252,  3257,  3263,  3263,  3265,  3267,  3269,
01448     3269,  3272,  3277,  3290,  3296,  3296,  3299,  3310,  3314,  3318,
01449     3324,  3324,  3328,  3328,  3330,  3335,  3335,  3337,  3339,  3341,
01450     3344,  3344,  3352,  3358,  3365,  3365,  3367,  3369,  3371,  3374,
01451     3374,  3382,  3388,  3395,  3395,  3397,  3399,  3401,  3405,  3405,
01452     3413,  3419,  3426,  3426,  3428,  3430,  3432,  3436,  3436,  3444,
01453     3450,  3457,  3457,  3459,  3461,  3463,  3467,  3467,  3475,  3481,
01454     3488,  3488,  3490,  3492,  3494,  3498,  3498,  3506,  3512,  3519,
01455     3519,  3521,  3523,  3525,  3529,  3529,  3531,  3537,  3559,  3576,
01456     3576,  3579,  3583,  3587,  3588,  3589,  3590,  3591,  3592,  3595,
01457     3595,  3597,  3597,  3599,  3601,  3601,  3603,  3603,  3606,  3620,
01458     3635,  3637,  3637,  3640,  3650,  3651,  3652,  3653,  3656,  3658,
01459     3658,  3666,  3666,  3668,  3670,  3678,  3683,  3689,  3691,  3693,
01460     3693,  3697,  3716,  3734,  3740,  3740,  3743,  3744,  3745,  3746,
01461     3747,  3748,  3749,  3756,  3760,  3765,  3765,  3767,  3769,  3771,
01462     3771,  3773,  3780,  3786,  3788,  3788,  3790,  3792,  3804,  3813,
01463     3823,  3828,  3828,  3831,  3832,  3833,  3835,  3844,  3853,  3862,
01464     3862,  3868,  3875,  3875,  3877,  3882,  3889,  3896,  3896,  3898,
01465     3901,  3908,  3915,  3922,  3929,  3931,  3937,  3944,  3944,  3946,
01466     3951,  3958,  3964,  3964,  3966,  3969,  3974,  3980,  3980,  3982,
01467     3985,  3992,  3998,  3998,  4000,  4003,  4010,  4016,  4018,  4026,
01468     4032,  4032,  4034,  4037,  4044,  4051,  4051,  4053,  4058,  4065,
01469     4071,  4071,  4073,  4076,  4083,  4089,  4089,  4091,  4094,  4101,
01470     4107,  4107,  4109,  4112,  4124,  4133,  4142,  4151,  4160,  4169,
01471     4178,  4187,  4195,  4201,  4207,  4213,  4219,  4230,  4239,  4249,
01472     4255,  4264,  4284,  4284,  4286,  4303,  4314,  4321,  4321,  4324,
01473     4331,  4332,  4336,  4336,  4338,  4340,  4342,  4359,  4364,  4366,
01474     4366,  4368,  4370,  4379,  4381,  4381,  4383,  4383,  4385,  4393,
01475     4395,  4400,  4400,  4402,  4402,  4404,  4427,  4435,  4449,  4450,
01476     4457,  4459,  4459,  4461,  4462,  4463,  4464
01477 };
01478 #endif
01479 
01480 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
01481 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
01482    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
01483 static const char *const yytname[] =
01484 {
01485   "$end", "error", "$undefined", "ATTRIBUTETEXT", "ELEMENTTEXT",
01486   "ITEMTEXT", "INTEGER", "DOUBLE", "QUOTE", "TWOQUOTES", "GREATERTHAN",
01487   "ENDOFELEMENT", "OSOLSTART", "OSOLSTARTEMPTY", "OSOLATTRIBUTETEXT",
01488   "OSOLEND", "NUMBEROFOTHEROPTIONSATT", "NUMBEROFENUMERATIONSATT",
01489   "NUMBEROFJOBIDSATT", "NUMBEROFPATHSATT", "NUMBEROFPATHPAIRSATT",
01490   "FROMATT", "TOATT", "MAKECOPYATT", "CATEGORYATT", "TYPEATT",
01491   "GROUPWEIGHTATT", "NUMBEROFPROCESSESATT", "NUMBEROFSOLVEROPTIONSATT",
01492   "NUMBEROFSOSATT", "NUMBEROFVARIABLESATT", "NUMBEROFOBJECTIVESATT",
01493   "NUMBEROFCONSTRAINTSATT", "NUMBEROFOTHERVARIABLEOPTIONSATT",
01494   "NUMBEROFOTHEROBJECTIVEOPTIONSATT", "NUMBEROFOTHERCONSTRAINTOPTIONSATT",
01495   "NUMBEROFITEMSATT", "NUMBEROFVARATT", "NUMBEROFOBJATT", "NUMBEROFCONATT",
01496   "NUMBEROFELATT", "NAMEATT", "IDXATT", "SOSIDXATT", "VALUEATT", "UNITATT",
01497   "DESCRIPTIONATT", "EMPTYTYPEATT", "EMPTYNAMEATT", "EMPTYCATEGORYATT",
01498   "EMPTYDESCRIPTIONATT", "EMPTYUNITATT", "EMPTYVALUEATT",
01499   "EMPTYLBVALUEATT", "EMPTYUBVALUEATT", "LBVALUEATT", "UBVALUEATT",
01500   "EMPTYLBDUALVALUEATT", "EMPTYUBDUALVALUEATT", "LBDUALVALUEATT",
01501   "UBDUALVALUEATT", "SOLVERATT", "EMPTYSOLVERATT", "WEIGHTATT",
01502   "EMPTYWEIGHTATT", "TRANSPORTTYPEATT", "LOCATIONTYPEATT", "HEADERSTART",
01503   "HEADEREND", "GENERALSTART", "GENERALEND", "SYSTEMSTART", "SYSTEMEND",
01504   "SERVICESTART", "SERVICEEND", "JOBSTART", "JOBEND", "OPTIMIZATIONSTART",
01505   "OPTIMIZATIONEND", "FILENAMESTART", "FILENAMEEND", "FILENAMEEMPTY",
01506   "FILENAMESTARTANDEND", "FILESOURCESTART", "FILESOURCEEND",
01507   "FILESOURCEEMPTY", "FILESOURCESTARTANDEND", "FILEDESCRIPTIONSTART",
01508   "FILEDESCRIPTIONEND", "FILEDESCRIPTIONEMPTY",
01509   "FILEDESCRIPTIONSTARTANDEND", "FILECREATORSTART", "FILECREATOREND",
01510   "FILECREATOREMPTY", "FILECREATORSTARTANDEND", "FILELICENCESTART",
01511   "FILELICENCEEND", "FILELICENCEEMPTY", "FILELICENCESTARTANDEND",
01512   "SERVICEURISTART", "SERVICEURIEND", "SERVICENAMESTART", "SERVICENAMEEND",
01513   "INSTANCENAMESTART", "INSTANCENAMEEND", "INSTANCELOCATIONSTART",
01514   "INSTANCELOCATIONEND", "JOBIDSTART", "JOBIDEND", "SOLVERTOINVOKESTART",
01515   "SOLVERTOINVOKEEND", "LICENSESTART", "LICENSEEND", "USERNAMESTART",
01516   "USERNAMEEND", "PASSWORDSTART", "PASSWORDEND", "CONTACTSTART",
01517   "CONTACTEND", "OTHEROPTIONSSTART", "OTHEROPTIONSEND", "OTHERSTART",
01518   "OTHEREND", "MINDISKSPACESTART", "MINDISKSPACEEND", "MINMEMORYSTART",
01519   "MINMEMORYEND", "MINCPUSPEEDSTART", "MINCPUSPEEDEND",
01520   "MINCPUNUMBERSTART", "MINCPUNUMBEREND", "SERVICETYPESTART",
01521   "SERVICETYPEEND", "MAXTIMESTART", "MAXTIMEEND",
01522   "REQUESTEDSTARTTIMESTART", "REQUESTEDSTARTTIMEEND", "DEPENDENCIESSTART",
01523   "DEPENDENCIESEND", "REQUIREDDIRECTORIESSTART", "REQUIREDDIRECTORIESEND",
01524   "REQUIREDFILESSTART", "REQUIREDFILESEND", "PATHSTART", "PATHEND",
01525   "PATHPAIRSTART", "PATHPAIREND", "DIRECTORIESTOMAKESTART",
01526   "DIRECTORIESTOMAKEEND", "FILESTOMAKESTART", "FILESTOMAKEEND",
01527   "DIRECTORIESTODELETESTART", "DIRECTORIESTODELETEEND",
01528   "FILESTODELETESTART", "FILESTODELETEEND", "INPUTDIRECTORIESTOMOVESTART",
01529   "INPUTDIRECTORIESTOMOVEEND", "INPUTFILESTOMOVESTART",
01530   "INPUTFILESTOMOVEEND", "OUTPUTDIRECTORIESTOMOVESTART",
01531   "OUTPUTDIRECTORIESTOMOVEEND", "OUTPUTFILESTOMOVESTART",
01532   "OUTPUTFILESTOMOVEEND", "PROCESSESTOKILLSTART", "PROCESSESTOKILLEND",
01533   "PROCESSSTART", "PROCESSEND", "VARIABLESSTART", "VARIABLESEND",
01534   "INITIALVARIABLEVALUESSTART", "INITIALVARIABLEVALUESEND", "VARSTART",
01535   "VAREND", "INITIALVARIABLEVALUESSTRINGSTART",
01536   "INITIALVARIABLEVALUESSTRINGEND", "INITIALBASISSTATUSSTART",
01537   "INITIALBASISSTATUSEND", "BASICSTART", "BASICEND", "ATUPPERSTART",
01538   "ATUPPEREND", "ATLOWERSTART", "ATLOWEREND", "SUPERBASICSTART",
01539   "SUPERBASICEND", "ISFREESTART", "ISFREEEND", "UNKNOWNSTART",
01540   "UNKNOWNEND", "INTEGERVARIABLEBRANCHINGWEIGHTSSTART",
01541   "INTEGERVARIABLEBRANCHINGWEIGHTSEND", "SOSVARIABLEBRANCHINGWEIGHTSSTART",
01542   "SOSVARIABLEBRANCHINGWEIGHTSEND", "SOSSTART", "SOSEND",
01543   "OBJECTIVESSTART", "OBJECTIVESEND", "INITIALOBJECTIVEVALUESSTART",
01544   "INITIALOBJECTIVEVALUESEND", "OBJSTART", "OBJEND",
01545   "INITIALOBJECTIVEBOUNDSSTART", "INITIALOBJECTIVEBOUNDSEND",
01546   "CONSTRAINTSSTART", "CONSTRAINTSEND", "INITIALCONSTRAINTVALUESSTART",
01547   "INITIALCONSTRAINTVALUESEND", "CONSTART", "CONEND",
01548   "INITIALDUALVALUESSTART", "INITIALDUALVALUESEND", "SOLVEROPTIONSSTART",
01549   "SOLVEROPTIONSEND", "SOLVEROPTIONSTART", "SOLVEROPTIONEND",
01550   "ENUMERATIONSTART", "ENUMERATIONEND", "ITEMEMPTY", "ITEMSTART",
01551   "ITEMEND", "ITEMSTARTANDEND", "BASE64START", "BASE64END", "INCRATT",
01552   "MULTATT", "SIZEOFATT", "ELSTART", "ELEND", "DUMMY", "' '", "'\\t'",
01553   "'\\r'", "'\\n'", "$accept", "osoldoc", "osolStartEmpty", "osolStart",
01554   "osolAttributes", "osolContent", "osolEmpty", "osolLaden", "osolEnd",
01555   "osolBody", "headerElement", "headerElementStart",
01556   "headerElementContent", "headerElementEmpty", "headerElementLaden",
01557   "headerElementBody", "fileName", "fileNameContent", "fileNameEmpty",
01558   "fileNameLaden", "fileSource", "fileSourceContent", "fileSourceEmpty",
01559   "fileSourceLaden", "fileDescription", "fileDescriptionContent",
01560   "fileDescriptionEmpty", "fileDescriptionLaden", "fileCreator",
01561   "fileCreatorContent", "fileCreatorEmpty", "fileCreatorLaden",
01562   "fileLicence", "fileLicenceContent", "fileLicenceEmpty",
01563   "fileLicenceLaden", "generalElement", "generalElementStart",
01564   "generalElementContent", "generalElementEmpty", "generalElementLaden",
01565   "generalElementBody", "generalElementList", "generalChild", "serviceURI",
01566   "serviceURIStart", "serviceURIContent", "serviceURIEmpty",
01567   "serviceURILaden", "serviceURIBody", "serviceName", "serviceNameStart",
01568   "serviceNameContent", "serviceNameEmpty", "serviceNameLaden",
01569   "serviceNameBody", "instanceName", "instanceNameStart",
01570   "instanceNameContent", "instanceNameEmpty", "instanceNameLaden",
01571   "instanceNameBody", "instanceLocation", "instanceLocationStart",
01572   "instanceLocationAttributes", "locationTypeAttribute",
01573   "instanceLocationContent", "instanceLocationEmpty",
01574   "instanceLocationLaden", "instanceLocationBody", "jobID", "jobIDStart",
01575   "jobIDContent", "jobIDEmpty", "jobIDLaden", "jobIDBody",
01576   "solverToInvoke", "solverToInvokeStart", "solverToInvokeContent",
01577   "solverToInvokeEmpty", "solverToInvokeLaden", "solverToInvokeBody",
01578   "license", "licenseStart", "licenseContent", "licenseEmpty",
01579   "licenseLaden", "licensebody", "username", "usernameStart",
01580   "usernameContent", "usernameEmpty", "usernameLaden", "usernamebody",
01581   "password", "passwordStart", "passwordContent", "passwordEmpty",
01582   "passwordLaden", "passwordbody", "contact", "contactStart",
01583   "contactAttributes", "transportTypeAttribute", "contactContent",
01584   "contactContentEmpty", "contactContentLaden", "contactBody",
01585   "otherGeneralOptions", "otherGeneralOptionsStart",
01586   "otherGeneralOptionsAttributes", "otherGeneralOptionsContent",
01587   "otherGeneralOptionsEmpty", "otherGeneralOptionsLaden",
01588   "otherGeneralOptionsBody", "otherGeneralOptionArray",
01589   "otherGeneralOption", "otherGeneralOptionStart",
01590   "otherGeneralAttributes", "otherGeneralAttList", "otherGeneralAtt",
01591   "otherGeneralEnd", "systemElement", "systemElementStart",
01592   "systemElementContent", "systemElementEmpty", "systemElementLaden",
01593   "systemElementBody", "systemElementList", "systemChild", "minDiskSpace",
01594   "minDiskSpaceStart", "minDiskSpaceAttributes", "minDiskSpaceAttList",
01595   "minDiskSpaceAtt", "minDiskSpaceContent", "minDiskSpaceValue",
01596   "minMemorySize", "minMemoryStart", "minMemoryAttributes",
01597   "minMemoryAttList", "minMemoryAtt", "minMemoryContent", "minMemoryValue",
01598   "minCPUSpeed", "minCPUSpeedStart", "minCPUSpeedAttributes",
01599   "minCPUSpeedAttList", "minCPUSpeedAtt", "minCPUSpeedContent",
01600   "minCPUSpeedValue", "minCPUNumber", "minCPUNumberStart",
01601   "minCPUNumberAttributes", "minCPUNumberContent", "minCPUNumberValue",
01602   "otherSystemOptions", "otherSystemOptionsStart",
01603   "otherSystemOptionsAttributes", "otherSystemOptionsContent",
01604   "otherSystemOptionsEmpty", "otherSystemOptionsLaden",
01605   "otherSystemOptionsBody", "otherSystemOptionArray", "otherSystemOption",
01606   "otherSystemOptionStart", "otherSystemOptionAttributes",
01607   "otherSystemOptionAttList", "otherSystemOptionAtt",
01608   "otherSystemOptionEnd", "serviceElement", "serviceElementStart",
01609   "serviceElementContent", "serviceElementEmpty", "serviceElementLaden",
01610   "serviceElementBody", "serviceElementList", "serviceChild",
01611   "serviceType", "serviceTypeStart", "serviceTypeContent",
01612   "serviceTypeEmpty", "serviceTypeLaden", "serviceTypeBody",
01613   "otherServiceOptions", "otherServiceOptionsStart",
01614   "otherServiceOptionsAttributes", "otherServiceOptionsContent",
01615   "otherServiceOptionsEmpty", "otherServiceOptionsLaden",
01616   "otherServiceOptionsBody", "otherServiceOptionArray",
01617   "otherServiceOption", "otherServiceOptionStart",
01618   "otherServiceOptionAttributes", "otherServiceOptionAttList",
01619   "otherServiceOptionAtt", "otherServiceOptionEnd", "jobElement",
01620   "jobElementStart", "jobElementContent", "jobElementEmpty",
01621   "jobElementLaden", "jobElementBody", "jobElementList", "jobChild",
01622   "maxTime", "maxTimeStart", "maxTimeAttributes", "maxTimeContent",
01623   "maxTimeEmpty", "maxTimeLaden", "maxTimeBody", "maxTimeValue",
01624   "requestedStartTime", "requestedStartTimeStart",
01625   "requestedStartTimeContent", "requestedStartTimeEmpty",
01626   "requestedStartTimeLaden", "requestedStartTimeBody", "dependencies",
01627   "dependenciesStart", "dependenciesAttributes", "dependenciesContent",
01628   "dependenciesEmpty", "dependenciesLaden", "dependenciesList",
01629   "dependencyJobID", "requiredDirectories", "requiredDirectoriesStart",
01630   "requiredDirectoriesAttributes", "requiredDirectoriesContent",
01631   "requiredDirectoriesEmpty", "requiredDirectoriesLaden",
01632   "requiredDirectoriesList", "requiredDirectory", "requiredFiles",
01633   "requiredFilesStart", "requiredFilesAttributes", "requiredFilesContent",
01634   "requiredFilesEmpty", "requiredFilesLaden", "requiredFilesList",
01635   "requiredFile", "directoriesToMake", "directoriesToMakeStart",
01636   "directoriesToMakeAttributes", "directoriesToMakeContent",
01637   "directoriesToMakeEmpty", "directoriesToMakeLaden",
01638   "directoriesToMakeList", "directoryToMake", "filesToMake",
01639   "filesToMakeStart", "filesToMakeAttributes", "filesToMakeContent",
01640   "filesToMakeEmpty", "filesToMakeLaden", "filesToMakeList", "fileToMake",
01641   "inputDirectoriesToMove", "inputDirectoriesToMoveStart",
01642   "inputDirectoriesToMoveAttributes", "inputDirectoriesToMoveContent",
01643   "inputDirectoriesToMoveEmpty", "inputDirectoriesToMoveLaden",
01644   "inputDirectoriesToMoveList", "inputDirectoryToMove", "inputFilesToMove",
01645   "inputFilesToMoveStart", "inputFilesToMoveAttributes",
01646   "inputFilesToMoveContent", "inputFilesToMoveEmpty",
01647   "inputFilesToMoveLaden", "inputFilesToMoveList", "inputFileToMove",
01648   "outputFilesToMove", "outputFilesToMoveStart",
01649   "outputFilesToMoveAttributes", "outputFilesToMoveContent",
01650   "outputFilesToMoveEmpty", "outputFilesToMoveLaden",
01651   "outputFilesToMoveList", "outputFileToMove", "outputDirectoriesToMove",
01652   "outputDirectoriesToMoveStart", "outputDirectoriesToMoveAttributes",
01653   "outputDirectoriesToMoveContent", "outputDirectoriesToMoveEmpty",
01654   "outputDirectoriesToMoveLaden", "outputDirectoriesToMoveList",
01655   "outputDirectoryToMove", "filesToDelete", "filesToDeleteStart",
01656   "filesToDeleteAttributes", "filesToDeleteContent", "filesToDeleteEmpty",
01657   "filesToDeleteLaden", "filesToDeleteList", "fileToDelete",
01658   "directoriesToDelete", "directoriesToDeleteStart",
01659   "directoriesToDeleteAttributes", "directoriesToDeleteContent",
01660   "directoriesToDeleteEmpty", "directoriesToDeleteLaden",
01661   "directoriesToDeleteList", "directoryToDelete", "processesToKill",
01662   "processesToKillStart", "processesToKillAttributes",
01663   "processesToKillContent", "processesToKillEmpty", "processesToKillLaden",
01664   "processesToKillList", "processID", "otherJobOptions",
01665   "otherJobOptionsStart", "otherJobOptionsAttributes",
01666   "otherJobOptionsContent", "otherJobOptionsEmpty", "otherJobOptionsLaden",
01667   "otherJobOptionsBody", "otherJobOptionArray", "otherJobOption",
01668   "otherJobOptionStart", "otherJobOptionAttributes",
01669   "otherJobOptionAttList", "otherJobOptionAtt", "otherJobOptionEnd",
01670   "optimizationElement", "optimizationStart", "optimizationAttributes",
01671   "optimizationAttList", "optimizationATT", "optimizationContent",
01672   "optimizationEmpty", "optimizationLaden", "optimizationBody",
01673   "variables", "variablesStart", "variablesAttributes",
01674   "numberOfOtherVariableOptions", "variablesContent", "variablesEmpty",
01675   "variablesLaden", "variablesBody", "initialVariableValues",
01676   "initialVariableValuesStart", "initialVariableValuesAttributes",
01677   "initialVariableValuesContent", "initialVariableValuesEmpty",
01678   "initialVariableValuesLaden", "initialVariableValuesBody",
01679   "initVarValueArray", "initVarValue", "initVarValueStart",
01680   "initVarValueAttributes", "initVarValueAttList", "initVarValueAtt",
01681   "initVarValueContent", "initialVariableValuesString",
01682   "initialVariableValuesStringStart",
01683   "initialVariableValuesStringAttributes",
01684   "initialVariableValuesStringContent", "initialVariableValuesStringEmpty",
01685   "initialVariableValuesStringLaden", "initialVariableValuesStringBody",
01686   "initVarValueStringArray", "initVarValueString",
01687   "initVarValueStringStart", "initVarValueStringAttributes",
01688   "initVarValueStringAttList", "initVarValueStringAtt",
01689   "initVarValueStringContent", "variableInitialBasis",
01690   "variableInitialBasisStart", "variableInitialBasisContent",
01691   "variableInitialBasisEmpty", "variableInitialBasisLaden",
01692   "variableInitialBasisBody", "variablesBasic", "variablesBasicStart",
01693   "variablesBasicNumberOfElATT", "variablesBasicContent",
01694   "variablesBasicEmpty", "variablesBasicLaden", "variablesBasicBody",
01695   "variablesAtLower", "variablesAtLowerStart",
01696   "variablesAtLowerNumberOfElATT", "variablesAtLowerContent",
01697   "variablesAtLowerEmpty", "variablesAtLowerLaden", "variablesAtLowerBody",
01698   "variablesAtUpper", "variablesAtUpperStart",
01699   "variablesAtUpperNumberOfElATT", "variablesAtUpperContent",
01700   "variablesAtUpperEmpty", "variablesAtUpperLaden", "variablesAtUpperBody",
01701   "variablesIsFree", "variablesIsFreeStart",
01702   "variablesIsFreeNumberOfElATT", "variablesIsFreeContent",
01703   "variablesIsFreeEmpty", "variablesIsFreeLaden", "variablesIsFreeBody",
01704   "variablesSuperbasic", "variablesSuperbasicStart",
01705   "variablesSuperbasicNumberOfElATT", "variablesSuperbasicContent",
01706   "variablesSuperbasicEmpty", "variablesSuperbasicLaden",
01707   "variablesSuperbasicBody", "variablesUnknown", "variablesUnknownStart",
01708   "variablesUnknownNumberOfElATT", "variablesUnknownContent",
01709   "variablesUnknownEmpty", "variablesUnknownLaden", "variablesUnknownBody",
01710   "integerVariableBranchingWeights",
01711   "integerVariableBranchingWeightsStart",
01712   "integerVariableBranchingWeightsAttributes",
01713   "integerVariableBranchingWeightsContent",
01714   "integerVariableBranchingWeightsEmpty",
01715   "integerVariableBranchingWeightsLaden",
01716   "integerVariableBranchingWeightsBody", "branchingWeightsArray",
01717   "branchingWeight", "branchingWeightStart", "branchingWeightAttributes",
01718   "branchingWeightAttList", "branchingWeightAtt", "branchingWeightContent",
01719   "sosVariableBranchingWeights", "sosVariableBranchingWeightsStart",
01720   "sosVariableBranchingWeightsAttributes",
01721   "sosVariableBranchingWeightsContent", "sosVariableBranchingWeightsEmpty",
01722   "sosVariableBranchingWeightsLaden", "sosWeightGroupArray",
01723   "sosWeightGroup", "sosWeightGroupStart", "sosWeightGroupAttributes",
01724   "sosWeightGroupAttList", "sosWeightGroupAtt", "sosWeightGroupContent",
01725   "sosWeightGroupEmpty", "sosWeightGroupLaden",
01726   "otherVariableOptionsArray", "otherVariableOption",
01727   "otherVariableOptionStart", "otherVariableOptionAttributes",
01728   "otherVariableOptionAttList", "otherVariableOptionATT",
01729   "otherVariableOptionContent", "otherVariableOptionEmpty",
01730   "otherVariableOptionLaden", "otherVariableOptionBody", "otherVarList",
01731   "otherVar", "otherVarStart", "otherVarAttributes", "otherVarAttList",
01732   "otherVarAtt", "otherVarContent", "otherVarEmpty", "objectives",
01733   "objectivesStart", "objectivesAttributes",
01734   "numberOfOtherObjectiveOptions", "objectivesContent", "objectivesEmpty",
01735   "objectivesLaden", "objectivesBody", "initialObjectiveValues",
01736   "initialObjectiveValuesStart", "initialObjectiveValuesAttributes",
01737   "initialObjectiveValuesContent", "initialObjectiveValuesEmpty",
01738   "initialObjectiveValuesLaden", "initialObjectiveValuesBody",
01739   "initObjValueArray", "initObjValue", "initObjValueStart",
01740   "initObjValueAttributes", "initObjValueAttList", "initObjValueAtt",
01741   "initObjValueContent", "initialObjectiveBounds",
01742   "initialObjectiveBoundsStart", "numberOfObjATT",
01743   "initialObjectiveBoundsContent", "initialObjectiveBoundsEmpty",
01744   "initialObjectiveBoundsLaden", "initialObjectiveBoundsBody",
01745   "initObjBoundArray", "initObjBound", "initObjBoundStart",
01746   "initObjBoundAttributes", "initObjBoundAttList", "initObjBoundAtt",
01747   "initObjBoundContent", "objectiveInitialBasis",
01748   "objectiveInitialBasisStart", "objectiveInitialBasisContent",
01749   "objectiveInitialBasisEmpty", "objectiveInitialBasisLaden",
01750   "objectiveInitialBasisBody", "objectivesBasic", "objectivesBasicStart",
01751   "objectivesBasicNumberOfElATT", "objectivesBasicContent",
01752   "objectivesBasicEmpty", "objectivesBasicLaden", "objectivesBasicBody",
01753   "objectivesAtLower", "objectivesAtLowerStart",
01754   "objectivesAtLowerNumberOfElATT", "objectivesAtLowerContent",
01755   "objectivesAtLowerEmpty", "objectivesAtLowerLaden",
01756   "objectivesAtLowerBody", "objectivesAtUpper", "objectivesAtUpperStart",
01757   "objectivesAtUpperNumberOfElATT", "objectivesAtUpperContent",
01758   "objectivesAtUpperEmpty", "objectivesAtUpperLaden",
01759   "objectivesAtUpperBody", "objectivesIsFree", "objectivesIsFreeStart",
01760   "objectivesIsFreeNumberOfElATT", "objectivesIsFreeContent",
01761   "objectivesIsFreeEmpty", "objectivesIsFreeLaden", "objectivesIsFreeBody",
01762   "objectivesSuperbasic", "objectivesSuperbasicStart",
01763   "objectivesSuperbasicNumberOfElATT", "objectivesSuperbasicContent",
01764   "objectivesSuperbasicEmpty", "objectivesSuperbasicLaden",
01765   "objectivesSuperbasicBody", "objectivesUnknown",
01766   "objectivesUnknownStart", "objectivesUnknownNumberOfElATT",
01767   "objectivesUnknownContent", "objectivesUnknownEmpty",
01768   "objectivesUnknownLaden", "objectivesUnknownBody",
01769   "otherObjectiveOptionsArray", "otherObjectiveOption",
01770   "otherObjectiveOptionStart", "otherObjectiveOptionAttributes",
01771   "otherObjectiveOptionAttList", "otherObjectiveOptionATT",
01772   "otherObjectiveOptionContent", "otherObjectiveOptionEmpty",
01773   "otherObjectiveOptionLaden", "otherObjectiveOptionBody", "otherObjList",
01774   "otherObj", "otherObjStart", "otherObjAttributes", "otherObjAttList",
01775   "otherObjAtt", "otherObjContent", "otherObjEmpty", "constraints",
01776   "constraintsStart", "constraintsAttributes",
01777   "numberOfOtherConstraintOptions", "constraintsContent",
01778   "constraintsEmpty", "constraintsLaden", "constraintsBody",
01779   "initialConstraintValues", "initialConstraintValuesStart",
01780   "initialConstraintValuesAttributes", "initialConstraintValuesContent",
01781   "initialConstraintValuesEmpty", "initialConstraintValuesLaden",
01782   "initialConstraintValuesBody", "initConValueArray", "initConValue",
01783   "initConValueStart", "initConValueAttributes", "initConValueAttList",
01784   "initConValueAtt", "initConValueContent", "initialDualValues",
01785   "initialDualValuesStart", "initialDualValuesAttributes",
01786   "initialDualValuesContent", "initialDualValuesEmpty",
01787   "initialDualValuesLaden", "initialDualValuesBody", "initDualValueArray",
01788   "initDualValue", "initDualValueStart", "initDualValueAttributes",
01789   "initDualValueAttList", "initDualValueAtt", "initDualValueContent",
01790   "slacksInitialBasis", "slacksInitialBasisStart",
01791   "slacksInitialBasisContent", "slacksInitialBasisEmpty",
01792   "slacksInitialBasisLaden", "slacksInitialBasisBody", "slacksBasic",
01793   "slacksBasicStart", "slacksBasicNumberOfElATT", "slacksBasicContent",
01794   "slacksBasicEmpty", "slacksBasicLaden", "slacksBasicBody",
01795   "slacksAtLower", "slacksAtLowerStart", "slacksAtLowerNumberOfElATT",
01796   "slacksAtLowerContent", "slacksAtLowerEmpty", "slacksAtLowerLaden",
01797   "slacksAtLowerBody", "slacksAtUpper", "slacksAtUpperStart",
01798   "slacksAtUpperNumberOfElATT", "slacksAtUpperContent",
01799   "slacksAtUpperEmpty", "slacksAtUpperLaden", "slacksAtUpperBody",
01800   "slacksIsFree", "slacksIsFreeStart", "slacksIsFreeNumberOfElATT",
01801   "slacksIsFreeContent", "slacksIsFreeEmpty", "slacksIsFreeLaden",
01802   "slacksIsFreeBody", "slacksSuperbasic", "slacksSuperbasicStart",
01803   "slacksSuperbasicNumberOfElATT", "slacksSuperbasicContent",
01804   "slacksSuperbasicEmpty", "slacksSuperbasicLaden", "slacksSuperbasicBody",
01805   "slacksUnknown", "slacksUnknownStart", "slacksUnknownNumberOfElATT",
01806   "slacksUnknownContent", "slacksUnknownEmpty", "slacksUnknownLaden",
01807   "slacksUnknownBody", "otherConstraintOptionsArray",
01808   "otherConstraintOption", "otherConstraintOptionStart",
01809   "otherConstraintOptionAttributes", "otherConstraintOptionAttList",
01810   "otherConstraintOptionATT", "otherConstraintOptionContent",
01811   "otherConstraintOptionEmpty", "otherConstraintOptionLaden",
01812   "otherConstraintOptionBody", "otherConList", "otherCon", "otherConStart",
01813   "otherConAttributes", "otherConAttList", "otherConAtt",
01814   "otherConContent", "otherConEmpty", "solverOptions",
01815   "solverOptionsStart", "numberOfSolverOptionsATT", "solverOptionsContent",
01816   "solverOptionsEmpty", "solverOptionsLaden", "solverOptionArray",
01817   "solverOption", "solverOptionStart", "solverOptionAttributes",
01818   "solverOptionAttList", "solverOptionATT", "solverOptionContent",
01819   "solverOptionEmpty", "solverOptionLaden", "solverOptionBody",
01820   "solverOptionItemArray", "solverOptionItem", "solverOptionItemContent",
01821   "solverOptionItemEmpty", "solverOptionItemLaden", "solverOptionItemBody",
01822   "PathPair", "PathPairStart", "PathPairAttributes", "PathPairAttList",
01823   "PathPairAttribute", "PathPairFromATT", "PathPairToATT",
01824   "PathPairMakeCopyATT", "PathPairEnd", "categoryAttribute", "categoryAtt",
01825   "categoryAttEmpty", "categoryAttContent", "descriptionAttribute",
01826   "descriptionAtt", "descriptionAttEmpty", "descriptionAttContent",
01827   "groupWeightAttribute", "groupWeightAtt", "idxAttribute", "idxAtt",
01828   "idxAttContent", "lbValueAttribute", "lbValueAtt", "lbValueAttEmpty",
01829   "lbValueAttContent", "lbDualValueAttribute", "lbDualValueAtt",
01830   "lbDualValueAttEmpty", "lbDualValueAttContent", "nameAttribute",
01831   "nameAtt", "nameAttEmpty", "nameAttContent", "solverAttribute",
01832   "solverAtt", "solverAttEmpty", "solverAttContent", "sosIdxAttribute",
01833   "sosIdxAtt", "sosIdxAttContent", "typeAttribute", "typeAtt",
01834   "typeAttEmpty", "typeAttContent", "ubValueAttribute", "ubValueAtt",
01835   "ubValueAttEmpty", "ubValueAttContent", "ubDualValueAttribute",
01836   "ubDualValueAtt", "ubDualValueAttEmpty", "ubDualValueAttContent",
01837   "unitAttribute", "unitAtt", "unitAttEmpty", "unitAttContent",
01838   "valueAttribute", "valueAtt", "valueAttEmpty", "valueAttContent",
01839   "numberOfConAttribute", "numberOfConstraintsAttribute",
01840   "numberOfElAttribute", "numberOfEnumerationsAttribute",
01841   "numberOfItemsAttribute", "numberOfJobIDsATT", "numberOfObjAttribute",
01842   "numberOfObjectivesAttribute", "numberOfOtherConstraintOptionsAttribute",
01843   "numberOfOtherObjectiveOptionsAttribute",
01844   "numberOfOtherOptionsAttribute", "numberOfOtherVariableOptionsAttribute",
01845   "numberOfPathPairsAttribute", "numberOfPathsAttribute",
01846   "numberOfProcessesATT", "numberOfSolverOptionsAttribute",
01847   "numberOfVarAttribute", "numberOfVariablesAttribute",
01848   "otherEnumerationList", "otherEnumeration", "otherEnumerationStart",
01849   "otherEnumerationAttributes", "otherEnumerationAttList",
01850   "otherEnumerationATT", "otherEnumerationContent",
01851   "otherEnumerationEmpty", "otherEnumerationLaden", "otherEnumerationBody",
01852   "osglIntArrayData", "osglIntVectorElArray", "osglIntVectorEl",
01853   "osglIntVectorElStart", "osglIntVectorElAttributes",
01854   "osglIntVectorElAttList", "osglIntVectorElAtt", "osglIntVectorElContent",
01855   "osglIntVectorBase64", "Base64SizeAttribute", "Base64Content",
01856   "Base64Empty", "Base64Laden", "osglIncrAttribute", "osglMultAttribute",
01857   "aNumber", "quote", "xmlWhiteSpace", "xmlWhiteSpaceChar", 0
01858 };
01859 #endif
01860 
01861 # ifdef YYPRINT
01862 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
01863    token YYLEX-NUM.  */
01864 static const yytype_uint16 yytoknum[] =
01865 {
01866        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
01867      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
01868      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
01869      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
01870      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
01871      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
01872      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
01873      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
01874      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
01875      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
01876      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
01877      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
01878      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
01879      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
01880      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
01881      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
01882      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
01883      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
01884      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
01885      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
01886      455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
01887      465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
01888      475,   476,   477,   478,   479,   480,   481,   482,   483,    32,
01889        9,    13,    10
01890 };
01891 # endif
01892 
01893 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
01894 static const yytype_uint16 yyr1[] =
01895 {
01896        0,   233,   234,   234,   235,   236,   237,   237,   238,   238,
01897      239,   240,   241,   241,   242,   243,   243,   244,   245,   245,
01898      246,   247,   248,   249,   249,   250,   250,   251,   251,   252,
01899      253,   253,   254,   254,   255,   255,   256,   257,   257,   258,
01900      258,   259,   259,   260,   261,   261,   262,   262,   263,   263,
01901      264,   265,   265,   266,   266,   267,   267,   268,   269,   269,
01902      270,   271,   271,   272,   272,   273,   274,   275,   275,   276,
01903      276,   276,   276,   276,   276,   276,   276,   276,   276,   276,
01904      277,   278,   279,   279,   280,   280,   281,   282,   283,   284,
01905      285,   285,   286,   286,   287,   288,   289,   290,   291,   291,
01906      292,   292,   293,   294,   295,   296,   297,   297,   298,   299,
01907      299,   300,   300,   301,   302,   303,   304,   305,   305,   306,
01908      306,   307,   308,   309,   310,   311,   311,   312,   312,   313,
01909      314,   315,   316,   317,   317,   318,   318,   319,   320,   321,
01910      322,   323,   323,   324,   324,   325,   326,   327,   328,   329,
01911      329,   330,   330,   331,   332,   333,   334,   335,   335,   336,
01912      337,   337,   338,   338,   339,   340,   341,   342,   343,   344,
01913      344,   345,   345,   346,   347,   348,   348,   349,   350,   351,
01914      352,   352,   353,   353,   353,   354,   354,   355,   355,   356,
01915      357,   357,   358,   358,   359,   360,   361,   361,   362,   362,
01916      362,   362,   362,   363,   364,   365,   366,   366,   367,   367,
01917      368,   369,   370,   371,   372,   373,   373,   374,   374,   375,
01918      376,   377,   378,   379,   380,   380,   381,   381,   382,   383,
01919      384,   385,   386,   386,   387,   388,   389,   390,   391,   392,
01920      392,   393,   393,   394,   395,   396,   396,   397,   398,   399,
01921      400,   400,   401,   401,   401,   402,   402,   403,   403,   404,
01922      405,   405,   406,   406,   407,   408,   409,   409,   410,   410,
01923      411,   412,   413,   413,   414,   414,   415,   416,   417,   418,
01924      419,   420,   420,   421,   421,   422,   423,   424,   424,   425,
01925      426,   427,   428,   428,   429,   429,   429,   430,   430,   431,
01926      431,   432,   433,   433,   434,   434,   435,   436,   437,   437,
01927      438,   438,   438,   438,   438,   438,   438,   438,   438,   438,
01928      438,   438,   438,   438,   438,   439,   440,   441,   441,   442,
01929      442,   443,   443,   444,   445,   446,   447,   448,   449,   449,
01930      450,   450,   451,   452,   453,   454,   455,   456,   456,   457,
01931      457,   458,   459,   459,   460,   461,   462,   463,   464,   464,
01932      465,   465,   466,   467,   467,   468,   469,   470,   471,   472,
01933      472,   473,   473,   474,   475,   475,   476,   477,   478,   479,
01934      480,   480,   481,   481,   482,   483,   483,   484,   485,   486,
01935      487,   488,   488,   489,   489,   490,   491,   491,   492,   493,
01936      494,   495,   496,   496,   497,   497,   498,   499,   499,   500,
01937      501,   502,   503,   504,   504,   505,   505,   506,   507,   507,
01938      508,   509,   510,   511,   512,   512,   513,   513,   514,   515,
01939      515,   516,   517,   518,   519,   520,   520,   521,   521,   522,
01940      523,   523,   524,   525,   526,   527,   528,   528,   529,   529,
01941      530,   531,   531,   532,   533,   534,   535,   536,   536,   537,
01942      537,   538,   539,   539,   540,   541,   542,   543,   544,   544,
01943      545,   545,   546,   547,   547,   548,   549,   550,   551,   552,
01944      552,   553,   553,   554,   555,   556,   556,   557,   558,   559,
01945      560,   560,   561,   561,   561,   562,   562,   563,   563,   564,
01946      565,   566,   566,   567,   567,   567,   568,   568,   569,   570,
01947      571,   572,   572,   573,   574,   575,   575,   576,   576,   577,
01948      578,   579,   580,   580,   581,   582,   583,   583,   584,   584,
01949      585,   586,   587,   587,   588,   589,   590,   591,   591,   592,
01950      592,   592,   593,   593,   594,   594,   595,   596,   597,   597,
01951      598,   598,   599,   600,   601,   601,   602,   603,   604,   605,
01952      605,   606,   606,   606,   607,   607,   608,   608,   609,   610,
01953      610,   611,   612,   613,   614,   614,   615,   616,   617,   617,
01954      618,   619,   620,   621,   621,   622,   623,   624,   624,   625,
01955      626,   627,   628,   628,   629,   630,   631,   631,   632,   633,
01956      634,   635,   635,   636,   637,   638,   638,   639,   640,   641,
01957      642,   642,   643,   644,   645,   645,   646,   647,   648,   649,
01958      649,   650,   651,   652,   652,   653,   654,   655,   656,   656,
01959      657,   658,   659,   659,   660,   660,   661,   662,   663,   663,
01960      664,   665,   666,   667,   667,   668,   668,   668,   669,   669,
01961      670,   670,   671,   672,   673,   673,   674,   674,   675,   676,
01962      676,   677,   678,   679,   680,   680,   681,   681,   681,   682,
01963      682,   683,   683,   684,   685,   685,   686,   687,   688,   689,
01964      689,   690,   690,   690,   690,   690,   690,   690,   690,   691,
01965      691,   692,   692,   693,   694,   694,   695,   695,   696,   697,
01966      698,   699,   699,   700,   700,   700,   700,   700,   701,   702,
01967      702,   703,   703,   704,   705,   706,   706,   707,   707,   708,
01968      709,   710,   711,   711,   712,   713,   714,   714,   715,   715,
01969      716,   717,   718,   718,   719,   720,   721,   722,   722,   723,
01970      723,   723,   724,   724,   725,   725,   726,   727,   728,   728,
01971      729,   729,   730,   731,   732,   732,   733,   734,   735,   736,
01972      736,   737,   737,   737,   737,   738,   738,   739,   739,   740,
01973      741,   741,   742,   743,   744,   745,   745,   746,   747,   748,
01974      748,   749,   750,   751,   752,   752,   753,   754,   755,   755,
01975      756,   757,   758,   759,   759,   760,   761,   762,   762,   763,
01976      764,   765,   766,   766,   767,   768,   769,   769,   770,   771,
01977      772,   773,   773,   774,   775,   776,   776,   777,   778,   779,
01978      780,   780,   781,   782,   783,   783,   784,   785,   786,   787,
01979      787,   788,   789,   790,   791,   791,   792,   792,   792,   792,
01980      792,   792,   792,   792,   793,   793,   794,   794,   795,   796,
01981      796,   797,   797,   798,   799,   800,   801,   801,   802,   802,
01982      802,   802,   802,   803,   804,   804,   805,   805,   806,   807,
01983      808,   808,   809,   809,   810,   811,   812,   813,   813,   814,
01984      815,   816,   816,   817,   817,   818,   819,   820,   820,   821,
01985      822,   823,   824,   824,   825,   825,   825,   826,   826,   827,
01986      827,   828,   829,   830,   830,   831,   831,   832,   833,   834,
01987      834,   835,   836,   837,   838,   838,   839,   839,   839,   839,
01988      840,   840,   841,   841,   842,   843,   843,   844,   845,   846,
01989      847,   847,   848,   849,   850,   850,   851,   852,   853,   854,
01990      854,   855,   856,   857,   857,   858,   859,   860,   861,   861,
01991      862,   863,   864,   864,   865,   866,   867,   868,   868,   869,
01992      870,   871,   871,   872,   873,   874,   875,   875,   876,   877,
01993      878,   878,   879,   880,   881,   882,   882,   883,   884,   885,
01994      885,   886,   887,   888,   889,   889,   890,   891,   892,   893,
01995      893,   894,   894,   894,   894,   894,   894,   894,   894,   895,
01996      895,   896,   896,   897,   898,   898,   899,   899,   900,   901,
01997      902,   903,   903,   904,   904,   904,   904,   904,   905,   906,
01998      906,   907,   907,   908,   909,   910,   910,   911,   912,   913,
01999      913,   914,   915,   916,   917,   917,   918,   918,   918,   918,
02000      918,   918,   918,   919,   919,   920,   920,   921,   922,   923,
02001      923,   924,   925,   925,   926,   926,   927,   928,   929,   930,
02002      931,   932,   932,   933,   933,   933,   934,   935,   936,   937,
02003      937,   938,   939,   939,   940,   941,   942,   943,   943,   944,
02004      945,   946,   947,   948,   949,   950,   951,   952,   952,   953,
02005      954,   955,   956,   956,   957,   958,   959,   960,   960,   961,
02006      962,   963,   964,   964,   965,   966,   967,   968,   969,   970,
02007      971,   971,   972,   973,   974,   975,   975,   976,   977,   978,
02008      979,   979,   980,   981,   982,   983,   983,   984,   985,   986,
02009      987,   987,   988,   989,   990,   991,   992,   993,   994,   995,
02010      996,   997,   998,   999,  1000,  1001,  1002,  1003,  1004,  1005,
02011     1006,  1007,  1008,  1008,  1009,  1010,  1011,  1012,  1012,  1013,
02012     1013,  1013,  1014,  1014,  1015,  1016,  1017,  1018,  1018,  1019,
02013     1019,  1020,  1021,  1022,  1023,  1023,  1024,  1024,  1025,  1026,
02014     1027,  1028,  1028,  1029,  1029,  1030,  1031,  1032,  1033,  1033,
02015     1034,  1035,  1035,  1036,  1036,  1036,  1036
02016 };
02017 
02018 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
02019 static const yytype_uint8 yyr2[] =
02020 {
02021        0,     2,     3,     3,     1,     1,     0,     1,     1,     1,
02022        1,     3,     1,     0,     6,     0,     2,     1,     1,     1,
02023        1,     3,     5,     0,     1,     1,     1,     1,     1,     3,
02024        0,     1,     1,     1,     1,     1,     3,     0,     1,     1,
02025        1,     1,     1,     3,     0,     1,     1,     1,     1,     1,
02026        3,     0,     1,     1,     1,     1,     1,     3,     0,     2,
02027        1,     1,     1,     2,     1,     3,     1,     1,     2,     1,
02028        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02029        2,     1,     1,     1,     2,     1,     3,     1,     2,     1,
02030        1,     1,     2,     1,     3,     1,     2,     1,     1,     1,
02031        2,     1,     3,     1,     3,     1,     0,     1,     3,     1,
02032        1,     2,     1,     3,     1,     2,     1,     1,     1,     2,
02033        1,     3,     1,     2,     1,     1,     1,     2,     1,     3,
02034        1,     2,     1,     1,     1,     2,     1,     3,     1,     2,
02035        1,     1,     1,     2,     1,     3,     1,     2,     1,     1,
02036        1,     2,     1,     3,     1,     3,     1,     0,     1,     3,
02037        1,     1,     2,     1,     3,     1,     3,     1,     1,     1,
02038        1,     2,     1,     3,     1,     1,     2,     3,     1,     1,
02039        0,     2,     1,     1,     1,     2,     1,     0,     2,     1,
02040        1,     1,     2,     1,     3,     1,     1,     2,     1,     1,
02041        1,     1,     1,     3,     1,     1,     0,     2,     1,     1,
02042        3,     1,     3,     1,     1,     0,     2,     1,     1,     3,
02043        1,     3,     1,     1,     0,     2,     1,     1,     3,     1,
02044        3,     1,     0,     1,     3,     1,     3,     1,     1,     1,
02045        1,     2,     1,     3,     1,     1,     2,     3,     1,     1,
02046        0,     2,     1,     1,     1,     2,     1,     0,     2,     1,
02047        1,     1,     2,     1,     3,     1,     1,     2,     1,     1,
02048        2,     1,     1,     1,     2,     1,     3,     1,     3,     1,
02049        1,     1,     1,     2,     1,     3,     1,     1,     2,     3,
02050        1,     1,     0,     2,     1,     1,     1,     2,     1,     0,
02051        2,     1,     1,     1,     2,     1,     3,     1,     1,     2,
02052        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02053        1,     1,     1,     1,     1,     3,     1,     0,     1,     1,
02054        1,     2,     1,     3,     1,     1,     2,     1,     1,     1,
02055        2,     1,     3,     1,     3,     1,     1,     1,     1,     2,
02056        1,     3,     1,     2,     4,     3,     1,     1,     1,     1,
02057        2,     1,     3,     1,     2,     4,     3,     1,     1,     1,
02058        1,     2,     1,     3,     1,     2,     4,     3,     1,     1,
02059        1,     1,     2,     1,     3,     1,     2,     4,     3,     1,
02060        1,     1,     1,     2,     1,     3,     1,     2,     4,     3,
02061        1,     1,     1,     1,     2,     1,     3,     1,     2,     1,
02062        3,     1,     1,     1,     1,     2,     1,     3,     1,     2,
02063        1,     3,     1,     1,     1,     1,     2,     1,     3,     1,
02064        2,     1,     3,     1,     1,     1,     1,     2,     1,     3,
02065        1,     2,     1,     3,     1,     1,     1,     1,     2,     1,
02066        3,     1,     2,     4,     3,     1,     1,     1,     1,     2,
02067        1,     3,     1,     2,     4,     3,     1,     1,     1,     1,
02068        2,     1,     3,     1,     2,     4,     3,     1,     1,     1,
02069        1,     2,     1,     3,     1,     1,     2,     3,     1,     1,
02070        0,     2,     1,     1,     1,     2,     1,     0,     3,     1,
02071        1,     0,     2,     1,     1,     1,     1,     1,     1,     3,
02072        4,     0,     3,     1,     1,     0,     1,     1,     1,     1,
02073        3,     6,     0,     3,     1,     1,     1,     1,     2,     1,
02074        3,     1,     1,     2,     3,     1,     1,     0,     2,     1,
02075        1,     1,     2,     1,     0,     3,     1,     1,     1,     1,
02076        2,     1,     3,     1,     1,     2,     3,     1,     1,     0,
02077        2,     1,     1,     1,     2,     1,     0,     2,     1,     1,
02078        1,     1,     3,     6,     0,     3,     1,     1,     1,     1,
02079        1,     3,     1,     0,     3,     1,     1,     1,     1,     1,
02080        3,     1,     0,     3,     1,     1,     1,     1,     1,     3,
02081        1,     0,     3,     1,     1,     1,     1,     1,     3,     1,
02082        0,     3,     1,     1,     1,     1,     1,     3,     1,     0,
02083        3,     1,     1,     1,     1,     1,     3,     1,     0,     3,
02084        1,     1,     1,     1,     2,     1,     3,     1,     1,     2,
02085        3,     1,     1,     0,     2,     1,     1,     1,     2,     1,
02086        0,     3,     1,     4,     1,     1,     2,     1,     3,     1,
02087        2,     3,     1,     1,     0,     2,     1,     1,     1,     1,
02088        1,     2,     1,     3,     0,     2,     3,     1,     1,     0,
02089        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02090        1,     2,     1,     3,     1,     1,     1,     2,     3,     1,
02091        1,     0,     2,     1,     1,     1,     1,     1,     1,     2,
02092        1,     0,     3,     1,     1,     0,     1,     1,     1,     1,
02093        3,     4,     0,     3,     1,     1,     1,     1,     2,     1,
02094        3,     1,     1,     2,     3,     1,     1,     0,     2,     1,
02095        1,     1,     2,     1,     0,     3,     1,     1,     1,     1,
02096        2,     1,     3,     1,     1,     2,     3,     1,     1,     0,
02097        2,     1,     1,     1,     1,     2,     1,     0,     2,     1,
02098        1,     1,     1,     3,     6,     0,     3,     1,     1,     1,
02099        1,     1,     3,     1,     0,     3,     1,     1,     1,     1,
02100        1,     3,     1,     0,     3,     1,     1,     1,     1,     1,
02101        3,     1,     0,     3,     1,     1,     1,     1,     1,     3,
02102        1,     0,     3,     1,     1,     1,     1,     1,     3,     1,
02103        0,     3,     1,     1,     1,     1,     1,     3,     1,     0,
02104        2,     3,     1,     1,     0,     2,     1,     1,     1,     1,
02105        1,     1,     1,     1,     1,     1,     2,     1,     3,     1,
02106        1,     1,     2,     3,     1,     1,     0,     2,     1,     1,
02107        1,     1,     1,     1,     2,     1,     0,     3,     1,     1,
02108        0,     1,     1,     1,     1,     3,     4,     0,     3,     1,
02109        1,     1,     1,     2,     1,     3,     1,     1,     2,     3,
02110        1,     1,     0,     2,     1,     1,     1,     2,     1,     0,
02111        3,     1,     1,     1,     1,     2,     1,     3,     1,     1,
02112        2,     3,     1,     1,     0,     2,     1,     1,     1,     1,
02113        2,     1,     0,     2,     1,     1,     1,     1,     3,     6,
02114        0,     3,     1,     1,     1,     1,     1,     3,     1,     0,
02115        3,     1,     1,     1,     1,     1,     3,     1,     0,     3,
02116        1,     1,     1,     1,     1,     3,     1,     0,     3,     1,
02117        1,     1,     1,     1,     3,     1,     0,     3,     1,     1,
02118        1,     1,     1,     3,     1,     0,     3,     1,     1,     1,
02119        1,     1,     3,     1,     0,     2,     3,     1,     1,     0,
02120        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02121        1,     2,     1,     3,     1,     1,     1,     2,     3,     1,
02122        1,     0,     2,     1,     1,     1,     1,     1,     1,     2,
02123        1,     0,     3,     1,     1,     1,     1,     1,     3,     0,
02124        2,     3,     1,     1,     1,     2,     1,     1,     1,     1,
02125        1,     1,     1,     1,     1,     2,     1,     3,     1,     1,
02126        2,     1,     1,     1,     1,     1,     3,     1,     3,     1,
02127        1,     0,     2,     1,     1,     1,     3,     3,     3,     2,
02128        1,     1,     1,     1,     1,     3,     1,     1,     1,     1,
02129        3,     1,     4,     1,     1,     4,     1,     1,     1,     1,
02130        3,     1,     1,     1,     1,     4,     1,     1,     1,     1,
02131        3,     1,     1,     1,     1,     3,     1,     1,     4,     1,
02132        1,     1,     1,     3,     1,     1,     1,     1,     3,     1,
02133        1,     1,     1,     4,     1,     1,     1,     1,     3,     1,
02134        1,     1,     1,     3,     4,     4,     4,     4,     4,     4,
02135        4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
02136        4,     4,     1,     2,     3,     1,     1,     0,     2,     1,
02137        1,     1,     1,     1,     1,     3,     1,     1,     1,     0,
02138        2,     3,     1,     1,     0,     2,     1,     1,     3,     3,
02139        4,     1,     1,     2,     1,     3,     4,     4,     1,     1,
02140        2,     0,     2,     1,     1,     1,     1
02141 };
02142 
02143 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
02144    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
02145    means the default is an error.  */
02146 static const yytype_uint16 yydefact[] =
02147 {
02148        0,     5,     4,     0,    15,     6,     1,    17,    13,    58,
02149        0,     7,     0,    12,     2,    60,   187,     0,    23,    20,
02150       16,    18,    19,    15,    10,     3,     8,     9,   189,   257,
02151        0,     0,    64,    59,    61,    62,     0,    28,    27,     0,
02152       30,    24,    25,    26,    13,   259,   299,     0,     0,   193,
02153      188,   190,   191,    63,    81,    89,    97,   105,   116,   124,
02154      132,   140,   148,   156,   167,     0,    66,    67,    69,     0,
02155       70,     0,    71,     0,    72,   106,    73,     0,    74,     0,
02156       75,     0,    76,     0,    77,     0,    78,   157,    79,     0,
02157        0,    21,     0,    35,    34,    37,    31,    32,    33,    11,
02158      301,   497,     0,     0,   263,   258,   260,   261,   192,   237,
02159      204,   213,   222,   231,     0,   195,   196,   198,   206,   199,
02160      215,   200,   224,   201,   232,   202,     0,    65,    68,     0,
02161       85,    80,    82,    83,     0,    93,    88,    90,    91,     0,
02162      101,    96,    98,    99,     0,     0,   107,     0,   120,   115,
02163      117,   118,     0,   128,   123,   125,   126,     0,   136,   131,
02164      133,   134,     0,   144,   139,   141,   142,     0,   152,   147,
02165      149,   150,     0,     0,   158,  1191,     0,   168,    29,     0,
02166        0,    42,    41,    44,    38,    39,    40,   499,    14,   501,
02167        0,   305,   300,   302,   303,   262,   279,   271,     0,   265,
02168      266,   268,     0,   269,     0,   194,   197,     0,   205,     0,
02169      214,     0,   223,     0,  1079,     0,   233,  1076,  1077,  1078,
02170        0,   238,    87,    84,     0,    95,    92,     0,   103,   100,
02171        0,     0,     0,   112,   104,   109,   110,   122,   119,     0,
02172      130,   127,     0,   138,   135,     0,   146,   143,     0,   154,
02173      151,     0,     0,     0,   163,   155,   160,   161,     0,     0,
02174        0,   172,   166,   169,   170,    36,     0,     0,    49,    48,
02175       51,    45,    46,    47,     0,   500,   304,   477,   326,   337,
02176      345,   356,   367,   378,   389,   455,   444,   400,   411,   433,
02177      422,   466,     0,   307,   308,   310,   327,   311,     0,   312,
02178        0,   313,     0,   314,     0,   315,     0,   316,     0,   317,
02179        0,   318,     0,   320,     0,   319,     0,   321,     0,   322,
02180        0,   323,     0,   324,     0,   264,   267,     0,   275,   270,
02181      272,   273,     0,   280,     0,   203,     0,  1127,   207,   209,
02182      208,  1124,  1125,  1126,     0,   212,   216,   218,   217,     0,
02183      221,   225,   227,   226,  1191,     0,   230,     0,   242,   236,
02184      239,   240,    86,    94,   102,   108,   114,   111,     0,   121,
02185      129,   137,   145,   153,   159,   165,   162,     0,  1191,  1190,
02186     1193,  1194,  1195,  1196,  1192,   171,   178,     0,   174,   175,
02187      180,    43,     0,     0,    56,    55,    22,    52,    53,    54,
02188      511,   508,   498,   506,   507,  1191,  1191,  1191,   502,   504,
02189      505,   503,   306,   309,     0,   328,     0,   341,   336,   338,
02190      339,     0,     0,   346,     0,     0,   357,     0,   368,     0,
02191      379,     0,   390,     0,     0,   401,     0,   412,     0,   423,
02192        0,   434,     0,   445,     0,   456,     0,     0,   467,     0,
02193      478,   277,   274,     0,     0,   284,   278,   281,   282,  1188,
02194     1189,     0,   211,     0,     0,   220,     0,   229,  1080,   235,
02195        0,   241,   248,     0,   244,   245,   250,   113,   164,  1144,
02196      173,   176,     0,   179,    50,     0,   513,     0,   711,   515,
02197        0,     0,     0,     0,   332,   325,   329,   330,   343,   340,
02198        0,     0,     0,   350,   344,   347,   348,     0,     0,   361,
02199      355,   358,   359,     0,   372,   366,   369,   370,     0,   383,
02200      377,   380,   381,     0,   394,   388,   391,   392,     0,     0,
02201      405,   399,   402,   403,     0,   416,   410,   413,   414,     0,
02202      427,   421,   424,   425,     0,   438,   432,   435,   436,     0,
02203      449,   443,   446,   447,     0,   460,   454,   457,   458,     0,
02204        0,   471,   465,   468,   469,     0,   482,   476,   479,   480,
02205      276,   283,   290,     0,   286,   287,   292,   210,  1128,   219,
02206      228,   234,   243,   246,     0,   249,     0,   186,   177,     0,
02207        0,  1099,  1132,   181,   184,   182,  1096,  1097,  1098,   183,
02208     1129,  1130,  1131,    57,   509,   713,   866,   715,  1191,     0,
02209      514,   516,  1191,  1191,  1191,   331,     0,   334,   335,   342,
02210        0,     0,   349,     0,   352,     0,   360,     0,     0,   363,
02211      371,     0,     0,   374,     0,   382,     0,   385,     0,   393,
02212        0,   396,     0,  1059,   404,     0,   407,   409,  1061,   415,
02213        0,   418,   420,   426,     0,   429,   431,   437,     0,   440,
02214      442,     0,   448,     0,   451,     0,   459,     0,   462,     0,
02215      470,     0,     0,   473,   481,   488,     0,   484,   485,   490,
02216      285,   288,     0,   291,     0,   256,   247,   251,   254,   252,
02217      253,   185,  1191,     0,   868,  1021,   870,  1191,     0,   714,
02218      716,     0,   522,   519,   512,   517,   518,  1151,  1141,  1135,
02219      333,  1139,     0,   351,   353,  1147,     0,   362,   364,     0,
02220      373,   375,     0,   384,   386,     0,   395,   397,  1146,   406,
02221      408,     0,  1060,   417,   419,   428,   430,   439,   441,     0,
02222      450,   452,     0,   461,   463,  1148,     0,   472,   474,   483,
02223      486,     0,   489,     0,   298,   289,   293,   296,   294,   295,
02224      255,  1100,  1133,  1023,   510,     0,  1191,     0,   869,   871,
02225        0,   722,   719,   712,   717,   718,  1191,   524,     0,   544,
02226        0,     0,     0,     0,     0,     0,     0,  1070,  1058,     0,
02227        0,     0,  1062,  1063,  1064,  1065,     0,     0,     0,     0,
02228      496,   487,   491,   494,   492,   493,   297,  1191,     0,  1024,
02229        0,   877,   874,   867,   872,   873,  1191,   724,     0,   744,
02230        0,  1145,   520,   546,   566,     0,  1191,     0,   525,   354,
02231      365,   376,   387,   398,  1069,     0,     0,     0,   453,   464,
02232      475,   495,     0,  1029,  1027,  1022,  1025,  1026,  1191,   879,
02233        0,   899,     0,  1143,   720,   746,   767,     0,  1191,     0,
02234      725,   568,   628,     0,     0,   547,     0,     0,   529,   523,
02235      526,   527,  1066,  1067,  1068,  1191,     0,  1142,   875,   901,
02236      922,     0,  1191,     0,   880,   769,   829,     0,     0,   747,
02237        0,     0,   729,   723,   726,   727,   630,   650,     0,   574,
02238      571,   567,   569,   570,     0,   551,   545,   548,   549,  1191,
02239      528,   535,     0,   531,   532,   537,  1149,  1028,  1032,  1030,
02240        0,   924,   984,     0,     0,   902,     0,     0,   884,   878,
02241      881,   882,   721,   775,   772,   768,   770,   771,     0,   751,
02242      745,   748,   749,  1191,   728,   735,     0,   731,   732,   737,
02243      652,   674,     0,     0,   631,   576,     0,   583,     0,   557,
02244      550,     0,   553,   554,   559,  1150,   530,   533,     0,   536,
02245        0,     0,  1191,  1112,  1074,     0,  1104,     0,  1033,  1034,
02246     1039,  1071,  1072,  1073,  1041,  1036,  1038,  1101,  1102,  1103,
02247     1040,  1109,  1110,  1111,  1037,  1042,   876,   930,   927,   923,
02248      925,   926,     0,   906,   900,   903,   904,  1191,   883,   890,
02249        0,   886,   887,   892,   832,   830,   834,   777,     0,   784,
02250        0,   757,   750,     0,   753,   754,   759,  1140,   730,   733,
02251        0,   736,   521,     0,     0,     0,   635,   629,   632,   633,
02252      572,   585,   592,     0,  1191,     0,   577,   552,   555,     0,
02253      558,     0,   543,   534,  1191,   538,   539,  1083,  1084,   540,
02254      541,  1191,     0,     0,  1191,     0,  1046,  1031,  1043,  1044,
02255     1035,   987,   985,   989,   932,     0,   939,     0,   912,   905,
02256        0,   908,   909,   914,  1134,   885,   888,     0,   891,     0,
02257      833,   773,   786,   793,     0,     0,   778,   752,   755,     0,
02258      758,     0,   743,   734,   738,   739,   740,   741,   677,   675,
02259      679,     0,     0,   657,   651,   654,   655,   641,   634,     0,
02260      637,   638,   643,   594,   601,     0,     0,   586,     0,  1169,
02261      580,   575,   578,   579,     0,   565,   556,   560,   561,   562,
02262      563,   542,     0,  1075,  1113,  1191,  1105,  1045,  1055,     0,
02263     1054,     0,  1048,  1049,  1051,  1052,  1053,     0,   988,   928,
02264      941,   948,     0,     0,   933,   907,   910,     0,   913,     0,
02265      898,   889,   893,   894,   895,   896,     0,   847,   831,   844,
02266      845,  1191,   835,   841,   843,   838,   840,   842,   839,   837,
02267      836,   795,   802,     0,     0,   787,  1169,   781,   776,   779,
02268      780,     0,   766,   756,  1089,  1117,     0,     0,   760,   761,
02269      763,  1086,  1087,  1088,   762,   764,  1114,  1115,  1116,   742,
02270        0,   678,     0,   656,   662,     0,   659,   664,   636,   639,
02271        0,   642,   603,   610,     0,     0,   595,  1169,   589,   584,
02272      587,   588,  1191,     0,     0,   582,  1167,  1168,   564,  1191,
02273     1138,  1057,     0,  1047,  1050,     0,  1002,   986,   999,  1000,
02274      990,   996,   998,   993,   995,   997,   994,   991,   992,   950,
02275      957,     0,     0,   942,  1169,   936,   931,   934,   935,     0,
02276      921,   911,  1094,  1122,  1191,  1191,   915,   916,   918,  1091,
02277     1092,  1093,   917,   919,  1119,  1120,  1121,   897,   846,   854,
02278     1155,     0,   849,   851,   856,   850,  1152,  1157,     0,   804,
02279      811,     0,     0,   796,  1169,   790,   785,   788,   789,     0,
02280      783,   765,  1191,  1191,     0,   692,   676,   689,   690,   680,
02281      686,   688,   683,   685,   687,   684,   682,   681,   653,   658,
02282      660,     0,   663,     0,   649,   640,   644,   645,   646,   647,
02283      612,   619,     0,     0,   604,  1169,   598,   593,   596,   597,
02284        0,   591,  1136,  1191,     0,   581,  1172,  1170,  1174,  1085,
02285     1056,  1001,  1009,     0,  1004,  1006,  1011,  1005,   959,   966,
02286        0,     0,   951,  1169,   945,   940,   943,   944,     0,   938,
02287      920,     0,     0,   848,   852,     0,   855,  1153,     0,  1156,
02288     1191,   813,   820,     0,     0,   805,  1169,   799,   794,   797,
02289      798,     0,   792,   782,  1090,  1118,   691,   699,     0,   694,
02290      696,   701,   695,     0,   672,   661,   669,   670,     0,  1191,
02291      665,   668,  1081,   666,  1106,  1107,   667,   648,   621,   573,
02292        0,     0,   613,  1169,   607,   602,   605,   606,     0,   600,
02293      590,     0,     0,  1184,  1179,  1181,  1182,     0,  1173,  1003,
02294     1007,     0,  1010,   968,   975,     0,     0,   960,  1169,   954,
02295      949,   952,   953,     0,   947,   937,  1191,  1191,     0,   865,
02296      853,   863,   857,   858,   861,   859,   862,   860,  1169,  1164,
02297     1154,  1162,  1163,  1161,  1160,  1159,  1158,  1137,   822,   774,
02298        0,     0,   814,  1169,   808,   803,   806,   807,     0,   801,
02299      791,   693,   697,     0,   700,   671,     0,     0,     0,     0,
02300      622,  1169,   616,   611,   614,   615,     0,   609,   599,  1191,
02301        0,  1183,     0,  1171,  1191,  1191,  1175,  1177,  1176,     0,
02302     1020,  1008,  1018,  1012,  1013,  1016,  1014,  1017,  1015,   977,
02303      929,     0,     0,   969,  1169,   963,   958,   961,   962,     0,
02304      956,   946,  1095,  1123,   864,     0,  1166,     0,   823,  1169,
02305      817,   812,   815,   816,     0,   810,   800,     0,   710,   698,
02306      708,   702,   703,   706,   704,   707,   705,   673,     0,  1191,
02307     1169,   625,   620,   623,   624,     0,   618,   608,  1180,  1185,
02308        0,     0,     0,  1019,     0,   978,  1169,   972,   967,   970,
02309      971,     0,   965,   955,  1165,  1169,   826,   821,   824,   825,
02310        0,   819,   809,   709,  1082,  1108,     0,   627,   617,  1178,
02311     1191,  1191,  1169,   981,   976,   979,   980,     0,   974,   964,
02312        0,   828,   818,   626,  1186,  1187,     0,   983,   973,   827,
02313      982
02314 };
02315 
02316 /* YYDEFGOTO[NTERM-NUM].  */
02317 static const yytype_int16 yydefgoto[] =
02318 {
02319       -1,     3,     4,     5,    12,    25,    26,    27,    14,     8,
02320        9,    10,    20,    21,    22,    39,    40,    41,    42,    43,
02321       95,    96,    97,    98,   183,   184,   185,   186,   270,   271,
02322      272,   273,   396,   397,   398,   399,    16,    17,    33,    34,
02323       35,    65,    66,    67,    68,    69,   131,   132,   133,   224,
02324       70,    71,   136,   137,   138,   227,    72,    73,   141,   142,
02325      143,   230,    74,    75,   145,   146,   234,   235,   236,   368,
02326       76,    77,   149,   150,   151,   239,    78,    79,   154,   155,
02327      156,   242,    80,    81,   159,   160,   161,   245,    82,    83,
02328      164,   165,   166,   248,    84,    85,   169,   170,   171,   251,
02329       86,    87,   173,   174,   255,   256,   257,   377,    88,    89,
02330      176,   262,   263,   264,   387,   388,   389,   390,   482,   483,
02331      593,   588,    29,    30,    50,    51,    52,   114,   115,   116,
02332      117,   118,   207,   208,   338,   335,   461,   119,   120,   209,
02333      210,   346,   345,   464,   121,   122,   211,   212,   351,   350,
02334      466,   123,   124,   215,   356,   470,   125,   126,   220,   359,
02335      360,   361,   473,   474,   475,   476,   584,   585,   687,   686,
02336       46,    47,   105,   106,   107,   198,   199,   200,   201,   202,
02337      329,   330,   331,   453,   203,   204,   332,   456,   457,   458,
02338      573,   574,   575,   576,   682,   683,   756,   755,   101,   102,
02339      192,   193,   194,   292,   293,   294,   295,   296,   414,   495,
02340      496,   497,   616,   617,   297,   298,   418,   419,   420,   500,
02341      299,   300,   422,   504,   505,   506,   623,   624,   301,   302,
02342      425,   510,   511,   512,   628,   629,   303,   304,   427,   515,
02343      516,   517,   632,   633,   305,   306,   429,   520,   521,   522,
02344      636,   637,   307,   308,   431,   525,   526,   527,   640,   641,
02345      309,   310,   434,   531,   532,   533,   645,   646,   311,   312,
02346      436,   536,   537,   538,   650,   651,   313,   314,   438,   541,
02347      542,   543,   654,   655,   315,   316,   440,   546,   547,   548,
02348      658,   659,   317,   318,   442,   551,   552,   553,   663,   664,
02349      319,   320,   444,   556,   557,   558,   667,   668,   321,   322,
02350      447,   562,   563,   564,   672,   673,   323,   324,   449,   567,
02351      568,   569,   676,   677,   678,   679,   751,   752,   802,   801,
02352      188,   189,   274,   275,   408,   402,   403,   404,   487,   488,
02353      489,   609,   610,   704,   705,   706,   778,   779,   780,   827,
02354      869,   870,   871,   912,   913,   914,   915,   968,   969,  1055,
02355     1053,   824,   825,   864,   906,   907,   908,   961,   962,   963,
02356      964,  1049,  1050,  1137,  1136,   862,   863,   901,   902,   903,
02357      956,   957,   958,  1045,  1131,  1132,  1133,  1244,  1042,  1043,
02358     1126,  1239,  1240,  1241,  1360,  1124,  1125,  1235,  1357,  1358,
02359     1359,  1448,  1233,  1234,  1353,  1445,  1446,  1447,  1526,  1351,
02360     1352,  1441,  1523,  1524,  1525,  1595,  1439,  1440,  1519,  1592,
02361     1593,  1594,  1626,   897,   898,   953,  1037,  1038,  1039,  1119,
02362     1120,  1121,  1122,  1230,  1231,  1346,  1345,   951,   952,  1034,
02363     1114,  1115,  1116,  1225,  1226,  1227,  1341,  1342,  1430,  1425,
02364     1426,  1427,  1032,  1109,  1110,  1220,  1221,  1329,  1326,  1327,
02365     1328,  1418,  1419,  1420,  1421,  1513,  1514,  1581,  1579,  1580,
02366      606,   607,   698,   699,   773,   774,   775,   818,   819,   820,
02367      859,   893,   894,   895,   946,   947,   948,   949,  1030,  1031,
02368     1104,  1103,   856,   857,   888,   940,   941,   942,  1023,  1024,
02369     1025,  1026,  1099,  1100,  1208,  1203,   886,   887,   935,   936,
02370      937,  1018,  1019,  1020,  1095,  1198,  1199,  1200,  1319,  1093,
02371     1094,  1194,  1316,  1317,  1318,  1411,  1192,  1193,  1312,  1408,
02372     1409,  1410,  1508,  1310,  1311,  1404,  1505,  1506,  1507,  1574,
02373     1402,  1403,  1501,  1571,  1572,  1573,  1620,  1499,  1500,  1567,
02374     1617,  1618,  1619,  1640,   932,  1015,  1016,  1089,  1090,  1182,
02375     1178,  1179,  1180,  1301,  1302,  1303,  1304,  1395,  1396,  1482,
02376     1480,  1481,   695,   696,   767,   768,   813,   814,   815,   850,
02377      851,   852,   883,   929,   930,   931,  1010,  1011,  1012,  1013,
02378     1087,  1088,  1172,  1171,   880,   881,   924,  1004,  1005,  1006,
02379     1080,  1081,  1082,  1083,  1167,  1168,  1286,  1281,   922,   923,
02380      999,  1000,  1001,  1075,  1076,  1077,  1163,  1276,  1277,  1278,
02381     1388,  1161,  1162,  1272,  1385,  1386,  1387,  1473,  1270,  1271,
02382     1381,  1470,  1471,  1472,  1559,  1379,  1380,  1466,  1556,  1557,
02383     1558,  1611,  1464,  1465,  1552,  1608,  1609,  1610,  1637,  1550,
02384     1551,  1604,  1634,  1635,  1636,  1646,   996,  1072,  1073,  1157,
02385     1158,  1260,  1257,  1258,  1259,  1373,  1374,  1375,  1376,  1461,
02386     1462,  1543,  1541,  1542,   764,   765,   808,   845,   846,   847,
02387      876,   919,   920,   977,   978,   979,  1067,  1068,  1069,  1151,
02388     1152,  1153,  1154,  1155,  1156,  1252,   647,   648,   731,   732,
02389      792,   793,   794,   795,   788,   980,   981,   982,   983,   984,
02390      217,   218,   219,  1431,  1432,  1056,  1057,  1058,  1210,  1211,
02391     1212,  1213,  1288,  1289,  1290,  1291,   985,   596,   597,   598,
02392      986,   987,   988,   989,  1433,  1434,  1435,   990,   991,   992,
02393      993,  1215,  1216,  1217,  1218,  1293,  1294,  1295,  1296,   340,
02394      341,   342,   343,   994,   600,   601,   602,   884,   409,  1046,
02395     1189,   995,   423,   860,   410,   769,   700,   177,   611,   435,
02396      426,   448,   809,   828,   411,  1305,  1306,  1307,  1398,  1399,
02397     1496,  1490,  1491,  1492,  1565,  1245,  1246,  1367,  1368,  1457,
02398     1458,  1536,  1533,  1247,  1364,  1454,  1455,  1456,  1537,  1538,
02399      462,   258,   259,   384
02400 };
02401 
02402 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
02403    STATE-NUM.  */
02404 #define YYPACT_NINF -1361
02405 static const yytype_int16 yypact[] =
02406 {
02407      332, -1361, -1361,    23,     2,    85, -1361, -1361,   108,    95,
02408      360, -1361,   376, -1361, -1361, -1361,   103,   435,   117, -1361,
02409    -1361, -1361, -1361,     2, -1361, -1361, -1361, -1361, -1361,    93,
02410      437,   204, -1361, -1361, -1361, -1361,   183, -1361, -1361,   122,
02411      144, -1361, -1361, -1361,   108, -1361,   139,   441,    -5, -1361,
02412    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02413    -1361, -1361, -1361, -1361, -1361,   134,   291, -1361, -1361,   444,
02414    -1361,   446, -1361,   450, -1361,   174, -1361,   453, -1361,   457,
02415    -1361,   459, -1361,   465, -1361,   467, -1361,   177, -1361,   231,
02416      175, -1361,   274, -1361, -1361,   163, -1361, -1361, -1361, -1361,
02417    -1361,   206,   469,   -25, -1361, -1361, -1361, -1361, -1361, -1361,
02418    -1361, -1361, -1361, -1361,   209,   138, -1361, -1361, -1361, -1361,
02419    -1361, -1361, -1361, -1361,    79, -1361,   231, -1361, -1361,    33,
02420    -1361, -1361, -1361, -1361,    30, -1361, -1361, -1361, -1361,    52,
02421    -1361, -1361, -1361, -1361,   282,   471, -1361,    35, -1361, -1361,
02422    -1361, -1361,    27, -1361, -1361, -1361, -1361,    26, -1361, -1361,
02423    -1361, -1361,    28, -1361, -1361, -1361, -1361,    25, -1361, -1361,
02424    -1361, -1361,   288,   473, -1361, -1361,   492, -1361, -1361,   205,
02425      292, -1361, -1361,   242, -1361, -1361, -1361, -1361, -1361, -1361,
02426      129, -1361, -1361, -1361, -1361, -1361, -1361, -1361,   219,   -55,
02427    -1361, -1361,   495, -1361,   231, -1361, -1361,   289,   165,   298,
02428      165,   300,   165,   309, -1361,   306, -1361, -1361, -1361, -1361,
02429      497, -1361, -1361, -1361,   201, -1361, -1361,   218, -1361, -1361,
02430      214,   318,    29, -1361, -1361, -1361, -1361, -1361, -1361,   222,
02431    -1361, -1361,   248, -1361, -1361,   250, -1361, -1361,   252, -1361,
02432    -1361,   265,   356,    16, -1361, -1361, -1361, -1361,   385,     4,
02433      392, -1361, -1361, -1361, -1361, -1361,   311,   396, -1361, -1361,
02434      277, -1361, -1361, -1361,   504,   397, -1361, -1361, -1361, -1361,
02435    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02436    -1361, -1361,   321,   425, -1361, -1361,    56, -1361,   506, -1361,
02437      389, -1361,   390, -1361,   390, -1361,   390, -1361,   390, -1361,
02438      393, -1361,   393, -1361,   393, -1361,   393, -1361,   390, -1361,
02439      390, -1361,   394, -1361,   231, -1361, -1361,    12, -1361, -1361,
02440    -1361, -1361,   508, -1361,   516, -1361,   416, -1361, -1361, -1361,
02441    -1361, -1361, -1361, -1361,   516, -1361, -1361, -1361, -1361,   516,
02442    -1361, -1361, -1361, -1361, -1361,   427, -1361,   405, -1361, -1361,
02443    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,   325, -1361,
02444    -1361, -1361, -1361, -1361, -1361, -1361, -1361,   322, -1361, -1361,
02445    -1361, -1361, -1361, -1361, -1361, -1361, -1361,   329,   338, -1361,
02446    -1361, -1361,   379,   482, -1361, -1361, -1361, -1361, -1361, -1361,
02447      333, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02448    -1361, -1361, -1361, -1361,   519, -1361,    10, -1361, -1361, -1361,
02449    -1361,   501,   521, -1361,   512,   523, -1361,   527, -1361,   529,
02450    -1361,   531, -1361,   541,   535, -1361,   537, -1361,   542, -1361,
02451      546, -1361,   557, -1361,   580, -1361,   551,   582, -1361,   584,
02452    -1361, -1361, -1361,   395,   476, -1361, -1361, -1361, -1361, -1361,
02453    -1361,   368, -1361,   553,   409, -1361,   415, -1361, -1361, -1361,
02454      424, -1361, -1361,   445,   452, -1361, -1361, -1361, -1361, -1361,
02455    -1361, -1361,   588,   254, -1361,   479, -1361,   493,   384,   544,
02456      575,   577,   579,    19, -1361, -1361, -1361, -1361, -1361, -1361,
02457      451,   600,   -60, -1361, -1361, -1361, -1361,   609,    78, -1361,
02458    -1361, -1361, -1361,   458, -1361, -1361, -1361, -1361,   -22, -1361,
02459    -1361, -1361, -1361,    18, -1361, -1361, -1361, -1361,   670,   -85,
02460    -1361, -1361, -1361, -1361,   -49, -1361, -1361, -1361, -1361,   -87,
02461    -1361, -1361, -1361, -1361,   -90, -1361, -1361, -1361, -1361,   -56,
02462    -1361, -1361, -1361, -1361,    15, -1361, -1361, -1361, -1361,   733,
02463      438, -1361, -1361, -1361, -1361,   484, -1361, -1361, -1361, -1361,
02464    -1361, -1361, -1361,   636,   578, -1361, -1361, -1361, -1361, -1361,
02465    -1361, -1361, -1361, -1361,   601,   254,   635, -1361, -1361,   755,
02466      756, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02467    -1361, -1361, -1361, -1361, -1361, -1361,   558,   726, -1361,   603,
02468    -1361, -1361, -1361, -1361, -1361, -1361,   628, -1361, -1361, -1361,
02469      757,   753, -1361,   -57, -1361,   758, -1361,   754,   182, -1361,
02470    -1361,   759,   474, -1361,   760, -1361,    98, -1361,   761, -1361,
02471       34, -1361,   764, -1361, -1361,   -28, -1361, -1361, -1361, -1361,
02472      -42, -1361, -1361, -1361,   -79, -1361, -1361, -1361,   -48, -1361,
02473    -1361,   763, -1361,   -24, -1361,   765, -1361,    20, -1361,   766,
02474    -1361,   767,   456, -1361, -1361, -1361,   647,   655, -1361, -1361,
02475    -1361, -1361,   612,   254,   657, -1361, -1361, -1361, -1361, -1361,
02476    -1361, -1361, -1361,   770, -1361,   569,   746, -1361,   614, -1361,
02477    -1361,   762,   613, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02478    -1361, -1361,   779, -1361, -1361, -1361,   780, -1361, -1361,   781,
02479    -1361, -1361,   782, -1361, -1361,   783, -1361, -1361, -1361, -1361,
02480    -1361,   616,   421, -1361, -1361, -1361, -1361, -1361, -1361,   784,
02481    -1361, -1361,   785, -1361, -1361, -1361,   786, -1361, -1361, -1361,
02482    -1361,   618,   254,   672, -1361, -1361, -1361, -1361, -1361, -1361,
02483    -1361, -1361, -1361, -1361, -1361,   768, -1361,   620, -1361, -1361,
02484      787,   595, -1361, -1361, -1361, -1361, -1361, -1361,   630,   622,
02485      769,   689,   659,   661,   663,   665,   653, -1361, -1361,   797,
02486      798,   799, -1361, -1361, -1361, -1361,   666,   667,   638,   686,
02487    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,   623, -1361,
02488      806,   608, -1361, -1361, -1361, -1361, -1361, -1361,   619,   615,
02489      776, -1361, -1361, -1361,   642,   769, -1361,   625, -1361, -1361,
02490    -1361, -1361, -1361, -1361, -1361,   810,   811,   812, -1361, -1361,
02491    -1361, -1361,   815, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02492      621,   617,   789, -1361, -1361, -1361,   648,   776, -1361,   627,
02493    -1361, -1361,   633,   629,   631, -1361,   818,   475, -1361, -1361,
02494    -1361, -1361, -1361, -1361, -1361, -1361,   431, -1361, -1361, -1361,
02495      668,   789, -1361,   637, -1361, -1361, -1361,   639,   641, -1361,
02496      823,   460, -1361, -1361, -1361, -1361, -1361,   640,   769,   674,
02497    -1361, -1361, -1361, -1361,   240, -1361, -1361, -1361, -1361, -1361,
02498    -1361, -1361,   676,   677, -1361, -1361, -1361, -1361, -1361, -1361,
02499      176, -1361, -1361,   644,   646, -1361,   824,   454, -1361, -1361,
02500    -1361, -1361,   712,   678, -1361, -1361, -1361, -1361,   216, -1361,
02501    -1361, -1361, -1361, -1361, -1361, -1361,   634,   643, -1361, -1361,
02502    -1361, -1361,   805,   652, -1361, -1361,   680,   679,   795, -1361,
02503    -1361,   684,   682, -1361, -1361, -1361, -1361, -1361,   654,   341,
02504      833,   834, -1361, -1361, -1361,   835, -1361,   656,   176, -1361,
02505    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02506    -1361, -1361, -1361, -1361, -1361, -1361,   718,   688, -1361, -1361,
02507    -1361, -1361,   210, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02508      651,   645, -1361, -1361, -1361, -1361, -1361, -1361,   690,   692,
02509      795, -1361, -1361,   694,   650, -1361, -1361, -1361, -1361, -1361,
02510      658,   341,   720,   832,   660,  -117, -1361, -1361, -1361, -1361,
02511    -1361, -1361,   695,   795, -1361,   662, -1361, -1361, -1361,   664,
02512      341,   696, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02513    -1361, -1361,   836,   839, -1361,   -38, -1361, -1361, -1361, -1361,
02514    -1361, -1361, -1361, -1361, -1361,   699,   697,   795, -1361, -1361,
02515      649,   700, -1361, -1361, -1361, -1361, -1361,   669,   341,   671,
02516      145, -1361, -1361,   702,   795,   673, -1361, -1361, -1361,   675,
02517      286,   704, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02518    -1361,   841,   496, -1361, -1361, -1361, -1361, -1361, -1361,   708,
02519      706, -1361, -1361, -1361,   714,   795,   681, -1361,   844,   716,
02520    -1361, -1361, -1361, -1361,   710, -1361, -1361, -1361, -1361, -1361,
02521    -1361, -1361,   848, -1361, -1361, -1361, -1361, -1361, -1361,   856,
02522    -1361,   722,   132, -1361, -1361, -1361, -1361,   683,   307, -1361,
02523    -1361,   723,   795,   685, -1361, -1361, -1361,   687,   319,   724,
02524    -1361, -1361, -1361, -1361, -1361, -1361,   -84, -1361, -1361, -1361,
02525    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02526    -1361, -1361,   728,   795,   691, -1361,   716, -1361, -1361, -1361,
02527    -1361,   729, -1361, -1361, -1361, -1361,   859,   860, -1361, -1361,
02528    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02529      693,   449,   861, -1361, -1361,   513, -1361, -1361, -1361, -1361,
02530      698,   341, -1361,   731,   795,   701, -1361,   716, -1361, -1361,
02531    -1361, -1361, -1361,   730,   739, -1361,   735, -1361, -1361, -1361,
02532    -1361, -1361,   737, -1361, -1361,   -50, -1361, -1361, -1361, -1361,
02533    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02534      740,   795,   703, -1361,   716, -1361, -1361, -1361, -1361,   741,
02535    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02536    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02537    -1361,   745,   743, -1361, -1361,   747, -1361, -1361,   858, -1361,
02538      750,   795,   705, -1361,   716, -1361, -1361, -1361, -1361,   748,
02539    -1361, -1361, -1361, -1361,   -76, -1361, -1361, -1361, -1361, -1361,
02540    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02541    -1361,   707,    31,   749, -1361, -1361, -1361, -1361, -1361, -1361,
02542    -1361,   751,   795,   709, -1361,   716, -1361, -1361, -1361, -1361,
02543      752, -1361, -1361, -1361,   711, -1361, -1361, -1361, -1361, -1361,
02544    -1361, -1361, -1361,   771,   772, -1361, -1361,   747, -1361,   774,
02545      795,   713, -1361,   716, -1361, -1361, -1361, -1361,   773, -1361,
02546    -1361,   516,   516, -1361, -1361,   715,   382, -1361,   717,   199,
02547    -1361, -1361,   777,   795,   719, -1361,   716, -1361, -1361, -1361,
02548    -1361,   778, -1361, -1361, -1361, -1361, -1361, -1361,   775,   788,
02549    -1361, -1361,   747,  -112, -1361, -1361, -1361, -1361,   862, -1361,
02550    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02551      795,   721, -1361,   716, -1361, -1361, -1361, -1361,   791, -1361,
02552    -1361,   865,     9, -1361, -1361, -1361, -1361,   866,   510, -1361,
02553    -1361,   725,   382, -1361,   790,   795,   727, -1361,   716, -1361,
02554    -1361, -1361, -1361,   792, -1361, -1361, -1361, -1361,   793, -1361,
02555    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,   716, -1361,
02556    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02557      795,   732, -1361,   716, -1361, -1361, -1361, -1361,   796, -1361,
02558    -1361, -1361, -1361,   734,   382, -1361,  -110,   516,   873,   736,
02559    -1361,   716, -1361, -1361, -1361, -1361,   794, -1361, -1361, -1361,
02560      800, -1361,   874, -1361, -1361, -1361, -1361, -1361, -1361,   802,
02561    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02562    -1361,   795,   738, -1361,   716, -1361, -1361, -1361, -1361,   803,
02563    -1361, -1361, -1361, -1361, -1361,   801, -1361,   742, -1361,   716,
02564    -1361, -1361, -1361, -1361,   804, -1361, -1361,   813, -1361, -1361,
02565    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,   864, -1361,
02566      716, -1361, -1361, -1361, -1361,   807, -1361, -1361, -1361, -1361,
02567      808,   877,   878, -1361,   744, -1361,   716, -1361, -1361, -1361,
02568    -1361,   809, -1361, -1361, -1361,   716, -1361, -1361, -1361, -1361,
02569      814, -1361, -1361, -1361, -1361, -1361,   816, -1361, -1361, -1361,
02570    -1361, -1361,   716, -1361, -1361, -1361, -1361,   817, -1361, -1361,
02571      819, -1361, -1361, -1361, -1361, -1361,   820, -1361, -1361, -1361,
02572    -1361
02573 };
02574 
02575 /* YYPGOTO[NTERM-NUM].  */
02576 static const yytype_int16 yypgoto[] =
02577 {
02578    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,   842,   867,
02579    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02580    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02581    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02582    -1361, -1361, -1361,   821, -1361, -1361, -1361, -1361, -1361, -1361,
02583    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02584    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02585    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02586    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02587    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02588    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02589    -1361, -1361, -1361, -1361, -1361, -1361,   503, -1361, -1361, -1361,
02590    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,   825,
02591    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02592    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02593    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02594    -1361, -1361, -1361, -1361,   411, -1361, -1361, -1361, -1361, -1361,
02595    -1361, -1361, -1361, -1361, -1361, -1361, -1361,   822, -1361, -1361,
02596    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02597    -1361, -1361,   315, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02598    -1361, -1361, -1361, -1361, -1361,   599, -1361, -1361, -1361, -1361,
02599    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02600    -1361, -1361, -1361, -1361, -1361, -1361, -1361,   271, -1361, -1361,
02601    -1361, -1361, -1361, -1361, -1361,   272, -1361, -1361, -1361, -1361,
02602    -1361, -1361, -1361,   269, -1361, -1361, -1361, -1361, -1361, -1361,
02603    -1361,   267, -1361, -1361, -1361, -1361, -1361, -1361, -1361,   266,
02604    -1361, -1361, -1361, -1361, -1361, -1361, -1361,   260, -1361, -1361,
02605    -1361, -1361, -1361, -1361, -1361,   258, -1361, -1361, -1361, -1361,
02606    -1361, -1361, -1361,   255, -1361, -1361, -1361, -1361, -1361, -1361,
02607    -1361,   253, -1361, -1361, -1361, -1361, -1361, -1361, -1361,   247,
02608    -1361, -1361, -1361, -1361, -1361, -1361, -1361,   245, -1361, -1361,
02609    -1361, -1361, -1361, -1361, -1361,   246, -1361, -1361, -1361, -1361,
02610    -1361, -1361, -1361, -1361,   243, -1361, -1361, -1361, -1361, -1361,
02611    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02612    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02613    -1361, -1361, -1361, -1361, -1361,    11, -1361, -1361, -1361, -1361,
02614    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,   -40,
02615    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02616    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02617    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02618    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02619    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02620    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02621     -500, -1111, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02622    -1361, -1361, -1361, -1361,  -298, -1361, -1361, -1361, -1361, -1361,
02623    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02624    -1361, -1361, -1361,  -491, -1361, -1361, -1361, -1361, -1361, -1361,
02625    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02626    -1361, -1361, -1361, -1361, -1361, -1361,   -12, -1361, -1361, -1361,
02627    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02628      -83, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02629    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02630    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02631    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02632    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02633    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02634    -1361, -1361, -1361, -1361, -1361,  -363, -1361, -1361, -1361, -1361,
02635    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02636    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,   -68, -1361,
02637    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02638    -1361, -1361,  -137, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02639    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02640    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02641    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02642    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02643    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02644    -1361, -1361, -1361, -1361, -1361, -1361, -1361,  -429, -1361, -1361,
02645    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02646    -1361, -1361, -1361, -1361, -1361,   -32, -1361, -1361, -1361, -1361,
02647    -1361,  -205, -1361, -1361, -1361, -1361,  -499, -1361, -1361, -1361,
02648    -1361, -1361, -1361, -1361, -1361, -1073, -1361, -1361, -1361,  -120,
02649    -1361, -1361, -1361, -1361, -1361, -1023, -1361, -1361, -1360, -1361,
02650    -1361, -1361, -1361, -1361, -1361, -1361,  -481, -1361, -1361, -1361,
02651    -1072, -1361, -1361, -1361, -1361, -1361, -1361, -1069, -1361, -1361,
02652    -1361, -1354, -1361, -1361, -1361, -1361, -1361, -1361, -1361,  -169,
02653    -1361, -1361, -1361,  -480, -1361, -1361, -1361,  -871, -1361, -1015,
02654    -1110, -1361, -1361,  -846, -1361, -1361, -1361,  -111, -1361,   -39,
02655     -133, -1361, -1361,  -818, -1361, -1211, -1286, -1361, -1361, -1361,
02656    -1361, -1361, -1361, -1361, -1361, -1174, -1361, -1361, -1361, -1361,
02657    -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361, -1361,
02658     -343,  -354, -1361, -1361
02659 };
02660 
02661 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
02662    positive, shift that token.  If negative, reduce the rule which
02663    number is the opposite.  If zero, do what YYDEFACT says.
02664    If YYTABLE_NINF, syntax error.  */
02665 #define YYTABLE_NINF -1
02666 static const yytype_uint16 yytable[] =
02667 {
02668      468,   465,   595,   599,   216,  1096,   467,   865,  1105,  1229,
02669      925,   889,   379,  1530,   498,   221,   451,  1183,  1186,  1397,
02670      375,  1187,  1320,     6,   479,   459,   460,  1138,  1127,   249,
02671      243,   240,   246,   366,   225,   652,  1484,   222,  1298,   237,
02672      656,   348,  1486,   353,  1377,   660,  1416,   621,  1268,   195,
02673      621,   490,   491,   492,  1117,   643,   228,  1428,   643,  1117,
02674      643,  1117,  1164,  1361,   196,  1173,   643,   108,   826,     7,
02675      657,   644,  1371,  1118,  1429,   653,   197,  1209,   622,  1195,
02676      954,   713,  1515,   735,  1587,  1261,  1264,   661,   339,  1265,
02677      347,  1397,   352,   333,   196,  1417,   643,   643,   662,    11,
02678     1389,   336,  1545,   643,   689,   690,   197,   337,  1547,   649,
02679     1236,  1336,   737,  1422,   109,  1299,   733,   643,   110,   661,
02680      111,   634,   112,    13,   113,   213,   635,   415,   729,   214,
02681      740,  1300,   226,   223,   376,   367,  1397,   241,   244,  1300,
02682     1412,   250,   247,   238,   452,  1287,   499,  1273,  1330,  1333,
02683      618,   652,  1334,   615,  1583,   656,   229,  1372,   665,   660,
02684     1585,   638,  1181,   665,    15,  1300,    45,   666,   639,   970,
02685      971,   428,   743,   430,    28,   432,  1147,   638,  1313,  1148,
02686     1149,  1449,  1150,   858,   726,   443,   589,   445,    90,   590,
02687       91,   213,   973,   591,   974,   214,    36,   592,    37,    38,
02688      970,   971,   758,   759,   127,   276,   975,   976,  1347,  1474,
02689      336,   213,   972,   450,   100,   214,   337,   589,   626,  1354,
02690      590,   627,   213,   973,   591,   974,   214,    92,   592,    93,
02691       94,  1531,  1509,   380,   381,   382,   383,   975,   976,  1044,
02692      144,   634,   172,   590,  1190,   213,   723,   175,   277,   214,
02693      180,   592,   181,   182,   701,   178,  1382,   109,   707,   708,
02694      709,   110,   278,   111,   279,   112,   280,   113,   281,  1527,
02695      282,   804,   805,   437,    53,   439,   283,   441,   284,   179,
02696      285,   205,   286,   187,   287,   231,   288,  1267,   289,   265,
02697      290,   252,   291,   325,  1560,   589,  1405,   266,   590,   334,
02698      213,   362,   591,    54,   214,    55,   592,    56,   344,    57,
02699      349,    58,   354,    59,  1566,    60,   355,    61,   364,    62,
02700      363,    63,   717,    64,  1181,   627,   365,   589,  1054,  1575,
02701      369,   970,   971,   267,   591,   268,   269,  1442,   761,  1204,
02702     1205,  1206,  1207,   770,     1,     2,   882,  1596,   589,  1148,
02703     1149,   590,  1150,   213,   973,   591,   974,   214,   370,   592,
02704      589,  1054,   371,   594,   374,  1467,   372,   591,   975,   976,
02705       18,    19,   393,  1483,   394,   395,  1282,  1283,  1284,  1285,
02706     1612,   373,   589,  1054,  1495,   590,    23,    24,  1502,   591,
02707       54,   378,    55,   592,    56,  1621,    57,   412,    58,   391,
02708       59,   392,    60,  1337,    61,  1229,    62,   421,    63,   424,
02709       64,   959,   810,   433,   960,  1021,  1627,  1078,  1022,   463,
02710     1079,   446,   821,   589,  1054,  1520,   590,   405,   406,   407,
02711      591,   477,  1638,   469,   592,  1204,  1205,  1206,  1207,  1544,
02712      478,  1641,   789,   790,   791,    31,    32,    48,    49,   480,
02713     1553,   103,   104,   842,   129,   130,   134,   135,  1647,   386,
02714      139,   140,   853,   147,   148,   688,  1181,   152,   153,   157,
02715      158,   484,   866,   970,   971,   162,   163,   167,   168,   190,
02716      191,   232,   233,   253,   254,  1568,   826,   485,  1059,  1060,
02717      589,  1582,   577,   590,   877,   213,   973,   591,   974,   214,
02718      486,   592,   260,   261,   890,   327,   328,   357,   358,   501,
02719      975,   976,   385,   386,   400,   401,   416,   417,   454,   455,
02720      507,   916,   459,   460,  1436,   471,   472,   570,   926,   493,
02721      494,   502,   503,   508,   509,   579,  1605,   513,   514,   518,
02722      519,   523,   524,   580,   277,   529,   530,   534,   535,   528,
02723     1106,  1107,   539,   540,   581,   965,   544,   545,   278,   559,
02724      279,   578,   280,   757,   281,   582,   282,   549,   550,  1139,
02725     1140,   604,   283,   472,   284,   603,   285,   608,   286,   605,
02726      287,   612,   288,   613,   289,   614,   290,   619,   291,  1027,
02727      554,   555,   560,   561,   565,   566,   571,   572,   586,   587,
02728      630,   631,   670,   671,   674,   675,   620,  1174,  1175,  1185,
02729     1188,   684,   685,   702,   703,   625,   720,   631,  1063,  1214,
02730      747,   671,   753,   754,   771,   772,   786,   787,   799,   800,
02731      811,   812,   803,   843,   844,   867,   868,   891,   892,   899,
02732      900,   904,   905,   917,   918,   910,   911,   927,   928,   933,
02733      934,   938,   939,  1084,   997,   998,  1002,  1003,   944,   945,
02734     1008,  1009,  1035,  1036,  1051,  1052,  1065,  1066,  1101,  1102,
02735     1112,  1113,  1129,  1130,  1134,  1135,   642,  1263,  1266,  1169,
02736     1170,  1176,  1177,  1196,  1197,  1201,  1202,  1292,  1223,  1224,
02737     1128,  1237,  1238,  1255,  1256,  1274,  1275,  1279,  1280,   572,
02738     1142,  1314,  1315,  1324,  1325,  1339,  1224,  1143,  1343,  1344,
02739     1146,  1355,  1356,  1383,  1384,  1406,  1407,  1423,  1424,  1443,
02740     1444,  1452,  1453,  1468,  1469,  1478,  1479,  1488,  1489,  1503,
02741     1504,  1521,  1522,  1534,  1535,  1539,  1540,  1554,  1555,   669,
02742     1332,  1335,  1569,  1570,  1577,  1578,  1590,  1591,  1606,  1607,
02743     1348,  1349,  1615,  1616,  1632,  1633,   680,   691,   692,   693,
02744      697,   694,   710,   712,   716,   711,   715,   749,   776,   719,
02745      722,   725,   728,   739,   745,   742,   675,   746,   762,   760,
02746      763,   766,   777,   781,   782,   783,   784,   785,   796,   797,
02747      798,  1250,   817,   816,   806,   823,   807,   829,   822,   834,
02748      835,   836,   837,   830,   840,   831,   826,   832,   841,   833,
02749      838,   839,   848,   849,   858,   854,   855,   861,   872,   873,
02750      874,   875,   896,   885,   909,   878,   879,  1308,   882,   943,
02751     1007,   950,  1028,  1014,  1033,  1044,  1061,  1062,  1064,  1071,
02752     1111,  1108,   945,   921,  1144,  1145,   966,  1222,   911,  1021,
02753     1242,   955,  1009,   959,  1249,  1017,  1040,  1085,  1047,  1165,
02754     1041,  1251,  1322,  1323,  1400,  1074,  1091,  1393,  1141,  1338,
02755     1517,  1529,  1624,  1092,  1123,  1159,  1532,  1117,  1160,  1589,
02756     1600,  1191,  1248,  1630,  1631,   583,    99,   128,  1362,   681,
02757       44,   481,   413,  1459,   714,  1369,  1097,  1511,  1228,  1232,
02758      718,   721,  1269,   724,  1219,   730,   727,  1078,   734,   736,
02759      741,   738,   744,  1309,  1350,  1485,  1487,  1365,   748,  1494,
02760      750,  1437,  1048,  1516,   967,  1378,  1413,  1340,  1512,  1321,
02761     1391,  1392,  1297,  1401,  1450,  1029,  1253,  1243,  1438,  1394,
02762      206,  1098,  1299,  1086,  1166,  1460,  1070,  1254,     0,  1390,
02763        0,  1475,     0,     0,     0,  1363,  1370,  1463,     0,  1417,
02764     1510,  1366,  1300,     0,  1498,     0,     0,     0,  1414,  1415,
02765     1184,  1528,     0,     0,  1561,     0,  1576,  1549,     0,  1372,
02766     1597,  1546,  1548,  1613,     0,  1623,     0,     0,     0,     0,
02767     1622,  1628,     0,  1564,     0,  1639,     0,     0,  1642,     0,
02768        0,  1648,     0,     0,  1643,     0,     0,  1649,  1650,  1451,
02769     1603,     0,     0,     0,     0,     0,     0,  1614,     0,     0,
02770        0,   326,  1599,     0,     0,     0,     0,     0,     0,     0,
02771        0,     0,     0,  1584,  1586,  1629,     0,     0,  1262,     0,
02772        0,     0,     0,     0,     0,     0,  1497,     0,  1476,  1477,
02773        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02774        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02775        0,     0,     0,     0,     0,  1518,     0,     0,     0,     0,
02776        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02777        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02778        0,  1331,     0,     0,     0,     0,     0,     0,     0,     0,
02779        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02780        0,     0,  1562,  1563,     0,     0,     0,     0,     0,     0,
02781        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02782        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02783        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02784        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02785        0,     0,     0,     0,  1588,  1598,     0,     0,     0,     0,
02786     1601,  1602,     0,     0,     0,     0,     0,     0,     0,     0,
02787        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02788        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02789        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02790        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02791        0,     0,     0,     0,     0,  1625,     0,     0,     0,     0,
02792        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02793        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02794        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02795        0,     0,     0,     0,     0,     0,  1644,  1645,     0,  1493
02796 };
02797 
02798 static const yytype_int16 yycheck[] =
02799 {
02800      354,   344,   483,   483,   124,  1020,   349,   825,  1031,  1120,
02801      881,   857,     8,     4,     4,   126,     4,  1090,  1090,  1305,
02802        4,  1090,  1196,     0,   378,     6,     7,  1050,  1043,     4,
02803        4,     4,     4,     4,     4,   534,  1396,     4,   122,     4,
02804      539,   210,  1396,   212,  1255,   544,   122,   107,  1158,    74,
02805      107,   405,   406,   407,   171,   145,     4,    26,   145,   171,
02806      145,   171,  1077,  1237,   119,  1088,   145,    72,    37,    67,
02807      160,   156,   122,   190,    43,   162,   131,  1100,   138,  1094,
02808      898,   138,   194,   162,   194,  1158,  1158,   143,   208,  1158,
02809      210,  1377,   212,   204,   119,   171,   145,   145,   154,    14,
02810     1274,    45,  1462,   145,   585,   585,   131,    51,  1462,   158,
02811     1125,  1221,   160,  1324,   119,   199,   158,   145,   123,   143,
02812      125,   143,   127,    15,   129,    46,   148,   296,   156,    50,
02813      154,   215,   102,   100,   118,   106,  1422,   110,   112,   215,
02814     1314,   116,   114,   108,   132,  1168,   136,  1162,  1221,  1221,
02815      493,   650,  1221,   134,  1514,   654,   104,   207,   143,   658,
02816     1514,   143,    17,   143,    69,   215,    73,   152,   150,    24,
02817       25,   304,   152,   306,    71,   308,   214,   143,  1193,   217,
02818      218,  1355,   220,    38,   150,   318,    41,   320,     5,    44,
02819       68,    46,    47,    48,    49,    50,    79,    52,    81,    82,
02820       24,    25,   683,   683,    70,    76,    61,    62,  1231,  1383,
02821       45,    46,    36,   324,    75,    50,    51,    41,   140,  1234,
02822       44,   143,    46,    47,    48,    49,    50,    83,    52,    85,
02823       86,   222,  1406,   229,   230,   231,   232,    61,    62,    40,
02824       66,   143,    65,    44,  1090,    46,   148,    16,   119,    50,
02825       87,    52,    89,    90,   608,    80,  1271,   119,   612,   613,
02826      614,   123,   133,   125,   135,   127,   137,   129,   139,  1443,
02827      141,   752,   752,   312,    70,   314,   147,   316,   149,     5,
02828      151,    72,   153,    77,   155,     3,   157,  1158,   159,    84,
02829      161,     3,   163,    74,  1468,    41,  1311,     5,    44,    10,
02830       46,   100,    48,    99,    50,   101,    52,   103,    10,   105,
02831       10,   107,     3,   109,  1488,   111,    10,   113,   104,   115,
02832      102,   117,   140,   119,    17,   143,     8,    41,    42,  1503,
02833      108,    24,    25,    91,    48,    93,    94,  1352,   692,    53,
02834       54,    55,    56,   697,    12,    13,    39,  1521,    41,   217,
02835      218,    44,   220,    46,    47,    48,    49,    50,   110,    52,
02836       41,    42,   112,   483,     8,  1380,   114,    48,    61,    62,
02837       10,    11,    95,  1396,    97,    98,    57,    58,    59,    60,
02838     1554,   116,    41,    42,  1399,    44,    10,    11,  1403,    48,
02839       99,     6,   101,    52,   103,  1569,   105,    76,   107,    88,
02840      109,     5,   111,  1221,   113,  1516,   115,    18,   117,    19,
02841      119,   171,   766,    20,   174,   199,  1590,   207,   202,     3,
02842      210,    27,   776,    41,    42,  1440,    44,    30,    31,    32,
02843       48,   106,  1606,     6,    52,    53,    54,    55,    56,  1462,
02844      118,  1615,    21,    22,    23,    10,    11,    10,    11,   120,
02845     1465,    10,    11,   807,    10,    11,    10,    11,  1632,   121,
02846       10,    11,   816,    10,    11,   585,    17,    10,    11,    10,
02847       11,    92,   826,    24,    25,    10,    11,    10,    11,    10,
02848       11,    10,    11,    10,    11,  1500,    37,     5,   969,   969,
02849       41,  1514,   124,    44,   848,    46,    47,    48,    49,    50,
02850      167,    52,    10,    11,   858,    10,    11,    10,    11,     8,
02851       61,    62,   120,   121,    10,    11,    10,    11,    10,    11,
02852        8,   875,     6,     7,  1342,   120,   121,   132,   882,    10,
02853       11,    10,    11,    10,    11,   126,  1551,    10,    11,    10,
02854       11,    10,    11,   128,   119,    10,    11,    10,    11,     8,
02855     1031,  1031,    10,    11,   130,   909,    10,    11,   133,     8,
02856      135,     8,   137,   683,   139,   120,   141,    10,    11,  1050,
02857     1050,    78,   147,   121,   149,    96,   151,    33,   153,   195,
02858      155,     6,   157,     6,   159,     6,   161,   136,   163,   943,
02859       10,    11,    10,    11,    10,    11,   120,   121,    10,    11,
02860      142,   143,   164,   165,   120,   121,     6,  1088,  1088,  1090,
02861     1090,    10,    11,    10,    11,     6,   142,   143,   972,  1100,
02862      164,   165,    10,    11,    10,    11,    10,    11,    10,    11,
02863       10,    11,   752,    10,    11,    10,    11,    10,    11,    10,
02864       11,    10,    11,   212,   213,   170,   171,    10,    11,    10,
02865       11,    10,    11,  1007,    10,    11,    10,    11,   198,   199,
02866      206,   207,    10,    11,    10,    11,    10,    11,    10,    11,
02867       10,    11,    10,    11,    10,    11,     6,  1158,  1158,    10,
02868       11,    10,    11,    10,    11,    10,    11,  1168,   192,   193,
02869     1044,    10,    11,    10,    11,    10,    11,    10,    11,   121,
02870     1054,    10,    11,    10,    11,   192,   193,  1061,    10,    11,
02871     1064,    10,    11,    10,    11,    10,    11,    10,    11,    10,
02872       11,    10,    11,    10,    11,    10,    11,    10,    11,    10,
02873       11,    10,    11,   223,   224,    10,    11,    10,    11,     6,
02874     1221,  1221,    10,    11,    10,    11,    10,    11,    10,    11,
02875     1231,  1231,    10,    11,    10,    11,   120,   122,     3,     3,
02876       34,   203,   134,    10,    10,     8,     8,   120,     6,    10,
02877       10,    10,     8,    10,     8,    10,   121,    10,     8,   122,
02878      211,    35,   169,     4,     4,     4,     4,     4,     4,     4,
02879        4,  1145,   197,     6,   122,   173,    28,   108,   168,   146,
02880        3,     3,     3,   144,   166,   144,    37,   144,   122,   144,
02881      144,   144,     6,   205,    38,   196,   201,   175,     8,     8,
02882        8,     6,   189,   175,     6,   204,   209,  1181,    39,     6,
02883        6,   191,   198,   121,    29,    40,     3,     3,     3,   121,
02884        8,   121,   199,   175,     8,     6,   170,     6,   171,   199,
02885        6,   177,   207,   171,     6,   177,   176,   206,   174,   210,
02886      181,     5,     3,     3,     6,   177,   176,   122,   172,     8,
02887        8,     6,     8,   181,   179,   176,    10,   171,   181,     6,
02888        6,   179,   172,     6,     6,   474,    44,    66,  1242,   574,
02889       23,   388,   293,   122,   623,  1249,   202,   122,   190,   185,
02890      628,   632,   179,   636,   200,   645,   640,   207,   650,   654,
02891      663,   658,   667,   185,   183,  1396,  1396,   178,   672,  1399,
02892      677,   172,   962,  1423,   913,   185,   178,  1225,  1419,   200,
02893     1284,  1285,   208,   183,   182,   947,   214,   221,   187,  1302,
02894      115,  1024,   199,  1011,  1081,  1374,   978,  1152,    -1,   208,
02895       -1,   178,    -1,    -1,    -1,   225,   219,   183,    -1,   171,
02896      182,   226,   215,    -1,   187,    -1,    -1,    -1,  1322,  1323,
02897     1090,   180,    -1,    -1,   182,    -1,   180,   187,    -1,   207,
02898      186,  1462,  1462,   180,    -1,   172,    -1,    -1,    -1,    -1,
02899      186,   184,    -1,   200,    -1,   186,    -1,    -1,   184,    -1,
02900       -1,   184,    -1,    -1,   188,    -1,    -1,   188,   188,  1363,
02901      208,    -1,    -1,    -1,    -1,    -1,    -1,   216,    -1,    -1,
02902       -1,   199,   222,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02903       -1,    -1,    -1,  1514,  1514,   227,    -1,    -1,  1158,    -1,
02904       -1,    -1,    -1,    -1,    -1,    -1,  1400,    -1,  1391,  1392,
02905       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02906       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02907       -1,    -1,    -1,    -1,    -1,  1429,    -1,    -1,    -1,    -1,
02908       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02909       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02910       -1,  1221,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02911       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02912       -1,    -1,  1476,  1477,    -1,    -1,    -1,    -1,    -1,    -1,
02913       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02914       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02915       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02916       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02917       -1,    -1,    -1,    -1,  1517,  1529,    -1,    -1,    -1,    -1,
02918     1534,  1535,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02919       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02920       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02921       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02922       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02923       -1,    -1,    -1,    -1,    -1,  1589,    -1,    -1,    -1,    -1,
02924       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02925       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02926       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02927       -1,    -1,    -1,    -1,    -1,    -1,  1630,  1631,    -1,  1399
02928 };
02929 
02930 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
02931    symbol of state STATE-NUM.  */
02932 static const yytype_uint16 yystos[] =
02933 {
02934        0,    12,    13,   234,   235,   236,     0,    67,   242,   243,
02935      244,    14,   237,    15,   241,    69,   269,   270,    10,    11,
02936      245,   246,   247,    10,    11,   238,   239,   240,    71,   355,
02937      356,    10,    11,   271,   272,   273,    79,    81,    82,   248,
02938      249,   250,   251,   252,   242,    73,   403,   404,    10,    11,
02939      357,   358,   359,    70,    99,   101,   103,   105,   107,   109,
02940      111,   113,   115,   117,   119,   274,   275,   276,   277,   278,
02941      283,   284,   289,   290,   295,   296,   303,   304,   309,   310,
02942      315,   316,   321,   322,   327,   328,   333,   334,   341,   342,
02943        5,    68,    83,    85,    86,   253,   254,   255,   256,   241,
02944       75,   431,   432,    10,    11,   405,   406,   407,    72,   119,
02945      123,   125,   127,   129,   360,   361,   362,   363,   364,   370,
02946      371,   377,   378,   384,   385,   389,   390,    70,   276,    10,
02947       11,   279,   280,   281,    10,    11,   285,   286,   287,    10,
02948       11,   291,   292,   293,    66,   297,   298,    10,    11,   305,
02949      306,   307,    10,    11,   311,   312,   313,    10,    11,   317,
02950      318,   319,    10,    11,   323,   324,   325,    10,    11,   329,
02951      330,   331,    65,   335,   336,    16,   343,  1000,    80,     5,
02952       87,    89,    90,   257,   258,   259,   260,    77,   563,   564,
02953       10,    11,   433,   434,   435,    74,   119,   131,   408,   409,
02954      410,   411,   412,   417,   418,    72,   362,   365,   366,   372,
02955      373,   379,   380,    46,    50,   386,   942,   943,   944,   945,
02956      391,  1000,     4,   100,   282,     4,   102,   288,     4,   104,
02957      294,     3,    10,    11,   299,   300,   301,     4,   108,   308,
02958        4,   110,   314,     4,   112,   320,     4,   114,   326,     4,
02959      116,   332,     3,    10,    11,   337,   338,   339,  1034,  1035,
02960       10,    11,   344,   345,   346,    84,     5,    91,    93,    94,
02961      261,   262,   263,   264,   565,   566,    76,   119,   133,   135,
02962      137,   139,   141,   147,   149,   151,   153,   155,   157,   159,
02963      161,   163,   436,   437,   438,   439,   440,   447,   448,   453,
02964      454,   461,   462,   469,   470,   477,   478,   485,   486,   493,
02965      494,   501,   502,   509,   510,   517,   518,   525,   526,   533,
02966      534,   541,   542,   549,   550,    74,   410,    10,    11,   413,
02967      414,   415,   419,  1000,    10,   368,    45,    51,   367,   942,
02968      982,   983,   984,   985,    10,   375,   374,   942,   982,    10,
02969      382,   381,   942,   982,     3,    10,   387,    10,    11,   392,
02970      393,   394,   100,   102,   104,     8,     4,   106,   302,   108,
02971      110,   112,   114,   116,     8,     4,   118,   340,     6,     8,
02972      229,   230,   231,   232,  1036,   120,   121,   347,   348,   349,
02973      350,    88,     5,    95,    97,    98,   265,   266,   267,   268,
02974       10,    11,   568,   569,   570,    30,    31,    32,   567,   991,
02975      997,  1007,    76,   438,   441,   982,    10,    11,   449,   450,
02976      451,    18,   455,   995,    19,   463,  1003,   471,  1003,   479,
02977     1003,   487,  1003,    20,   495,  1002,   503,  1002,   511,  1002,
02978      519,  1002,   527,  1003,   535,  1003,    27,   543,  1004,   551,
02979     1000,     4,   132,   416,    10,    11,   420,   421,   422,     6,
02980        7,   369,  1033,     3,   376,  1033,   383,  1033,  1034,     6,
02981      388,   120,   121,   395,   396,   397,   398,   106,   118,  1034,
02982      120,   349,   351,   352,    92,     5,   167,   571,   572,   573,
02983     1034,  1034,  1034,    10,    11,   442,   443,   444,     4,   136,
02984      452,     8,    10,    11,   456,   457,   458,     8,    10,    11,
02985      464,   465,   466,    10,    11,   472,   473,   474,    10,    11,
02986      480,   481,   482,    10,    11,   488,   489,   490,     8,    10,
02987       11,   496,   497,   498,    10,    11,   504,   505,   506,    10,
02988       11,   512,   513,   514,    10,    11,   520,   521,   522,    10,
02989       11,   528,   529,   530,    10,    11,   536,   537,   538,     8,
02990       10,    11,   544,   545,   546,    10,    11,   552,   553,   554,
02991      132,   120,   121,   423,   424,   425,   426,   124,     8,   126,
02992      128,   130,   120,   397,   399,   400,    10,    11,   354,    41,
02993       44,    48,    52,   353,   942,   959,   960,   961,   962,   986,
02994      987,   988,   989,    96,    78,   195,   703,   704,    33,   574,
02995      575,  1001,     6,     6,     6,   134,   445,   446,  1033,   136,
02996        6,   107,   138,   459,   460,     6,   140,   143,   467,   468,
02997      142,   143,   475,   476,   143,   148,   483,   484,   143,   150,
02998      491,   492,     6,   145,   156,   499,   500,   929,   930,   158,
02999      507,   508,   929,   162,   515,   516,   929,   160,   523,   524,
03000      929,   143,   154,   531,   532,   143,   152,   539,   540,     6,
03001      164,   165,   547,   548,   120,   121,   555,   556,   557,   558,
03002      120,   425,   427,   428,    10,    11,   402,   401,   942,   959,
03003      986,   122,     3,     3,   203,   805,   806,    34,   705,   706,
03004      999,  1034,    10,    11,   576,   577,   578,  1034,  1034,  1034,
03005      134,     8,    10,   138,   460,     8,    10,   140,   468,    10,
03006      142,   476,    10,   148,   484,    10,   150,   492,     8,   156,
03007      500,   931,   932,   158,   508,   162,   516,   160,   524,    10,
03008      154,   532,    10,   152,   540,     8,    10,   164,   548,   120,
03009      557,   559,   560,    10,    11,   430,   429,   942,   959,   986,
03010      122,  1034,     8,   211,   907,   908,    35,   807,   808,   998,
03011     1034,    10,    11,   707,   708,   709,     6,   169,   579,   580,
03012      581,     4,     4,     4,     4,     4,    10,    11,   937,    21,
03013       22,    23,   933,   934,   935,   936,     4,     4,     4,    10,
03014       11,   562,   561,   942,   959,   986,   122,    28,   909,  1005,
03015     1034,    10,    11,   809,   810,   811,     6,   197,   710,   711,
03016      712,  1034,   168,   173,   594,   595,    37,   582,  1006,   108,
03017      144,   144,   144,   144,   146,     3,     3,     3,   144,   144,
03018      166,   122,  1034,    10,    11,   910,   911,   912,     6,   205,
03019      812,   813,   814,  1034,   196,   201,   725,   726,    38,   713,
03020      996,   175,   608,   609,   596,  1006,  1034,    10,    11,   583,
03021      584,   585,     8,     8,     8,     6,   913,  1034,   204,   209,
03022      827,   828,    39,   815,   990,   175,   739,   740,   727,   996,
03023     1034,    10,    11,   714,   715,   716,   189,   656,   657,    10,
03024       11,   610,   611,   612,    10,    11,   597,   598,   599,     6,
03025      170,   171,   586,   587,   588,   589,  1034,   212,   213,   914,
03026      915,   175,   841,   842,   829,   990,  1034,    10,    11,   816,
03027      817,   818,   787,    10,    11,   741,   742,   743,    10,    11,
03028      728,   729,   730,     6,   198,   199,   717,   718,   719,   720,
03029      191,   670,   671,   658,  1006,   177,   613,   614,   615,   171,
03030      174,   600,   601,   602,   603,  1034,   170,   588,   590,   591,
03031       24,    25,    36,    47,    49,    61,    62,   916,   917,   918,
03032      938,   939,   940,   941,   942,   959,   963,   964,   965,   966,
03033      970,   971,   972,   973,   986,   994,   889,    10,    11,   843,
03034      844,   845,    10,    11,   830,   831,   832,     6,   206,   207,
03035      819,   820,   821,   822,   121,   788,   789,   177,   744,   745,
03036      746,   199,   202,   731,   732,   733,   734,  1034,   198,   719,
03037      721,   722,   685,    29,   672,    10,    11,   659,   660,   661,
03038      176,   181,   621,   622,    40,   616,   992,   174,   602,   604,
03039      605,    10,    11,   593,    42,   592,   948,   949,   950,   959,
03040      986,     3,     3,  1034,     3,    10,    11,   919,   920,   921,
03041      918,   121,   890,   891,   177,   846,   847,   848,   207,   210,
03042      833,   834,   835,   836,  1034,   206,   821,   823,   824,   790,
03043      791,   176,   181,   752,   753,   747,   992,   202,   733,   735,
03044      736,    10,    11,   724,   723,   948,   959,   986,   121,   686,
03045      687,     8,    10,    11,   673,   674,   675,   171,   190,   662,
03046      663,   664,   665,   179,   628,   629,   623,   992,  1034,    10,
03047       11,   617,   618,   619,    10,    11,   607,   606,   948,   959,
03048      986,   172,  1034,  1034,     8,     6,  1034,   214,   217,   218,
03049      220,   922,   923,   924,   925,   926,   927,   892,   893,   176,
03050      181,   854,   855,   849,   992,   210,   835,   837,   838,    10,
03051       11,   826,   825,   948,   959,   986,    10,    11,   793,   794,
03052      795,    17,   792,   938,   942,   959,   963,   970,   986,   993,
03053      996,   179,   759,   760,   754,   992,    10,    11,   748,   749,
03054      750,    10,    11,   738,    53,    54,    55,    56,   737,   948,
03055      951,   952,   953,   954,   959,   974,   975,   976,   977,   200,
03056      688,   689,     6,   192,   193,   676,   677,   678,   190,   664,
03057      666,   667,   185,   635,   636,   630,   992,    10,    11,   624,
03058      625,   626,     6,   221,   620,  1018,  1019,  1026,   172,     6,
03059     1034,     5,   928,   214,   924,    10,    11,   895,   896,   897,
03060      894,   938,   942,   959,   963,   970,   986,   990,   993,   179,
03061      861,   862,   856,   992,    10,    11,   850,   851,   852,    10,
03062       11,   840,    57,    58,    59,    60,   839,   948,   955,   956,
03063      957,   958,   959,   978,   979,   980,   981,   208,   122,   199,
03064      215,   796,   797,   798,   799,  1008,  1009,  1010,  1034,   185,
03065      766,   767,   761,   992,    10,    11,   755,   756,   757,   751,
03066     1018,   200,     3,     3,    10,    11,   691,   692,   693,   690,
03067      938,   942,   959,   963,   970,   986,   993,  1006,     8,   192,
03068      677,   679,   680,    10,    11,   669,   668,   948,   959,   986,
03069      183,   642,   643,   637,   992,    10,    11,   631,   632,   633,
03070      627,  1018,  1034,   225,  1027,   178,   226,  1020,  1021,  1034,
03071      219,   122,   207,   898,   899,   900,   901,  1008,   185,   868,
03072      869,   863,   992,    10,    11,   857,   858,   859,   853,  1018,
03073      208,  1034,  1034,   122,   798,   800,   801,  1009,  1011,  1012,
03074        6,   183,   773,   774,   768,   992,    10,    11,   762,   763,
03075      764,   758,  1018,   178,  1034,  1034,   122,   171,   694,   695,
03076      696,   697,  1008,    10,    11,   682,   683,   684,    26,    43,
03077      681,   946,   947,   967,   968,   969,  1006,   172,   187,   649,
03078      650,   644,   992,    10,    11,   638,   639,   640,   634,  1018,
03079      182,  1034,    10,    11,  1028,  1029,  1030,  1022,  1023,   122,
03080      900,   902,   903,   183,   875,   876,   870,   992,    10,    11,
03081      864,   865,   866,   860,  1018,   178,  1033,  1033,    10,    11,
03082      803,   804,   802,   948,   951,   959,   974,   986,    10,    11,
03083     1014,  1015,  1016,   942,   986,   992,  1013,  1034,   187,   780,
03084      781,   775,   992,    10,    11,   769,   770,   771,   765,  1018,
03085      182,   122,   696,   698,   699,   194,   663,     8,  1034,   651,
03086      992,    10,    11,   645,   646,   647,   641,  1018,   180,     6,
03087        4,   222,    10,  1025,   223,   224,  1024,  1031,  1032,    10,
03088       11,   905,   906,   904,   948,   951,   959,   974,   986,   187,
03089      882,   883,   877,   992,    10,    11,   871,   872,   873,   867,
03090     1018,   182,  1034,  1034,   200,  1017,  1018,   782,   992,    10,
03091       11,   776,   777,   778,   772,  1018,   180,    10,    11,   701,
03092      702,   700,   948,   951,   959,   974,   986,   194,  1033,     6,
03093       10,    11,   652,   653,   654,   648,  1018,   186,  1034,   222,
03094        6,  1034,  1034,   208,   884,   992,    10,    11,   878,   879,
03095      880,   874,  1018,   180,   216,    10,    11,   783,   784,   785,
03096      779,  1018,   186,   172,     8,  1034,   655,  1018,   184,   227,
03097        6,     6,    10,    11,   885,   886,   887,   881,  1018,   186,
03098      786,  1018,   184,   188,  1034,  1034,   888,  1018,   184,   188,
03099      188
03100 };
03101 
03102 #define yyerrok         (yyerrstatus = 0)
03103 #define yyclearin       (yychar = YYEMPTY)
03104 #define YYEMPTY         (-2)
03105 #define YYEOF           0
03106 
03107 #define YYACCEPT        goto yyacceptlab
03108 #define YYABORT         goto yyabortlab
03109 #define YYERROR         goto yyerrorlab
03110 
03111 
03112 /* Like YYERROR except do call yyerror.  This remains here temporarily
03113    to ease the transition to the new meaning of YYERROR, for GCC.
03114    Once GCC version 2 has supplanted version 1, this can go.  */
03115 
03116 #define YYFAIL          goto yyerrlab
03117 
03118 #define YYRECOVERING()  (!!yyerrstatus)
03119 
03120 #define YYBACKUP(Token, Value)                                  \
03121 do                                                              \
03122   if (yychar == YYEMPTY && yylen == 1)                          \
03123     {                                                           \
03124       yychar = (Token);                                         \
03125       yylval = (Value);                                         \
03126       yytoken = YYTRANSLATE (yychar);                           \
03127       YYPOPSTACK (1);                                           \
03128       goto yybackup;                                            \
03129     }                                                           \
03130   else                                                          \
03131     {                                                           \
03132       yyerror (&yylloc, osoption, parserData, osglData, YY_("syntax error: cannot back up")); \
03133       YYERROR;                                                  \
03134     }                                                           \
03135 while (YYID (0))
03136 
03137 
03138 #define YYTERROR        1
03139 #define YYERRCODE       256
03140 
03141 
03142 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
03143    If N is 0, then set CURRENT to the empty location which ends
03144    the previous symbol: RHS[0] (always defined).  */
03145 
03146 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
03147 #ifndef YYLLOC_DEFAULT
03148 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
03149     do                                                                  \
03150       if (YYID (N))                                                    \
03151         {                                                               \
03152           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
03153           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
03154           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
03155           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
03156         }                                                               \
03157       else                                                              \
03158         {                                                               \
03159           (Current).first_line   = (Current).last_line   =              \
03160             YYRHSLOC (Rhs, 0).last_line;                                \
03161           (Current).first_column = (Current).last_column =              \
03162             YYRHSLOC (Rhs, 0).last_column;                              \
03163         }                                                               \
03164     while (YYID (0))
03165 #endif
03166 
03167 
03168 /* YY_LOCATION_PRINT -- Print the location on the stream.
03169    This macro was not mandated originally: define only if we know
03170    we won't break user code: when these are the locations we know.  */
03171 
03172 #ifndef YY_LOCATION_PRINT
03173 # if YYLTYPE_IS_TRIVIAL
03174 #  define YY_LOCATION_PRINT(File, Loc)                  \
03175      fprintf (File, "%d.%d-%d.%d",                      \
03176               (Loc).first_line, (Loc).first_column,     \
03177               (Loc).last_line,  (Loc).last_column)
03178 # else
03179 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
03180 # endif
03181 #endif
03182 
03183 
03184 /* YYLEX -- calling `yylex' with the right arguments.  */
03185 
03186 #ifdef YYLEX_PARAM
03187 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
03188 #else
03189 # define YYLEX yylex (&yylval, &yylloc, scanner)
03190 #endif
03191 
03192 /* Enable debugging if requested.  */
03193 #if YYDEBUG
03194 
03195 # ifndef YYFPRINTF
03196 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
03197 #  define YYFPRINTF fprintf
03198 # endif
03199 
03200 # define YYDPRINTF(Args)                        \
03201 do {                                            \
03202   if (yydebug)                                  \
03203     YYFPRINTF Args;                             \
03204 } while (YYID (0))
03205 
03206 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
03207 do {                                                                      \
03208   if (yydebug)                                                            \
03209     {                                                                     \
03210       YYFPRINTF (stderr, "%s ", Title);                                   \
03211       yy_symbol_print (stderr,                                            \
03212                   Type, Value, Location, osoption, parserData, osglData); \
03213       YYFPRINTF (stderr, "\n");                                           \
03214     }                                                                     \
03215 } while (YYID (0))
03216 
03217 
03218 /*--------------------------------.
03219 | Print this symbol on YYOUTPUT.  |
03220 `--------------------------------*/
03221 
03222 /*ARGSUSED*/
03223 #if (defined __STDC__ || defined __C99__FUNC__ \
03224      || defined __cplusplus || defined _MSC_VER)
03225 static void
03226 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, OSOption *osoption, OSoLParserData *parserData, OSgLParserData *osglData)
03227 #else
03228 static void
03229 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, osoption, parserData, osglData)
03230     FILE *yyoutput;
03231     int yytype;
03232     YYSTYPE const * const yyvaluep;
03233     YYLTYPE const * const yylocationp;
03234     OSOption *osoption;
03235     OSoLParserData *parserData;
03236     OSgLParserData *osglData;
03237 #endif
03238 {
03239   if (!yyvaluep)
03240     return;
03241   YYUSE (yylocationp);
03242   YYUSE (osoption);
03243   YYUSE (parserData);
03244   YYUSE (osglData);
03245 # ifdef YYPRINT
03246   if (yytype < YYNTOKENS)
03247     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
03248 # else
03249   YYUSE (yyoutput);
03250 # endif
03251   switch (yytype)
03252     {
03253       default:
03254         break;
03255     }
03256 }
03257 
03258 
03259 /*--------------------------------.
03260 | Print this symbol on YYOUTPUT.  |
03261 `--------------------------------*/
03262 
03263 #if (defined __STDC__ || defined __C99__FUNC__ \
03264      || defined __cplusplus || defined _MSC_VER)
03265 static void
03266 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, OSOption *osoption, OSoLParserData *parserData, OSgLParserData *osglData)
03267 #else
03268 static void
03269 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, osoption, parserData, osglData)
03270     FILE *yyoutput;
03271     int yytype;
03272     YYSTYPE const * const yyvaluep;
03273     YYLTYPE const * const yylocationp;
03274     OSOption *osoption;
03275     OSoLParserData *parserData;
03276     OSgLParserData *osglData;
03277 #endif
03278 {
03279   if (yytype < YYNTOKENS)
03280     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
03281   else
03282     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
03283 
03284   YY_LOCATION_PRINT (yyoutput, *yylocationp);
03285   YYFPRINTF (yyoutput, ": ");
03286   yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, osoption, parserData, osglData);
03287   YYFPRINTF (yyoutput, ")");
03288 }
03289 
03290 /*------------------------------------------------------------------.
03291 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
03292 | TOP (included).                                                   |
03293 `------------------------------------------------------------------*/
03294 
03295 #if (defined __STDC__ || defined __C99__FUNC__ \
03296      || defined __cplusplus || defined _MSC_VER)
03297 static void
03298 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
03299 #else
03300 static void
03301 yy_stack_print (bottom, top)
03302     yytype_int16 *bottom;
03303     yytype_int16 *top;
03304 #endif
03305 {
03306   YYFPRINTF (stderr, "Stack now");
03307   for (; bottom <= top; ++bottom)
03308     YYFPRINTF (stderr, " %d", *bottom);
03309   YYFPRINTF (stderr, "\n");
03310 }
03311 
03312 # define YY_STACK_PRINT(Bottom, Top)                            \
03313 do {                                                            \
03314   if (yydebug)                                                  \
03315     yy_stack_print ((Bottom), (Top));                           \
03316 } while (YYID (0))
03317 
03318 
03319 /*------------------------------------------------.
03320 | Report that the YYRULE is going to be reduced.  |
03321 `------------------------------------------------*/
03322 
03323 #if (defined __STDC__ || defined __C99__FUNC__ \
03324      || defined __cplusplus || defined _MSC_VER)
03325 static void
03326 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, OSOption *osoption, OSoLParserData *parserData, OSgLParserData *osglData)
03327 #else
03328 static void
03329 yy_reduce_print (yyvsp, yylsp, yyrule, osoption, parserData, osglData)
03330     YYSTYPE *yyvsp;
03331     YYLTYPE *yylsp;
03332     int yyrule;
03333     OSOption *osoption;
03334     OSoLParserData *parserData;
03335     OSgLParserData *osglData;
03336 #endif
03337 {
03338   int yynrhs = yyr2[yyrule];
03339   int yyi;
03340   unsigned long int yylno = yyrline[yyrule];
03341   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
03342              yyrule - 1, yylno);
03343   /* The symbols being reduced.  */
03344   for (yyi = 0; yyi < yynrhs; yyi++)
03345     {
03346       fprintf (stderr, "   $%d = ", yyi + 1);
03347       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
03348                        &(yyvsp[(yyi + 1) - (yynrhs)])
03349                        , &(yylsp[(yyi + 1) - (yynrhs)])                , osoption, parserData, osglData);
03350       fprintf (stderr, "\n");
03351     }
03352 }
03353 
03354 # define YY_REDUCE_PRINT(Rule)          \
03355 do {                                    \
03356   if (yydebug)                          \
03357     yy_reduce_print (yyvsp, yylsp, Rule, osoption, parserData, osglData); \
03358 } while (YYID (0))
03359 
03360 /* Nonzero means print parse trace.  It is left uninitialized so that
03361    multiple parsers can coexist.  */
03362 int yydebug;
03363 #else /* !YYDEBUG */
03364 # define YYDPRINTF(Args)
03365 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
03366 # define YY_STACK_PRINT(Bottom, Top)
03367 # define YY_REDUCE_PRINT(Rule)
03368 #endif /* !YYDEBUG */
03369 
03370 
03371 /* YYINITDEPTH -- initial size of the parser's stacks.  */
03372 #ifndef YYINITDEPTH
03373 # define YYINITDEPTH 200
03374 #endif
03375 
03376 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
03377    if the built-in stack extension method is used).
03378 
03379    Do not make this value too large; the results are undefined if
03380    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
03381    evaluated with infinite-precision integer arithmetic.  */
03382 
03383 #ifndef YYMAXDEPTH
03384 # define YYMAXDEPTH 10000
03385 #endif
03386 
03387 
03388 
03389 #if YYERROR_VERBOSE
03390 
03391 # ifndef yystrlen
03392 #  if defined __GLIBC__ && defined _STRING_H
03393 #   define yystrlen strlen
03394 #  else
03395 /* Return the length of YYSTR.  */
03396 #if (defined __STDC__ || defined __C99__FUNC__ \
03397      || defined __cplusplus || defined _MSC_VER)
03398 static YYSIZE_T
03399 yystrlen (const char *yystr)
03400 #else
03401 static YYSIZE_T
03402 yystrlen (yystr)
03403     const char *yystr;
03404 #endif
03405 {
03406   YYSIZE_T yylen;
03407   for (yylen = 0; yystr[yylen]; yylen++)
03408     continue;
03409   return yylen;
03410 }
03411 #  endif
03412 # endif
03413 
03414 # ifndef yystpcpy
03415 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
03416 #   define yystpcpy stpcpy
03417 #  else
03418 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
03419    YYDEST.  */
03420 #if (defined __STDC__ || defined __C99__FUNC__ \
03421      || defined __cplusplus || defined _MSC_VER)
03422 static char *
03423 yystpcpy (char *yydest, const char *yysrc)
03424 #else
03425 static char *
03426 yystpcpy (yydest, yysrc)
03427     char *yydest;
03428     const char *yysrc;
03429 #endif
03430 {
03431   char *yyd = yydest;
03432   const char *yys = yysrc;
03433 
03434   while ((*yyd++ = *yys++) != '\0')
03435     continue;
03436 
03437   return yyd - 1;
03438 }
03439 #  endif
03440 # endif
03441 
03442 # ifndef yytnamerr
03443 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
03444    quotes and backslashes, so that it's suitable for yyerror.  The
03445    heuristic is that double-quoting is unnecessary unless the string
03446    contains an apostrophe, a comma, or backslash (other than
03447    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
03448    null, do not copy; instead, return the length of what the result
03449    would have been.  */
03450 static YYSIZE_T
03451 yytnamerr (char *yyres, const char *yystr)
03452 {
03453   if (*yystr == '"')
03454     {
03455       YYSIZE_T yyn = 0;
03456       char const *yyp = yystr;
03457 
03458       for (;;)
03459         switch (*++yyp)
03460           {
03461           case '\'':
03462           case ',':
03463             goto do_not_strip_quotes;
03464 
03465           case '\\':
03466             if (*++yyp != '\\')
03467               goto do_not_strip_quotes;
03468             /* Fall through.  */
03469           default:
03470             if (yyres)
03471               yyres[yyn] = *yyp;
03472             yyn++;
03473             break;
03474 
03475           case '"':
03476             if (yyres)
03477               yyres[yyn] = '\0';
03478             return yyn;
03479           }
03480     do_not_strip_quotes: ;
03481     }
03482 
03483   if (! yyres)
03484     return yystrlen (yystr);
03485 
03486   return yystpcpy (yyres, yystr) - yyres;
03487 }
03488 # endif
03489 
03490 /* Copy into YYRESULT an error message about the unexpected token
03491    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
03492    including the terminating null byte.  If YYRESULT is null, do not
03493    copy anything; just return the number of bytes that would be
03494    copied.  As a special case, return 0 if an ordinary "syntax error"
03495    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
03496    size calculation.  */
03497 static YYSIZE_T
03498 yysyntax_error (char *yyresult, int yystate, int yychar)
03499 {
03500   int yyn = yypact[yystate];
03501 
03502   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
03503     return 0;
03504   else
03505     {
03506       int yytype = YYTRANSLATE (yychar);
03507       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
03508       YYSIZE_T yysize = yysize0;
03509       YYSIZE_T yysize1;
03510       int yysize_overflow = 0;
03511       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
03512       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
03513       int yyx;
03514 
03515 # if 0
03516       /* This is so xgettext sees the translatable formats that are
03517          constructed on the fly.  */
03518       YY_("syntax error, unexpected %s");
03519       YY_("syntax error, unexpected %s, expecting %s");
03520       YY_("syntax error, unexpected %s, expecting %s or %s");
03521       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
03522       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
03523 # endif
03524       char *yyfmt;
03525       char const *yyf;
03526       static char const yyunexpected[] = "syntax error, unexpected %s";
03527       static char const yyexpecting[] = ", expecting %s";
03528       static char const yyor[] = " or %s";
03529       char yyformat[sizeof yyunexpected
03530                     + sizeof yyexpecting - 1
03531                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
03532                        * (sizeof yyor - 1))];
03533       char const *yyprefix = yyexpecting;
03534 
03535       /* Start YYX at -YYN if negative to avoid negative indexes in
03536          YYCHECK.  */
03537       int yyxbegin = yyn < 0 ? -yyn : 0;
03538 
03539       /* Stay within bounds of both yycheck and yytname.  */
03540       int yychecklim = YYLAST - yyn + 1;
03541       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
03542       int yycount = 1;
03543 
03544       yyarg[0] = yytname[yytype];
03545       yyfmt = yystpcpy (yyformat, yyunexpected);
03546 
03547       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
03548         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
03549           {
03550             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
03551               {
03552                 yycount = 1;
03553                 yysize = yysize0;
03554                 yyformat[sizeof yyunexpected - 1] = '\0';
03555                 break;
03556               }
03557             yyarg[yycount++] = yytname[yyx];
03558             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
03559             yysize_overflow |= (yysize1 < yysize);
03560             yysize = yysize1;
03561             yyfmt = yystpcpy (yyfmt, yyprefix);
03562             yyprefix = yyor;
03563           }
03564 
03565       yyf = YY_(yyformat);
03566       yysize1 = yysize + yystrlen (yyf);
03567       yysize_overflow |= (yysize1 < yysize);
03568       yysize = yysize1;
03569 
03570       if (yysize_overflow)
03571         return YYSIZE_MAXIMUM;
03572 
03573       if (yyresult)
03574         {
03575           /* Avoid sprintf, as that infringes on the user's name space.
03576              Don't have undefined behavior even if the translation
03577              produced a string with the wrong number of "%s"s.  */
03578           char *yyp = yyresult;
03579           int yyi = 0;
03580           while ((*yyp = *yyf) != '\0')
03581             {
03582               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
03583                 {
03584                   yyp += yytnamerr (yyp, yyarg[yyi++]);
03585                   yyf += 2;
03586                 }
03587               else
03588                 {
03589                   yyp++;
03590                   yyf++;
03591                 }
03592             }
03593         }
03594       return yysize;
03595     }
03596 }
03597 #endif /* YYERROR_VERBOSE */
03598 
03599 
03600 /*-----------------------------------------------.
03601 | Release the memory associated to this symbol.  |
03602 `-----------------------------------------------*/
03603 
03604 /*ARGSUSED*/
03605 #if (defined __STDC__ || defined __C99__FUNC__ \
03606      || defined __cplusplus || defined _MSC_VER)
03607 static void
03608 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, OSOption *osoption, OSoLParserData *parserData, OSgLParserData *osglData)
03609 #else
03610 static void
03611 yydestruct (yymsg, yytype, yyvaluep, yylocationp, osoption, parserData, osglData)
03612     const char *yymsg;
03613     int yytype;
03614     YYSTYPE *yyvaluep;
03615     YYLTYPE *yylocationp;
03616     OSOption *osoption;
03617     OSoLParserData *parserData;
03618     OSgLParserData *osglData;
03619 #endif
03620 {
03621   YYUSE (yyvaluep);
03622   YYUSE (yylocationp);
03623   YYUSE (osoption);
03624   YYUSE (parserData);
03625   YYUSE (osglData);
03626 
03627   if (!yymsg)
03628     yymsg = "Deleting";
03629   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
03630 
03631   switch (yytype)
03632     {
03633 
03634       default:
03635         break;
03636     }
03637 }
03638 
03639 
03640 /* Prevent warnings from -Wmissing-prototypes.  */
03641 
03642 #ifdef YYPARSE_PARAM
03643 #if defined __STDC__ || defined __cplusplus
03644 int yyparse (void *YYPARSE_PARAM);
03645 #else
03646 int yyparse ();
03647 #endif
03648 #else /* ! YYPARSE_PARAM */
03649 #if defined __STDC__ || defined __cplusplus
03650 int yyparse (OSOption *osoption, OSoLParserData *parserData, OSgLParserData *osglData);
03651 #else
03652 int yyparse ();
03653 #endif
03654 #endif /* ! YYPARSE_PARAM */
03655 
03656 
03657 
03658 
03659 
03660 
03661 /*----------.
03662 | yyparse.  |
03663 `----------*/
03664 
03665 #ifdef YYPARSE_PARAM
03666 #if (defined __STDC__ || defined __C99__FUNC__ \
03667      || defined __cplusplus || defined _MSC_VER)
03668 int
03669 yyparse (void *YYPARSE_PARAM)
03670 #else
03671 int
03672 yyparse (YYPARSE_PARAM)
03673     void *YYPARSE_PARAM;
03674 #endif
03675 #else /* ! YYPARSE_PARAM */
03676 #if (defined __STDC__ || defined __C99__FUNC__ \
03677      || defined __cplusplus || defined _MSC_VER)
03678 int
03679 yyparse (OSOption *osoption, OSoLParserData *parserData, OSgLParserData *osglData)
03680 #else
03681 int
03682 yyparse (osoption, parserData, osglData)
03683     OSOption *osoption;
03684     OSoLParserData *parserData;
03685     OSgLParserData *osglData;
03686 #endif
03687 #endif
03688 {
03689   /* The look-ahead symbol.  */
03690 int yychar;
03691 
03692 /* The semantic value of the look-ahead symbol.  */
03693 YYSTYPE yylval;
03694 
03695 /* Number of syntax errors so far.  */
03696 int yynerrs;
03697 /* Location data for the look-ahead symbol.  */
03698 YYLTYPE yylloc;
03699 
03700   int yystate;
03701   int yyn;
03702   int yyresult;
03703   /* Number of tokens to shift before error messages enabled.  */
03704   int yyerrstatus;
03705   /* Look-ahead token as an internal (translated) token number.  */
03706   int yytoken = 0;
03707 #if YYERROR_VERBOSE
03708   /* Buffer for error messages, and its allocated size.  */
03709   char yymsgbuf[128];
03710   char *yymsg = yymsgbuf;
03711   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
03712 #endif
03713 
03714   /* Three stacks and their tools:
03715      `yyss': related to states,
03716      `yyvs': related to semantic values,
03717      `yyls': related to locations.
03718 
03719      Refer to the stacks thru separate pointers, to allow yyoverflow
03720      to reallocate them elsewhere.  */
03721 
03722   /* The state stack.  */
03723   yytype_int16 yyssa[YYINITDEPTH];
03724   yytype_int16 *yyss = yyssa;
03725   yytype_int16 *yyssp;
03726 
03727   /* The semantic value stack.  */
03728   YYSTYPE yyvsa[YYINITDEPTH];
03729   YYSTYPE *yyvs = yyvsa;
03730   YYSTYPE *yyvsp;
03731 
03732   /* The location stack.  */
03733   YYLTYPE yylsa[YYINITDEPTH];
03734   YYLTYPE *yyls = yylsa;
03735   YYLTYPE *yylsp;
03736   /* The locations where the error started and ended.  */
03737   YYLTYPE yyerror_range[2];
03738 
03739 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
03740 
03741   YYSIZE_T yystacksize = YYINITDEPTH;
03742 
03743   /* The variables used to return semantic value and location from the
03744      action routines.  */
03745   YYSTYPE yyval;
03746   YYLTYPE yyloc;
03747 
03748   /* The number of symbols on the RHS of the reduced rule.
03749      Keep to zero when no symbol should be popped.  */
03750   int yylen = 0;
03751 
03752   YYDPRINTF ((stderr, "Starting parse\n"));
03753 
03754   yystate = 0;
03755   yyerrstatus = 0;
03756   yynerrs = 0;
03757   yychar = YYEMPTY;             /* Cause a token to be read.  */
03758 
03759   /* Initialize stack pointers.
03760      Waste one element of value and location stack
03761      so that they stay on the same level as the state stack.
03762      The wasted elements are never initialized.  */
03763 
03764   yyssp = yyss;
03765   yyvsp = yyvs;
03766   yylsp = yyls;
03767 #if YYLTYPE_IS_TRIVIAL
03768   /* Initialize the default location before parsing starts.  */
03769   yylloc.first_line   = yylloc.last_line   = 1;
03770   yylloc.first_column = yylloc.last_column = 0;
03771 #endif
03772 
03773   goto yysetstate;
03774 
03775 /*------------------------------------------------------------.
03776 | yynewstate -- Push a new state, which is found in yystate.  |
03777 `------------------------------------------------------------*/
03778  yynewstate:
03779   /* In all cases, when you get here, the value and location stacks
03780      have just been pushed.  So pushing a state here evens the stacks.  */
03781   yyssp++;
03782 
03783  yysetstate:
03784   *yyssp = yystate;
03785 
03786   if (yyss + yystacksize - 1 <= yyssp)
03787     {
03788       /* Get the current used size of the three stacks, in elements.  */
03789       YYSIZE_T yysize = yyssp - yyss + 1;
03790 
03791 #ifdef yyoverflow
03792       {
03793         /* Give user a chance to reallocate the stack.  Use copies of
03794            these so that the &'s don't force the real ones into
03795            memory.  */
03796         YYSTYPE *yyvs1 = yyvs;
03797         yytype_int16 *yyss1 = yyss;
03798         YYLTYPE *yyls1 = yyls;
03799 
03800         /* Each stack pointer address is followed by the size of the
03801            data in use in that stack, in bytes.  This used to be a
03802            conditional around just the two extra args, but that might
03803            be undefined if yyoverflow is a macro.  */
03804         yyoverflow (YY_("memory exhausted"),
03805                     &yyss1, yysize * sizeof (*yyssp),
03806                     &yyvs1, yysize * sizeof (*yyvsp),
03807                     &yyls1, yysize * sizeof (*yylsp),
03808                     &yystacksize);
03809         yyls = yyls1;
03810         yyss = yyss1;
03811         yyvs = yyvs1;
03812       }
03813 #else /* no yyoverflow */
03814 # ifndef YYSTACK_RELOCATE
03815       goto yyexhaustedlab;
03816 # else
03817       /* Extend the stack our own way.  */
03818       if (YYMAXDEPTH <= yystacksize)
03819         goto yyexhaustedlab;
03820       yystacksize *= 2;
03821       if (YYMAXDEPTH < yystacksize)
03822         yystacksize = YYMAXDEPTH;
03823 
03824       {
03825         yytype_int16 *yyss1 = yyss;
03826         union yyalloc *yyptr =
03827           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
03828         if (! yyptr)
03829           goto yyexhaustedlab;
03830         YYSTACK_RELOCATE (yyss);
03831         YYSTACK_RELOCATE (yyvs);
03832         YYSTACK_RELOCATE (yyls);
03833 #  undef YYSTACK_RELOCATE
03834         if (yyss1 != yyssa)
03835           YYSTACK_FREE (yyss1);
03836       }
03837 # endif
03838 #endif /* no yyoverflow */
03839 
03840       yyssp = yyss + yysize - 1;
03841       yyvsp = yyvs + yysize - 1;
03842       yylsp = yyls + yysize - 1;
03843 
03844       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
03845                   (unsigned long int) yystacksize));
03846 
03847       if (yyss + yystacksize - 1 <= yyssp)
03848         YYABORT;
03849     }
03850 
03851   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
03852 
03853   goto yybackup;
03854 
03855 /*-----------.
03856 | yybackup.  |
03857 `-----------*/
03858 yybackup:
03859 
03860   /* Do appropriate processing given the current state.  Read a
03861      look-ahead token if we need one and don't already have one.  */
03862 
03863   /* First try to decide what to do without reference to look-ahead token.  */
03864   yyn = yypact[yystate];
03865   if (yyn == YYPACT_NINF)
03866     goto yydefault;
03867 
03868   /* Not known => get a look-ahead token if don't already have one.  */
03869 
03870   /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
03871   if (yychar == YYEMPTY)
03872     {
03873       YYDPRINTF ((stderr, "Reading a token: "));
03874       yychar = YYLEX;
03875     }
03876 
03877   if (yychar <= YYEOF)
03878     {
03879       yychar = yytoken = YYEOF;
03880       YYDPRINTF ((stderr, "Now at end of input.\n"));
03881     }
03882   else
03883     {
03884       yytoken = YYTRANSLATE (yychar);
03885       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
03886     }
03887 
03888   /* If the proper action on seeing token YYTOKEN is to reduce or to
03889      detect an error, take that action.  */
03890   yyn += yytoken;
03891   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
03892     goto yydefault;
03893   yyn = yytable[yyn];
03894   if (yyn <= 0)
03895     {
03896       if (yyn == 0 || yyn == YYTABLE_NINF)
03897         goto yyerrlab;
03898       yyn = -yyn;
03899       goto yyreduce;
03900     }
03901 
03902   if (yyn == YYFINAL)
03903     YYACCEPT;
03904 
03905   /* Count tokens shifted since error; after three, turn off error
03906      status.  */
03907   if (yyerrstatus)
03908     yyerrstatus--;
03909 
03910   /* Shift the look-ahead token.  */
03911   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
03912 
03913   /* Discard the shifted token unless it is eof.  */
03914   if (yychar != YYEOF)
03915     yychar = YYEMPTY;
03916 
03917   yystate = yyn;
03918   *++yyvsp = yylval;
03919   *++yylsp = yylloc;
03920   goto yynewstate;
03921 
03922 
03923 /*-----------------------------------------------------------.
03924 | yydefault -- do the default action for the current state.  |
03925 `-----------------------------------------------------------*/
03926 yydefault:
03927   yyn = yydefact[yystate];
03928   if (yyn == 0)
03929     goto yyerrlab;
03930   goto yyreduce;
03931 
03932 
03933 /*-----------------------------.
03934 | yyreduce -- Do a reduction.  |
03935 `-----------------------------*/
03936 yyreduce:
03937   /* yyn is the number of a rule to reduce with.  */
03938   yylen = yyr2[yyn];
03939 
03940   /* If YYLEN is nonzero, implement the default value of the action:
03941      `$$ = $1'.
03942 
03943      Otherwise, the following line sets YYVAL to garbage.
03944      This behavior is undocumented and Bison
03945      users should not rely upon it.  Assigning to YYVAL
03946      unconditionally makes the parser a bit smaller, and it avoids a
03947      GCC warning that YYVAL may be used uninitialized.  */
03948   yyval = yyvsp[1-yylen];
03949 
03950   /* Default location.  */
03951   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
03952   YY_REDUCE_PRINT (yyn);
03953   switch (yyn)
03954     {
03955         case 4:
03956 
03957     {
03958 #ifdef DEBUG
03959 yydebug = 1;
03960 #endif
03961 }
03962     break;
03963 
03964   case 5:
03965 
03966     {
03967 #ifdef DEBUG
03968 yydebug = 1;
03969 #endif
03970 }
03971     break;
03972 
03973   case 13:
03974 
03975     {   osolerror( NULL, osoption, parserData, osglData, "unexpected end of file, expecting </osol>");}
03976     break;
03977 
03978   case 16:
03979 
03980     {
03981         if(!osoption->setOptionHeader(osglData->fileName, osglData->source,
03982                         osglData->description, osglData->fileCreator, osglData->licence) )      
03983                 osolerror( NULL, osoption, parserData, osglData, "setHeader failed");
03984 }
03985     break;
03986 
03987   case 17:
03988 
03989     {
03990         osglData->fileName    = "";
03991         osglData->source      = "";
03992         osglData->description = "";
03993         osglData->fileCreator = "";
03994         osglData->licence     = "";
03995 }
03996     break;
03997 
03998   case 29:
03999 
04000     {
04001         osglData->fileName = (yyvsp[(2) - (3)].sval);
04002         free((yyvsp[(2) - (3)].sval));
04003 }
04004     break;
04005 
04006   case 36:
04007 
04008     {
04009         osglData->source = (yyvsp[(2) - (3)].sval);
04010         free((yyvsp[(2) - (3)].sval));
04011 }
04012     break;
04013 
04014   case 43:
04015 
04016     {
04017         osglData->description = (yyvsp[(2) - (3)].sval);
04018         free((yyvsp[(2) - (3)].sval));
04019 }
04020     break;
04021 
04022   case 50:
04023 
04024     {
04025         osglData->fileCreator = (yyvsp[(2) - (3)].sval);
04026         free((yyvsp[(2) - (3)].sval));
04027 }
04028     break;
04029 
04030   case 57:
04031 
04032     {
04033         osglData->licence = (yyvsp[(2) - (3)].sval);
04034         free((yyvsp[(2) - (3)].sval));
04035 }
04036     break;
04037 
04038   case 60:
04039 
04040     {
04041         parserData->serviceURIPresent = false;  
04042         parserData->serviceNamePresent = false;
04043         parserData->instanceNamePresent = false;
04044         parserData->instanceLocationPresent = false;
04045         parserData->jobIDPresent = false;
04046         parserData->solverToInvokePresent = false;
04047         parserData->licensePresent = false;
04048         parserData->usernamePresent = false;
04049         parserData->passwordPresent = false;
04050         parserData->contactPresent = false;
04051         parserData->otherGeneralOptionsPresent = false;
04052         osoption->general = new GeneralOption();
04053 }
04054     break;
04055 
04056   case 81:
04057 
04058     {   if (parserData->serviceURIPresent)
04059                 osolerror( NULL, osoption, parserData, osglData, "only one <serviceURI> element allowed");
04060         else
04061                 parserData->serviceURIPresent = true;
04062         
04063 }
04064     break;
04065 
04066   case 87:
04067 
04068     {
04069                 if (osoption->setServiceURI((yyvsp[(1) - (1)].sval)) == false)
04070                         osolerror( NULL, osoption, parserData, osglData, "setServiceURI failed");
04071                         free((yyvsp[(1) - (1)].sval)); 
04072                 parserData->errorText = NULL;
04073         }
04074     break;
04075 
04076   case 89:
04077 
04078     {   if (parserData->serviceNamePresent)
04079                         osolerror(NULL, NULL, parserData, osglData, "only one serviceName element allowed");
04080                 parserData->serviceNamePresent = true;
04081         }
04082     break;
04083 
04084   case 95:
04085 
04086     {
04087                         osoption->setServiceName((yyvsp[(1) - (1)].sval)); 
04088                         free((yyvsp[(1) - (1)].sval)); 
04089                         parserData->errorText = NULL;
04090                 }
04091     break;
04092 
04093   case 97:
04094 
04095     {   if (parserData->instanceNamePresent)
04096                         osolerror(NULL, NULL, parserData, osglData, "only one instanceName element allowed");
04097                 parserData->instanceNamePresent = true;
04098         }
04099     break;
04100 
04101   case 103:
04102 
04103     {
04104                 if (osoption->setInstanceName((yyvsp[(1) - (1)].sval)) == false) 
04105                         osolerror( NULL, osoption, parserData, osglData, "setInstanceName failed");
04106                 free((yyvsp[(1) - (1)].sval)); 
04107                 parserData->errorText = NULL;
04108         }
04109     break;
04110 
04111   case 104:
04112 
04113     {
04114         if (osoption->setInstanceLocation(parserData->tempStr,parserData->typeAttribute) == false)
04115                 osolerror(NULL, NULL, parserData, osglData, "setInstanceLocation failed");
04116         parserData->errorText = NULL;
04117 }
04118     break;
04119 
04120   case 105:
04121 
04122     {
04123                 if (parserData->instanceLocationPresent)
04124                         osolerror(NULL, NULL, parserData, osglData, "only one instanceLocation element allowed");
04125                 parserData->instanceLocationPresent = true;
04126                 parserData->typeAttribute = "local";
04127         }
04128     break;
04129 
04130   case 107:
04131 
04132     {   
04133                 if (verifyLocationType(parserData->typeAttribute) == false)
04134                         osolerror(NULL, NULL, parserData, osglData, "instance location type not recognized");
04135                 parserData->errorText = NULL;
04136         }
04137     break;
04138 
04139   case 108:
04140 
04141     { 
04142         parserData->typeAttribute = (yyvsp[(2) - (3)].sval); 
04143         free((yyvsp[(2) - (3)].sval));
04144 }
04145     break;
04146 
04147   case 114:
04148 
04149     {   
04150                 parserData->tempStr = (yyvsp[(1) - (1)].sval);
04151                 free((yyvsp[(1) - (1)].sval)); 
04152         }
04153     break;
04154 
04155   case 116:
04156 
04157     {   if (parserData->jobIDPresent)
04158                         osolerror(NULL, NULL, parserData, osglData, "only one jobID element allowed");
04159                 parserData->jobIDPresent = true;
04160         }
04161     break;
04162 
04163   case 122:
04164 
04165     {
04166                 if (osoption->setJobID((yyvsp[(1) - (1)].sval)) == false)
04167                         osolerror( NULL, osoption, parserData, osglData, "setJobID failed");
04168                 free((yyvsp[(1) - (1)].sval)); 
04169                 parserData->errorText = NULL;
04170         }
04171     break;
04172 
04173   case 124:
04174 
04175     {
04176                 if (parserData->solverToInvokePresent)
04177                         osolerror(NULL, NULL, parserData, osglData, "only one solverToInvoke element allowed");
04178                 parserData->solverToInvokePresent = true;
04179         }
04180     break;
04181 
04182   case 130:
04183 
04184     {
04185                 if (osoption->setSolverToInvoke((yyvsp[(1) - (1)].sval)) == false)
04186                         osolerror( NULL, osoption, parserData, osglData, "setSolverToInvoke failed");
04187                 free((yyvsp[(1) - (1)].sval)); 
04188                 parserData->errorText = NULL;
04189         }
04190     break;
04191 
04192   case 132:
04193 
04194     {
04195         if (parserData->licensePresent)
04196                 osolerror( NULL, osoption, parserData, osglData, "only one <license> element allowed");
04197         parserData->licensePresent = true;      
04198 }
04199     break;
04200 
04201   case 138:
04202 
04203     {
04204                 if (osoption->setLicense((yyvsp[(1) - (1)].sval)) == false)
04205                         osolerror( NULL, osoption, parserData, osglData, "setLicense failed");
04206                 free((yyvsp[(1) - (1)].sval));
04207                 parserData->errorText = NULL;
04208         }
04209     break;
04210 
04211   case 140:
04212 
04213     {   if (parserData->usernamePresent)
04214                 osolerror( NULL, osoption, parserData, osglData, "only one <username> element allowed");
04215         parserData->usernamePresent = true;     
04216 }
04217     break;
04218 
04219   case 146:
04220 
04221     {
04222                 if (osoption->setUserName((yyvsp[(1) - (1)].sval)) == false)
04223                         osolerror( NULL, osoption, parserData, osglData, "setUsername failed");
04224                 free((yyvsp[(1) - (1)].sval)); 
04225                 parserData->errorText = NULL;
04226         }
04227     break;
04228 
04229   case 148:
04230 
04231     {   if (parserData->passwordPresent)
04232                 osolerror( NULL, osoption, parserData, osglData, "only one <password> element allowed");
04233         parserData->passwordPresent = true;     
04234 }
04235     break;
04236 
04237   case 154:
04238 
04239     {
04240                 if (osoption->setPassword((yyvsp[(1) - (1)].sval)) == false)
04241                         osolerror( NULL, osoption, parserData, osglData, "setPassword failed");
04242                 free((yyvsp[(1) - (1)].sval)); 
04243                 parserData->errorText = NULL;
04244         }
04245     break;
04246 
04247   case 155:
04248 
04249     {
04250         if (osoption->setContact(parserData->tempStr,parserData->typeAttribute) == false)
04251                 osolerror( NULL, osoption, parserData, osglData, "setContact failed");
04252         parserData->errorText = NULL;
04253 }
04254     break;
04255 
04256   case 156:
04257 
04258     {
04259         if (parserData->contactPresent)
04260                 osolerror( NULL, osoption, parserData, osglData, "only one <contact> element allowed");
04261         parserData->contactPresent = true;
04262         parserData->typeAttribute = "osp";
04263         parserData->tempStr = "";
04264 }
04265     break;
04266 
04267   case 158:
04268 
04269     {   
04270                 if (verifyTransportType(parserData->typeAttribute) == false)
04271                         osolerror(NULL, NULL, parserData, osglData, "transport type not recognized");
04272         }
04273     break;
04274 
04275   case 159:
04276 
04277     { 
04278         parserData->typeAttribute = (yyvsp[(2) - (3)].sval); 
04279         free((yyvsp[(2) - (3)].sval));
04280 }
04281     break;
04282 
04283   case 165:
04284 
04285     {
04286                 parserData->tempStr = (yyvsp[(1) - (1)].sval);
04287                 free((yyvsp[(1) - (1)].sval));
04288         }
04289     break;
04290 
04291   case 167:
04292 
04293     {   if (parserData->otherGeneralOptionsPresent)
04294                 osolerror(NULL, NULL, parserData, osglData, "only one <general> <other> element allowed");
04295         parserData->otherGeneralOptionsPresent = true;
04296 }
04297     break;
04298 
04299   case 168:
04300 
04301     {
04302         if (parserData->tempInt < 0) osolerror(NULL, NULL, parserData, osglData, "number of other general options cannot be negative");
04303         parserData->numberOf = parserData->tempInt;
04304         parserData->kounter = 0;
04305 }
04306     break;
04307 
04308   case 169:
04309 
04310     {   if (parserData->numberOf > 0)
04311                         osolerror(NULL, NULL, parserData, osglData, "expected at least one <other> element");
04312         }
04313     break;
04314 
04315   case 170:
04316 
04317     {   if (parserData->kounter < parserData->numberOf - 1)
04318                         osolerror(NULL, NULL, parserData, osglData, "fewer <other> elements than specified");
04319         }
04320     break;
04321 
04322   case 177:
04323 
04324     {   
04325         parserData->kounter++;
04326         if (osoption->setAnOtherGeneralOption(parserData->nameAttribute, parserData->valueAttribute, parserData->descriptionAttribute) == false)
04327                 osolerror(NULL, NULL, parserData, osglData, "setOtherGeneralOption failed");
04328 }
04329     break;
04330 
04331   case 178:
04332 
04333     {   if (parserData->kounter >= parserData->numberOf)
04334                 osolerror(NULL, NULL, parserData, osglData, "more <other> elements than specified");
04335         parserData->nameAttributePresent = false;
04336         parserData->valueAttributePresent = false;
04337         parserData->descriptionAttributePresent = false;
04338         parserData->nameAttribute = "";
04339         parserData->valueAttribute = "";
04340         parserData->descriptionAttribute = "";
04341 }
04342     break;
04343 
04344   case 179:
04345 
04346     {
04347         if (!parserData->nameAttributePresent)
04348                 osolerror (NULL, NULL, parserData, osglData, "<other> must have name attribute");
04349 }
04350     break;
04351 
04352   case 182:
04353 
04354     {   if (parserData->nameAttribute.length() == 0)
04355                         osolerror(NULL, NULL, parserData, osglData, "otherOption name cannot be empty");
04356         }
04357     break;
04358 
04359   case 189:
04360 
04361     {
04362         parserData->minDiskSpacePresent = false;        
04363         parserData->minMemoryPresent = false;
04364         parserData->minCPUSpeedPresent = false;
04365         parserData->minCPUNumberPresent = false;
04366         parserData->otherSystemOptionsPresent = false;
04367         osoption->system = new SystemOption();
04368 }
04369     break;
04370 
04371   case 204:
04372 
04373     {   if (parserData->minDiskSpacePresent)
04374                         osolerror(NULL, NULL, parserData, osglData, "only one minDiskSpace element allowed");
04375                 parserData->minDiskSpacePresent = true; 
04376                 parserData->unitAttributePresent = false;       
04377                 parserData->descriptionAttributePresent = false;        
04378                 parserData->unitAttribute = "byte";     
04379                 parserData->descriptionAttribute = "";
04380         }
04381     break;
04382 
04383   case 211:
04384 
04385     {
04386         if (osoption->setMinDiskSpace(parserData->unitAttribute, parserData->descriptionAttribute, parserData->tempVal) == false)
04387                 osolerror(NULL, NULL, parserData, osglData, "setMinDiskSpace failed");
04388         parserData->errorText = NULL;
04389 }
04390     break;
04391 
04392   case 213:
04393 
04394     {   if (parserData->minMemoryPresent)
04395                         osolerror(NULL, NULL, parserData, osglData, "only one minMemory element allowed");
04396                 parserData->minMemoryPresent = true;
04397                 parserData->unitAttributePresent = false;       
04398                 parserData->descriptionAttributePresent = false;        
04399                 parserData->unitAttribute = "byte";     
04400                 parserData->descriptionAttribute = "";
04401         }
04402     break;
04403 
04404   case 220:
04405 
04406     {
04407         if (osoption->setMinMemorySize(parserData->unitAttribute, parserData->descriptionAttribute, parserData->tempVal) == false)
04408                 osolerror(NULL, NULL, parserData, osglData, "setMinMemorySize failed");
04409     parserData->errorText = NULL;
04410 }
04411     break;
04412 
04413   case 222:
04414 
04415     {   if (parserData->minCPUSpeedPresent)
04416                         osolerror(NULL, NULL, parserData, osglData, "only one minCPUSpeed element allowed");
04417                 parserData->minCPUSpeedPresent = true;
04418                 parserData->unitAttributePresent = false;       
04419                 parserData->descriptionAttributePresent = false;        
04420                 parserData->unitAttribute = "hertz";    
04421                 parserData->descriptionAttribute = "";
04422         }
04423     break;
04424 
04425   case 229:
04426 
04427     {   
04428         if (osoption->setMinCPUSpeed(parserData->unitAttribute, parserData->descriptionAttribute, parserData->tempVal) == false)
04429                 osolerror(NULL, NULL, parserData, osglData, "setMinCPUSpeed failed");
04430     parserData->errorText = NULL;
04431 }
04432     break;
04433 
04434   case 231:
04435 
04436     {   if (parserData->minCPUNumberPresent)
04437                         osolerror(NULL, NULL, parserData, osglData, "only one minCPUNumber element allowed");
04438                 parserData->minCPUNumberPresent = true;
04439                 parserData->descriptionAttributePresent = false;        
04440                 parserData->descriptionAttribute = "";  
04441         }
04442     break;
04443 
04444   case 235:
04445 
04446     {
04447         if (osoption->setMinCPUNumber((yyvsp[(1) - (1)].ival), parserData->descriptionAttribute) == false)
04448                 osolerror(NULL, NULL, parserData, osglData, "setMinCPUNumber failed");
04449         //free($1); 
04450         parserData->errorText = NULL; 
04451 }
04452     break;
04453 
04454   case 237:
04455 
04456     {
04457         if (parserData->otherSystemOptionsPresent)
04458                 osolerror(NULL, NULL, parserData, osglData, "only one <system> <other> element allowed");
04459         parserData->otherSystemOptionsPresent = true;
04460 }
04461     break;
04462 
04463   case 238:
04464 
04465     {
04466         if (parserData->tempInt < 0) osolerror(NULL, NULL, parserData, osglData, "number of other system options cannot be negative");
04467         parserData->numberOf = parserData->tempInt;
04468         parserData->kounter = 0;
04469 }
04470     break;
04471 
04472   case 239:
04473 
04474     {   if (parserData->numberOf > 0)
04475                         osolerror(NULL, NULL, parserData, osglData, "expected at least one <other> element");
04476         }
04477     break;
04478 
04479   case 240:
04480 
04481     {   if (parserData->kounter < parserData->numberOf - 1)
04482                         osolerror(NULL, NULL, parserData, osglData, "fewer <other> elements than specified");
04483         }
04484     break;
04485 
04486   case 247:
04487 
04488     {
04489         parserData->kounter++;
04490         if (osoption->setAnOtherSystemOption(parserData->nameAttribute, parserData->valueAttribute, parserData->descriptionAttribute) == false)
04491                 osolerror(NULL, NULL, parserData, osglData, "setOtherSystemOption failed");
04492 }
04493     break;
04494 
04495   case 248:
04496 
04497     {   if (parserData->kounter >= parserData->numberOf)
04498                 osolerror(NULL, NULL, parserData, osglData, "more <other> elements than specified");
04499         parserData->nameAttributePresent = false;
04500         parserData->valueAttributePresent = false;
04501         parserData->descriptionAttributePresent = false;
04502         parserData->nameAttribute = "";
04503         parserData->valueAttribute = "";
04504         parserData->descriptionAttribute = "";
04505 }
04506     break;
04507 
04508   case 249:
04509 
04510     {   if (!parserData->nameAttributePresent)
04511                 osolerror (NULL, NULL, parserData, osglData, "<other> must have name attribute");
04512 }
04513     break;
04514 
04515   case 252:
04516 
04517     {
04518                 if (parserData->nameAttribute.length() == 0)
04519                         osolerror(NULL, NULL, parserData, osglData, "otherOption name cannot be empty");
04520         }
04521     break;
04522 
04523   case 259:
04524 
04525     {
04526         parserData->serviceTypePresent = false; 
04527         parserData->otherServiceOptionsPresent = false;
04528         osoption->service = new ServiceOption();
04529 }
04530     break;
04531 
04532   case 271:
04533 
04534     {   if (parserData->serviceTypePresent)
04535                         osolerror(NULL, NULL, parserData, osglData, "only one currentState element allowed");
04536                 parserData->serviceTypePresent = true;
04537         }
04538     break;
04539 
04540   case 277:
04541 
04542     {
04543        parserData->tempStr = (yyvsp[(1) - (1)].sval); 
04544                 free((yyvsp[(1) - (1)].sval));
04545                 if (osoption->setServiceType(parserData->tempStr) == false)
04546                         osolerror(NULL, NULL, parserData, osglData, "setServiceType failed; current system state not recognized");
04547                 parserData->errorText = NULL;
04548         }
04549     break;
04550 
04551   case 279:
04552 
04553     {
04554         if (parserData->otherServiceOptionsPresent)
04555                 osolerror(NULL, NULL, parserData, osglData, "only one <service> <other> element allowed");
04556         parserData->otherServiceOptionsPresent = true;
04557 }
04558     break;
04559 
04560   case 280:
04561 
04562     {
04563         if (parserData->tempInt < 0) osolerror(NULL, NULL, parserData, osglData, "number of other service options cannot be negative");
04564         parserData->numberOf = parserData->tempInt;
04565         parserData->kounter = 0;
04566 }
04567     break;
04568 
04569   case 281:
04570 
04571     {   if (parserData->numberOf > 0)
04572                         osolerror(NULL, NULL, parserData, osglData, "expected at least one <other> element");
04573         }
04574     break;
04575 
04576   case 282:
04577 
04578     {   if (parserData->kounter < parserData->numberOf - 1)
04579                         osolerror(NULL, NULL, parserData, osglData, "fewer <other> elements than specified");
04580         }
04581     break;
04582 
04583   case 289:
04584 
04585     {   
04586         parserData->kounter++;
04587         if (osoption->setAnOtherServiceOption(parserData->nameAttribute, parserData->valueAttribute, parserData->descriptionAttribute) == false)
04588                 osolerror(NULL, NULL, parserData, osglData, "setOtherServiceOption failed");
04589 }
04590     break;
04591 
04592   case 290:
04593 
04594     {   if (parserData->kounter >= parserData->numberOf)
04595                 osolerror(NULL, NULL, parserData, osglData, "more <other> elements than specified");
04596         parserData->nameAttributePresent = false;
04597         parserData->valueAttributePresent = false;
04598         parserData->descriptionAttributePresent = false;
04599         parserData->nameAttribute = "";
04600         parserData->valueAttribute = "";
04601         parserData->descriptionAttribute = "";
04602 }
04603     break;
04604 
04605   case 291:
04606 
04607     {   if (!parserData->nameAttributePresent)
04608                 osolerror (NULL, NULL, parserData, osglData, "<other> must have name attribute");
04609 }
04610     break;
04611 
04612   case 294:
04613 
04614     {
04615                 if (parserData->nameAttribute.length() == 0)
04616                         osolerror(NULL, NULL, parserData, osglData, "otherOption name cannot be empty");
04617         }
04618     break;
04619 
04620   case 301:
04621 
04622     {
04623         parserData->maxTimePresent = false;     
04624         parserData->requestedStartTimePresent = false;  
04625         parserData->dependenciesPresent = false;        
04626         parserData->requiredDirectoriesPresent = false; 
04627         parserData->requiredFilesPresent = false;       
04628         parserData->directoriesToMakePresent = false;   
04629         parserData->filesToMakePresent = false; 
04630         parserData->inputDirectoriesToMovePresent = false;      
04631         parserData->inputFilesToMovePresent = false;    
04632         parserData->outputDirectoriesToMovePresent = false;     
04633         parserData->outputFilesToMovePresent = false;   
04634         parserData->filesToDeletePresent = false;       
04635         parserData->directoriesToDeletePresent = false; 
04636         parserData->processesToKillPresent = false;     
04637         parserData->otherJobOptionsPresent = false;      
04638         osoption->job = new JobOption();
04639  }
04640     break;
04641 
04642   case 325:
04643 
04644     {   
04645         if (osoption->setMaxTime(parserData->maxTimeValue, parserData->unitAttribute) == false)       
04646                         osolerror(NULL, NULL, parserData, osglData, "max time request could not be honored");
04647 }
04648     break;
04649 
04650   case 326:
04651 
04652     {   
04653         if (parserData->maxTimePresent)
04654                 osolerror( NULL, osoption, parserData, osglData, "only one <maxTime> element allowed");
04655         parserData->maxTimePresent = true;
04656         parserData->unitAttributePresent = false;       
04657         parserData->unitAttribute = "second"; 
04658         parserData->maxTimeValue = OSDBL_MAX;
04659 }
04660     break;
04661 
04662   case 335:
04663 
04664     {
04665         parserData->maxTimeValue = parserData->tempVal;
04666 }
04667     break;
04668 
04669   case 337:
04670 
04671     {   if (parserData->requestedStartTimePresent)
04672                         osolerror(NULL, NULL, parserData, osglData, "only one requestedStartTime element allowed");
04673                 parserData->requestedStartTimePresent = true;
04674         }
04675     break;
04676 
04677   case 343:
04678 
04679     {
04680                 if (osoption->setRequestedStartTime((yyvsp[(1) - (1)].sval)) == false)
04681                         osolerror(NULL, NULL, parserData, osglData, "setRequestedStartTime failed");    
04682                 free((yyvsp[(1) - (1)].sval)); 
04683                 parserData->errorText = NULL;
04684                 }
04685     break;
04686 
04687   case 344:
04688 
04689     {
04690         if (osoption->setJobDependencies(parserData->numberOf, parserData->jobDependencies) == false)
04691                 osolerror (NULL, osoption, parserData, osglData, "set <job> <dependencies> failed");
04692         delete[] parserData->jobDependencies;
04693         parserData->jobDependencies = NULL;
04694 }
04695     break;
04696 
04697   case 345:
04698 
04699     {
04700         if (parserData->dependenciesPresent)
04701                 osolerror( NULL, osoption, parserData, osglData, "only one <dependencies> element allowed");
04702         parserData->dependenciesPresent = true;
04703 }
04704     break;
04705 
04706   case 351:
04707 
04708     {
04709         if (parserData->kounter > parserData->numberOf)
04710                 osolerror (NULL, osoption, parserData, osglData, "too few job IDs in <dependencies> element");
04711 }
04712     break;
04713 
04714   case 354:
04715 
04716     {
04717         if (parserData->kounter >= parserData->numberOf)
04718                 osolerror (NULL, osoption, parserData, osglData, "too many job IDs in <dependencies> element");
04719         parserData->jobDependencies[parserData->kounter] = (yyvsp[(3) - (4)].sval);
04720         free((yyvsp[(3) - (4)].sval)); 
04721         parserData->kounter++;
04722 }
04723     break;
04724 
04725   case 355:
04726 
04727     {
04728         if (osoption->setRequiredDirectories(parserData->numberOf,parserData->paths) == false)
04729                 osolerror (NULL, osoption, parserData, osglData, "set <requiredDirectories> failed");
04730         delete[] parserData->paths;
04731         parserData->paths = NULL;
04732 }
04733     break;
04734 
04735   case 356:
04736 
04737     {   if (parserData->requiredDirectoriesPresent)
04738                 osolerror( NULL, osoption, parserData, osglData, "only one <requiredDirectories> element allowed");
04739         parserData->requiredDirectoriesPresent = true;
04740 }
04741     break;
04742 
04743   case 362:
04744 
04745     {
04746         if (parserData->kounter > parserData->numberOf)
04747                 osolerror (NULL, osoption, parserData, osglData, "too few paths in <requiredDirectories> element");
04748 }
04749     break;
04750 
04751   case 365:
04752 
04753     {
04754         if (parserData->kounter >= parserData->numberOf)
04755                 osolerror (NULL, osoption, parserData, osglData, "too many paths in <requiredDirectories> element");
04756         parserData->paths[parserData->kounter] = (yyvsp[(3) - (4)].sval);
04757         free((yyvsp[(3) - (4)].sval)); 
04758         parserData->kounter++;
04759 }
04760     break;
04761 
04762   case 366:
04763 
04764     {
04765         if (osoption->setRequiredFiles(parserData->numberOf, parserData->paths) == false)
04766                 osolerror (NULL, osoption, parserData, osglData, "set <requiredFiles> failed");
04767         delete[] parserData->paths;
04768         parserData->paths = NULL;
04769 }
04770     break;
04771 
04772   case 367:
04773 
04774     {   if (parserData->requiredFilesPresent)
04775                 osolerror( NULL, osoption, parserData, osglData, "only one <requiredFiles> element allowed");
04776         parserData->requiredFilesPresent = true;
04777 }
04778     break;
04779 
04780   case 373:
04781 
04782     {
04783         if (parserData->kounter > parserData->numberOf)
04784                 osolerror (NULL, osoption, parserData, osglData, "too few paths in <requiredFiles> element");
04785 }
04786     break;
04787 
04788   case 376:
04789 
04790     {
04791         if (parserData->kounter >= parserData->numberOf)
04792                 osolerror (NULL, osoption, parserData, osglData, "too many paths in <requiredFiles> element");
04793         parserData->paths[parserData->kounter] = (yyvsp[(3) - (4)].sval);
04794         free((yyvsp[(3) - (4)].sval));
04795         parserData->kounter++;
04796 }
04797     break;
04798 
04799   case 377:
04800 
04801     {
04802         if (osoption->setDirectoriesToMake(parserData->numberOf, parserData->paths) == false)
04803                 osolerror (NULL, osoption, parserData, osglData, "set <directoriesToMake> failed");
04804         delete[] parserData->paths;
04805         parserData->paths = NULL;
04806 }
04807     break;
04808 
04809   case 378:
04810 
04811     {   if (parserData->directoriesToMakePresent)
04812                 osolerror( NULL, osoption, parserData, osglData, "only one <directoriesToMake> element allowed");
04813         parserData->directoriesToMakePresent = true;
04814 }
04815     break;
04816 
04817   case 384:
04818 
04819     {
04820         if (parserData->kounter > parserData->numberOf)
04821                 osolerror (NULL, osoption, parserData, osglData, "too few paths in <directoriesToMake> element");
04822 }
04823     break;
04824 
04825   case 387:
04826 
04827     {
04828         if (parserData->kounter >= parserData->numberOf)
04829                 osolerror (NULL, osoption, parserData, osglData, "too many paths in <directoriesToMake> element");
04830         parserData->paths[parserData->kounter] = (yyvsp[(3) - (4)].sval);
04831         free((yyvsp[(3) - (4)].sval)); 
04832         parserData->kounter++;
04833 }
04834     break;
04835 
04836   case 388:
04837 
04838     {
04839         if (osoption->setFilesToMake(parserData->numberOf, parserData->paths) == false)
04840                 osolerror (NULL, osoption, parserData, osglData, "set <filesToMake> failed");
04841         delete[] parserData->paths;
04842         parserData->paths = NULL;
04843 }
04844     break;
04845 
04846   case 389:
04847 
04848     {   if (parserData->filesToMakePresent)
04849                 osolerror( NULL, osoption, parserData, osglData, "only one <filesToMake> element allowed");
04850         parserData->filesToMakePresent = true;
04851 }
04852     break;
04853 
04854   case 395:
04855 
04856     {
04857         if (parserData->kounter > parserData->numberOf)
04858                 osolerror (NULL, osoption, parserData, osglData, "too few paths in <filesToMake> element");
04859 }
04860     break;
04861 
04862   case 398:
04863 
04864     {
04865         if (parserData->kounter >= parserData->numberOf)
04866                 osolerror (NULL, osoption, parserData, osglData, "too many paths in <filesToMake> element");
04867         parserData->paths[parserData->kounter] = (yyvsp[(3) - (4)].sval);
04868         free((yyvsp[(3) - (4)].sval)); 
04869         parserData->kounter++;
04870 }
04871     break;
04872 
04873   case 399:
04874 
04875     {
04876         if (osoption->setPathPairs(ENUM_PATHPAIR_input_dir, parserData->fromPaths, 
04877                         parserData->toPaths, parserData->makeCopy, parserData->numberOfPathPairs) == false)
04878                 osolerror (NULL, osoption, parserData, osglData, "set <inputDirectoriesToMove> failed");
04879         delete[] parserData->fromPaths;
04880         delete[] parserData->toPaths;
04881         delete[] parserData->makeCopy;
04882         parserData->fromPaths = NULL;
04883         parserData->toPaths   = NULL;
04884         parserData->makeCopy  = NULL;
04885 }
04886     break;
04887 
04888   case 400:
04889 
04890     {   if (parserData->inputDirectoriesToMovePresent)
04891                 osolerror( NULL, osoption, parserData, osglData, "only one <inputDirectoriesToMove> element allowed");
04892                 parserData->inputDirectoriesToMovePresent = true;
04893 }
04894     break;
04895 
04896   case 406:
04897 
04898     {
04899         if (parserData->kounter > parserData->numberOfPathPairs)
04900                 osolerror (NULL, osoption, parserData, osglData, "too few path pairs in <inputDirectoriesToMove> element");
04901 }
04902     break;
04903 
04904   case 410:
04905 
04906     {
04907         if (osoption->setPathPairs(ENUM_PATHPAIR_input_file, parserData->fromPaths, 
04908                         parserData->toPaths, parserData->makeCopy, parserData->numberOfPathPairs) == false)
04909                 osolerror (NULL, osoption, parserData, osglData, "set <inputFilesToMove> failed");
04910         delete[] parserData->fromPaths;
04911         delete[] parserData->toPaths;
04912         delete[] parserData->makeCopy;
04913         parserData->fromPaths = NULL;
04914         parserData->toPaths   = NULL;
04915         parserData->makeCopy  = NULL;
04916 }
04917     break;
04918 
04919   case 411:
04920 
04921     {   if (parserData->inputFilesToMovePresent)
04922                 osolerror( NULL, osoption, parserData, osglData, "only one <inputFilesToMove> element allowed");
04923                 parserData->inputFilesToMovePresent = true;
04924 }
04925     break;
04926 
04927   case 417:
04928 
04929     {
04930         if (parserData->kounter > parserData->numberOfPathPairs)
04931                 osolerror (NULL, osoption, parserData, osglData, "too few path pairs in <inputFilesToMove> element");
04932 }
04933     break;
04934 
04935   case 421:
04936 
04937     {
04938         if (osoption->setPathPairs(ENUM_PATHPAIR_output_file, parserData->fromPaths, 
04939                         parserData->toPaths, parserData->makeCopy, parserData->numberOfPathPairs) == false)
04940                 osolerror (NULL, osoption, parserData, osglData, "set <inputDirectoriesToMake> failed");
04941         delete[] parserData->fromPaths;
04942         delete[] parserData->toPaths;
04943         delete[] parserData->makeCopy;
04944         parserData->fromPaths = NULL;
04945         parserData->toPaths   = NULL;
04946         parserData->makeCopy  = NULL;
04947 }
04948     break;
04949 
04950   case 422:
04951 
04952     {   if (parserData->outputFilesToMovePresent)
04953                 osolerror( NULL, osoption, parserData, osglData, "only one <outputFilesToMove> element allowed");
04954                 parserData->outputFilesToMovePresent = true;
04955 }
04956     break;
04957 
04958   case 428:
04959 
04960     {
04961         if (parserData->kounter > parserData->numberOfPathPairs)
04962                 osolerror (NULL, osoption, parserData, osglData, "too few path pairs in <outputFilesToMake> element");
04963 }
04964     break;
04965 
04966   case 432:
04967 
04968     {
04969         if (osoption->setPathPairs(ENUM_PATHPAIR_output_dir, parserData->fromPaths, 
04970                         parserData->toPaths, parserData->makeCopy, parserData->numberOfPathPairs) == false)
04971                 osolerror (NULL, osoption, parserData, osglData, "set <inputDirectoriesToMake> failed");
04972         delete[] parserData->fromPaths;
04973         delete[] parserData->toPaths;
04974         delete[] parserData->makeCopy;
04975         parserData->fromPaths = NULL;
04976         parserData->toPaths   = NULL;
04977         parserData->makeCopy  = NULL;
04978 }
04979     break;
04980 
04981   case 433:
04982 
04983     {   if (parserData->outputDirectoriesToMovePresent)
04984                 osolerror( NULL, osoption, parserData, osglData, "only one <outputDirectoriesToMove> element allowed");
04985                 parserData->outputDirectoriesToMovePresent = true;
04986 }
04987     break;
04988 
04989   case 439:
04990 
04991     {
04992         if (parserData->kounter > parserData->numberOfPathPairs)
04993                 osolerror (NULL, osoption, parserData, osglData, "too few path pairs in <outputDirectoriesToMake> element");
04994 }
04995     break;
04996 
04997   case 443:
04998 
04999     {
05000         if (osoption->setFilesToDelete(parserData->numberOf, parserData->paths) == false)
05001                 osolerror (NULL, osoption, parserData, osglData, "set <filesToDelete> failed");
05002         delete[] parserData->paths;
05003         parserData->paths = NULL;
05004 }
05005     break;
05006 
05007   case 444:
05008 
05009     {   if (parserData->filesToDeletePresent)
05010                 osolerror( NULL, osoption, parserData, osglData, "only one <filesToDelete> element allowed");
05011         parserData->filesToDeletePresent = true;
05012 }
05013     break;
05014 
05015   case 450:
05016 
05017     {
05018         if (parserData->kounter > parserData->numberOf)
05019                 osolerror (NULL, osoption, parserData, osglData, "too few paths in <filesToDelete> element");
05020 }
05021     break;
05022 
05023   case 453:
05024 
05025     {
05026         if (parserData->kounter >= parserData->numberOf)
05027                 osolerror (NULL, osoption, parserData, osglData, "too many paths in <filesToDelete> element");
05028         parserData->paths[parserData->kounter] = (yyvsp[(3) - (4)].sval);
05029         free((yyvsp[(3) - (4)].sval)); 
05030         parserData->kounter++;
05031 }
05032     break;
05033 
05034   case 454:
05035 
05036     {
05037         if (osoption->setDirectoriesToDelete(parserData->numberOf, parserData->paths) == false)
05038                 osolerror (NULL, osoption, parserData, osglData, "set <directoriesToDelete> failed");
05039         delete[] parserData->paths;
05040         parserData->paths = NULL;
05041 }
05042     break;
05043 
05044   case 455:
05045 
05046     {   if (parserData->directoriesToDeletePresent)
05047                 osolerror( NULL, osoption, parserData, osglData, "only one <directoriesToDelete> element allowed");
05048         parserData->directoriesToDeletePresent = true;
05049 }
05050     break;
05051 
05052   case 461:
05053 
05054     {
05055         if (parserData->kounter > parserData->numberOf)
05056                 osolerror (NULL, osoption, parserData, osglData, "too few paths in <directoriesToDelete> element");
05057 }
05058     break;
05059 
05060   case 464:
05061 
05062     {
05063         if (parserData->kounter >= parserData->numberOf)
05064                 osolerror (NULL, osoption, parserData, osglData, "too many paths in <directoriesToDelete> element");
05065         parserData->paths[parserData->kounter] = (yyvsp[(3) - (4)].sval);
05066         free((yyvsp[(3) - (4)].sval)); 
05067         parserData->kounter++;
05068 }
05069     break;
05070 
05071   case 465:
05072 
05073     {
05074         if (osoption->setProcessesToKill(parserData->numberOf, parserData->processesToKill) == false)
05075                 osolerror (NULL, osoption, parserData, osglData, "set <processesToKill> failed");
05076         delete[] parserData->processesToKill;
05077         parserData->processesToKill = NULL;
05078 }
05079     break;
05080 
05081   case 466:
05082 
05083     {
05084         if (parserData->processesToKillPresent)
05085                 osolerror( NULL, osoption, parserData, osglData, "only one <processesToKill> element allowed");
05086         parserData->processesToKillPresent = true;
05087 }
05088     break;
05089 
05090   case 472:
05091 
05092     {
05093         if (parserData->kounter > parserData->numberOf)
05094                 osolerror (NULL, osoption, parserData, osglData, "too few process IDs in <processesToKill> element");
05095 }
05096     break;
05097 
05098   case 475:
05099 
05100     {
05101         if (parserData->kounter >= parserData->numberOf)
05102                 osolerror (NULL, osoption, parserData, osglData, "too many process IDs in <processesToKill> element");
05103         parserData->processesToKill[parserData->kounter] = (yyvsp[(3) - (4)].sval);
05104         free((yyvsp[(3) - (4)].sval)); 
05105         parserData->kounter++;
05106 }
05107     break;
05108 
05109   case 477:
05110 
05111     {   if (parserData->otherJobOptionsPresent)
05112                 osolerror(NULL, NULL, parserData, osglData, "only one <job> <other> element allowed");
05113         parserData->otherJobOptionsPresent = true;
05114 }
05115     break;
05116 
05117   case 478:
05118 
05119     {
05120         if (parserData->tempInt < 0) osolerror(NULL, NULL, parserData, osglData, "number of other job options cannot be negative");
05121         parserData->numberOf = parserData->tempInt;
05122         parserData->kounter = 0;
05123 }
05124     break;
05125 
05126   case 479:
05127 
05128     {   if (parserData->numberOf > 0)
05129                         osolerror(NULL, NULL, parserData, osglData, "expected at least one <other> element");
05130         }
05131     break;
05132 
05133   case 480:
05134 
05135     {   if (parserData->kounter < parserData->numberOf - 1)
05136                         osolerror(NULL, NULL, parserData, osglData, "fewer <other> elements than specified");
05137         }
05138     break;
05139 
05140   case 487:
05141 
05142     {
05143         parserData->kounter++;
05144         if (osoption->setAnOtherJobOption(parserData->nameAttribute, parserData->valueAttribute, parserData->descriptionAttribute) == false)
05145                 osolerror(NULL, NULL, parserData, osglData, "setOtherJobOption failed");
05146 }
05147     break;
05148 
05149   case 488:
05150 
05151     {   if (parserData->kounter >= parserData->numberOf)
05152                 osolerror(NULL, NULL, parserData, osglData, "more <other> elements than specified");
05153         parserData->nameAttributePresent = false;
05154         parserData->valueAttributePresent = false;
05155         parserData->descriptionAttributePresent = false;
05156         parserData->nameAttribute = "";
05157         parserData->valueAttribute = "";
05158         parserData->descriptionAttribute = "";
05159 }
05160     break;
05161 
05162   case 489:
05163 
05164     {   if (!parserData->nameAttributePresent)
05165                 osolerror (NULL, NULL, parserData, osglData, "<other> must have name attribute");
05166 }
05167     break;
05168 
05169   case 492:
05170 
05171     {
05172                 if (parserData->nameAttribute.length() == 0)
05173                         osolerror(NULL, NULL, parserData, osglData, "otherOption name cannot be empty");
05174         }
05175     break;
05176 
05177   case 499:
05178 
05179     {
05180         osoption->optimization = new OptimizationOption();
05181         parserData->numberOfVariablesPresent = false;
05182         parserData->numberOfObjectivesPresent = false;
05183         parserData->numberOfConstraintsPresent = false;
05184 }
05185     break;
05186 
05187   case 503:
05188 
05189     {   
05190                 parserData->numberOfVariables = parserData->tempInt; 
05191                 if (osoption->setNumberOfVariables(parserData->tempInt) == false)
05192                         osolerror(NULL, NULL, parserData, osglData, "setNumberOfVariables failed");
05193         }
05194     break;
05195 
05196   case 504:
05197 
05198     {
05199                 parserData->numberOfConstraints = parserData->tempInt; 
05200                 if (osoption->setNumberOfConstraints(parserData->tempInt) == false)
05201                         osolerror(NULL, NULL, parserData, osglData, "setNumberOfConstraints failed");
05202         }
05203     break;
05204 
05205   case 505:
05206 
05207     {   
05208                 parserData->numberOfObjectives = parserData->tempInt; 
05209                 if (osoption->setNumberOfObjectives(parserData->tempInt) == false)
05210                         osolerror(NULL, NULL, parserData, osglData, "setNumberOfObjectives failed");
05211         }
05212     break;
05213 
05214   case 513:
05215 
05216     {
05217         parserData->numberOfOtherVariableOptions = 0;
05218         osoption->optimization->variables = new VariableOption();
05219 }
05220     break;
05221 
05222   case 514:
05223 
05224     {   
05225         if (osoption->setNumberOfOtherVariableOptions(parserData->numberOfOtherVariableOptions) == false)
05226                 osolerror(NULL, NULL, parserData, osglData, "setNumberOfOtherVariableOptions failed");
05227         parserData->iOther = 0;
05228 }
05229     break;
05230 
05231   case 516:
05232 
05233     {   
05234         parserData->numberOfOtherVariableOptions = parserData->tempInt;
05235 }
05236     break;
05237 
05238   case 523:
05239 
05240     {
05241         if (osoption->setInitVarValues(parserData->numberOfVar, parserData->idxArray, parserData->valArray, parserData->namArray) == false)
05242                 osolerror (NULL, osoption, parserData, osglData, "set <initialVariableValues> failed");
05243         delete[] parserData->idxArray;
05244         delete[] parserData->namArray;
05245         delete[] parserData->valArray;
05246         parserData->idxArray = NULL;
05247         parserData->namArray = NULL;
05248         parserData->valArray = NULL;
05249 }
05250     break;
05251 
05252   case 524:
05253 
05254     {
05255         parserData->numberOfVarAttributePresent = false;
05256 }
05257     break;
05258 
05259   case 525:
05260 
05261     {
05262         parserData->kounter = 0;
05263         parserData->idxArray = new         int[parserData->numberOfVar];
05264         parserData->namArray = new std::string[parserData->numberOfVar];
05265         parserData->valArray = new      double[parserData->numberOfVar];
05266         for (int i=0; i < parserData->numberOfVar; i++) parserData->namArray[i] = "";
05267         for (int i=0; i < parserData->numberOfVar; i++) parserData->valArray[i] = OSNaN();
05268 }
05269     break;
05270 
05271   case 526:
05272 
05273     {
05274                 if (parserData->numberOfVar > 0)
05275                         osolerror(NULL, NULL, parserData, osglData, "<initialVariableValues>: expected at least one <var> element");
05276         }
05277     break;
05278 
05279   case 527:
05280 
05281     {
05282                 if (parserData->kounter > parserData->numberOfVar)
05283                         osolerror (NULL, osoption, parserData, osglData, "<initialVariableValues>: fewer <var> elements than specified");
05284         }
05285     break;
05286 
05287   case 534:
05288 
05289     {
05290         parserData->kounter++;
05291 }
05292     break;
05293 
05294   case 535:
05295 
05296     {   
05297         if (parserData->kounter >= parserData->numberOfVar)
05298                 osolerror(NULL, NULL, parserData, osglData, "more <var> elements than specified");
05299         parserData->idxAttributePresent = false;
05300         parserData->nameAttributePresent = false;
05301         parserData->valueAttributePresent = false;
05302 }
05303     break;
05304 
05305   case 536:
05306 
05307     {
05308         if (parserData->idxAttributePresent == false)
05309                 osolerror(NULL, NULL, parserData, osglData, "<var> element must have idx attribute");
05310 }
05311     break;
05312 
05313   case 539:
05314 
05315     {
05316                 if (parserData->idxAttribute < 0)
05317                         osolerror (NULL, osoption, parserData, osglData, "variable index must be nonnegative");
05318                 if (osoption->optimization->numberOfVariables >= 0)
05319                 {
05320                         if (parserData->idxAttribute >= osoption->optimization->numberOfVariables)
05321                                 osolerror (NULL, osoption, parserData, osglData, "variable index exceeds upper limit");
05322                 };
05323                 parserData->idxArray[parserData->kounter] = parserData->idxAttribute;
05324         }
05325     break;
05326 
05327   case 540:
05328 
05329     {
05330                 parserData->namArray[parserData->kounter] = parserData->nameAttribute;
05331         }
05332     break;
05333 
05334   case 541:
05335 
05336     {
05337                 if (parserData->valueAttribute == "")
05338                         osolerror (NULL, osoption, parserData, osglData, "expected an integer or floating point value");
05339                 parserData->valArray[parserData->kounter] = os_strtod((parserData->valueAttribute).c_str(), NULL);
05340         }
05341     break;
05342 
05343   case 545:
05344 
05345     {
05346         if (osoption->setInitVarValuesString(parserData->numberOfVar, parserData->idxArray, parserData->valueString, parserData->namArray) == false)
05347                 osolerror (NULL, osoption, parserData, osglData, "set <initialVariableValuesString> failed");
05348         delete[] parserData->idxArray;
05349         delete[] parserData->namArray;
05350         delete[] parserData->valArray;
05351         parserData->idxArray = NULL;
05352         parserData->namArray = NULL;
05353         parserData->valueString = NULL;
05354 }
05355     break;
05356 
05357   case 546:
05358 
05359     {
05360         parserData->numberOfVarAttributePresent = false;
05361 }
05362     break;
05363 
05364   case 547:
05365 
05366     {
05367         parserData->kounter = 0;
05368         parserData->idxArray    = new         int[parserData->numberOfVar];
05369         parserData->namArray    = new std::string[parserData->numberOfVar];
05370         parserData->valueString = new std::string[parserData->numberOfVar];
05371         for (int i=0; i < parserData->numberOfVar; i++) parserData->namArray[i] = "";
05372         for (int i=0; i < parserData->numberOfVar; i++) parserData->valueString[i] = "";
05373 }
05374     break;
05375 
05376   case 548:
05377 
05378     {
05379                 if (parserData->numberOfVar > 0)
05380                         osolerror(NULL, NULL, parserData, osglData, "expected at least one <var> element");
05381         }
05382     break;
05383 
05384   case 549:
05385 
05386     {
05387                 if (parserData->kounter != parserData->numberOfVar)
05388                         osolerror(NULL, NULL, parserData, osglData, "too few initial values in <initialVariableValuesString> element");
05389         }
05390     break;
05391 
05392   case 556:
05393 
05394     {
05395         parserData->kounter++;
05396 }
05397     break;
05398 
05399   case 557:
05400 
05401     {   
05402         if (parserData->kounter >= parserData->numberOfVar)
05403                 osolerror(NULL, NULL, parserData, osglData, "more <var> elements than specified");
05404         parserData->idxAttributePresent = false;
05405         parserData->nameAttributePresent = false;
05406         parserData->valueAttributePresent = false;
05407         parserData->valueAttribute = "48r 87e WY EUV e7 df"; //random string...
05408 }
05409     break;
05410 
05411   case 558:
05412 
05413     {
05414         if (parserData->idxAttributePresent == false)
05415                 osolerror(NULL, NULL, parserData, osglData, "<var> element must have idx attribute");
05416 }
05417     break;
05418 
05419   case 561:
05420 
05421     {
05422                 if (parserData->idxAttribute < 0)
05423                         osolerror (NULL, osoption, parserData, osglData, "variable index must be nonnegative");
05424                 if (osoption->optimization->numberOfVariables >= 0)
05425                 {
05426                         if (parserData->idxAttribute >= osoption->optimization->numberOfVariables)
05427                                 osolerror (NULL, osoption, parserData, osglData, "variable index exceeds upper limit");
05428                 };
05429                 parserData->idxArray[parserData->kounter] = parserData->idxAttribute;
05430         }
05431     break;
05432 
05433   case 562:
05434 
05435     {
05436                 parserData->namArray[parserData->kounter] = parserData->nameAttribute;
05437         }
05438     break;
05439 
05440   case 563:
05441 
05442     {
05443                 parserData->valueString[parserData->kounter] = parserData->valueAttribute;
05444         }
05445     break;
05446 
05447   case 568:
05448 
05449     {
05450         osoption->optimization->variables->initialBasisStatus = new BasisStatus();
05451 }
05452     break;
05453 
05454   case 575:
05455 
05456     {
05457         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_variables, ENUM_BASIS_STATUS_basic, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
05458                 osolerror(NULL, NULL, parserData, osglData, "set variables basic failed");      
05459         delete[] osglData->osglIntArray;
05460         osglData->osglIntArray = NULL;
05461 }
05462     break;
05463 
05464   case 576:
05465 
05466     {
05467         osglData->osglNumberOfEl = 0;
05468         osglData->osglNumberOfElPresent= false;
05469 }
05470     break;
05471 
05472   case 577:
05473 
05474     {
05475         osglData->osglCounter = 0; 
05476         osglData->osglNumberOfEl = parserData->numberOf;
05477         osglData->osglIntArray = new int[parserData->numberOf];
05478 }
05479     break;
05480 
05481   case 584:
05482 
05483     {
05484         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_variables, ENUM_BASIS_STATUS_atLower, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
05485                 osolerror(NULL, NULL, parserData, osglData, "set variables atLower failed");    
05486         delete[] osglData->osglIntArray;
05487         osglData->osglIntArray = NULL;
05488 }
05489     break;
05490 
05491   case 585:
05492 
05493     {
05494         osglData->osglNumberOfEl = 0;
05495         osglData->osglNumberOfElPresent= false;
05496 }
05497     break;
05498 
05499   case 586:
05500 
05501     {
05502         osglData->osglCounter = 0; 
05503         osglData->osglNumberOfEl = parserData->numberOf;
05504         osglData->osglIntArray = new int[parserData->numberOf];
05505 }
05506     break;
05507 
05508   case 593:
05509 
05510     {
05511         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_variables, ENUM_BASIS_STATUS_atUpper, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
05512                 osolerror(NULL, NULL, parserData, osglData, "set variables atUpper failed");    
05513         delete[] osglData->osglIntArray;
05514         osglData->osglIntArray = NULL;
05515 }
05516     break;
05517 
05518   case 594:
05519 
05520     {
05521         osglData->osglNumberOfEl = 0;
05522         osglData->osglNumberOfElPresent= false;
05523 }
05524     break;
05525 
05526   case 595:
05527 
05528     {
05529         osglData->osglCounter = 0; 
05530         osglData->osglNumberOfEl = parserData->numberOf;
05531         osglData->osglIntArray = new int[parserData->numberOf];
05532 }
05533     break;
05534 
05535   case 602:
05536 
05537     {
05538         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_variables, ENUM_BASIS_STATUS_isFree, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
05539                 osolerror(NULL, NULL, parserData, osglData, "set variables isFree failed");     
05540         delete[] osglData->osglIntArray;
05541         osglData->osglIntArray = NULL;
05542 }
05543     break;
05544 
05545   case 603:
05546 
05547     {
05548         osglData->osglNumberOfEl = 0;
05549         osglData->osglNumberOfElPresent= false;
05550 }
05551     break;
05552 
05553   case 604:
05554 
05555     {
05556         osglData->osglCounter = 0; 
05557         osglData->osglNumberOfEl = parserData->numberOf;
05558         osglData->osglIntArray = new int[parserData->numberOf];
05559 }
05560     break;
05561 
05562   case 611:
05563 
05564     {
05565         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_variables, ENUM_BASIS_STATUS_superbasic, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
05566                 osolerror(NULL, NULL, parserData, osglData, "set variables superbasic failed"); 
05567         delete[] osglData->osglIntArray;
05568         osglData->osglIntArray = NULL;
05569 }
05570     break;
05571 
05572   case 612:
05573 
05574     {
05575         osglData->osglNumberOfEl = 0;
05576         osglData->osglNumberOfElPresent= false;
05577 }
05578     break;
05579 
05580   case 613:
05581 
05582     {
05583         osglData->osglCounter = 0; 
05584         osglData->osglNumberOfEl = parserData->numberOf;
05585         osglData->osglIntArray = new int[parserData->numberOf];
05586 }
05587     break;
05588 
05589   case 620:
05590 
05591     {
05592         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_variables, ENUM_BASIS_STATUS_unknown, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
05593                 osolerror(NULL, NULL, parserData, osglData, "set variables unknown failed");    
05594         delete[] osglData->osglIntArray;
05595         osglData->osglIntArray = NULL;
05596 }
05597     break;
05598 
05599   case 621:
05600 
05601     {
05602         osglData->osglNumberOfEl = 0;
05603         osglData->osglNumberOfElPresent= false;
05604 }
05605     break;
05606 
05607   case 622:
05608 
05609     {
05610         osglData->osglCounter = 0; 
05611         osglData->osglNumberOfEl = parserData->numberOf;
05612         osglData->osglIntArray = new int[parserData->numberOf];
05613 }
05614     break;
05615 
05616   case 629:
05617 
05618     {
05619         if (osoption->setIntegerVariableBranchingWeights(parserData->numberOfVar, parserData->idxArray, parserData->valArray, parserData->namArray) == false)
05620                 osolerror (NULL, osoption, parserData, osglData, "set <initialVariableValues> failed");
05621         delete[] parserData->idxArray;
05622         delete[] parserData->namArray;
05623         delete[] parserData->valArray;
05624         parserData->idxArray = NULL;
05625         parserData->namArray = NULL;
05626         parserData->valArray = NULL;
05627 }
05628     break;
05629 
05630   case 630:
05631 
05632     {
05633         parserData->numberOfVarAttributePresent = false;
05634 }
05635     break;
05636 
05637   case 631:
05638 
05639     {
05640         parserData->kounter = 0;
05641         parserData->idxArray = new         int[parserData->numberOfVar];
05642         parserData->namArray = new std::string[parserData->numberOfVar];
05643         parserData->valArray = new      double[parserData->numberOfVar];
05644         for (int i=0; i < parserData->numberOfVar; i++) parserData->namArray[i] = "";
05645         for (int i=0; i < parserData->numberOfVar; i++) parserData->valArray[i] = OSNaN();
05646 }
05647     break;
05648 
05649   case 632:
05650 
05651     {
05652                 if (parserData->numberOfVar > 0)
05653                         osolerror(NULL, NULL, parserData, osglData, "expected at least one <var> element");
05654         }
05655     break;
05656 
05657   case 633:
05658 
05659     {
05660                 if (parserData->kounter != parserData->numberOfVar)
05661                         osolerror(NULL, NULL, parserData, osglData, "fewer <var> elements than specified");
05662         }
05663     break;
05664 
05665   case 640:
05666 
05667     {
05668         parserData->kounter++;
05669 }
05670     break;
05671 
05672   case 641:
05673 
05674     {   
05675         if (parserData->kounter >= parserData->numberOfVar)
05676                 osolerror(NULL, NULL, parserData, osglData, "more <var> elements than specified");
05677         parserData->idxAttributePresent = false;
05678         parserData->nameAttributePresent = false;
05679         parserData->nameAttribute = "";
05680         parserData->valueAttributePresent = false;
05681         parserData->valueAttribute = "1.0";
05682 }
05683     break;
05684 
05685   case 642:
05686 
05687     {
05688         if (parserData->idxAttributePresent == false)
05689                 osolerror(NULL, NULL, parserData, osglData, "<var> element must have idx attribute");
05690 //      parserData->idxArray[parserData->kounter] = parserData->idxAttribute;
05691 //      parserData->namArray[parserData->kounter] = parserData->nameAttribute;
05692 //      parserData->valArray[parserData->kounter] = os_strtod((parserData->valueAttribute).c_str(), NULL);
05693 }
05694     break;
05695 
05696   case 645:
05697 
05698     {
05699                 if (parserData->idxAttribute < 0)
05700                         osolerror (NULL, osoption, parserData, osglData, "variable index must be nonnegative");
05701                 if (osoption->optimization->numberOfVariables >= 0)
05702                 {
05703                         if (parserData->idxAttribute >= osoption->optimization->numberOfVariables)
05704                                 osolerror (NULL, osoption, parserData, osglData, "variable index exceeds upper limit");
05705                 };
05706                 parserData->idxArray[parserData->kounter] = parserData->idxAttribute;
05707         }
05708     break;
05709 
05710   case 646:
05711 
05712     {
05713                 parserData->namArray[parserData->kounter] = parserData->nameAttribute;
05714         }
05715     break;
05716 
05717   case 647:
05718 
05719     {
05720                 if (parserData->valueAttribute == "")
05721                         osolerror (NULL, osoption, parserData, osglData, "expected an integer or floating point value");
05722                 parserData->valArray[parserData->kounter] = os_strtod((parserData->valueAttribute).c_str(), NULL);
05723         }
05724     break;
05725 
05726   case 652:
05727 
05728     {
05729         parserData->sosIdxAttributePresent = false;     
05730         parserData->currentSOS = 0;
05731 }
05732     break;
05733 
05734   case 653:
05735 
05736     {
05737         if ((yyvsp[(3) - (4)].ival) < 0)
05738                 osolerror (NULL, osoption, parserData, osglData, "number of <sos> elements must be nonnegative");
05739         parserData->numberOfSOS = (yyvsp[(3) - (4)].ival);
05740 }
05741     break;
05742 
05743   case 654:
05744 
05745     {   if (parserData->numberOfSOS > 0)
05746                         osolerror(NULL, NULL, parserData, osglData, "expected at least one <sos> element");
05747         }
05748     break;
05749 
05750   case 655:
05751 
05752     {   if (parserData->currentSOS != parserData->numberOfSOS)
05753                         osolerror(NULL, NULL, parserData, osglData, "fewer <sos> elements than specified");
05754         }
05755     break;
05756 
05757   case 661:
05758 
05759     {
05760         if (!osoption->setAnotherSOSVariableBranchingWeight(parserData->sosIdx, 
05761                                 parserData->numberOfVar, parserData->groupWeight,
05762                                 parserData->idxArray,    parserData->valArray, parserData->namArray) )
05763                 osolerror (NULL, osoption, parserData, osglData, "error processing SOS branching weights");
05764         delete[] parserData->idxArray;
05765         delete[] parserData->namArray;
05766         delete[] parserData->valArray;
05767         parserData->idxArray = NULL;
05768         parserData->namArray = NULL;
05769         parserData->valArray = NULL;
05770         parserData->currentSOS++;
05771 }
05772     break;
05773 
05774   case 662:
05775 
05776     {   if (parserData->currentSOS >= parserData->numberOfSOS)
05777                 osolerror(NULL, osoption, parserData, osglData, "too many SOS branching weights");
05778         parserData->sosIdxAttributePresent = false;
05779         parserData->groupWeightAttributePresent = false;
05780         parserData->numberOfVarAttributePresent = false;
05781         parserData->groupWeight = 1.0;
05782         parserData->numberOfSOSVar = 0;
05783 }
05784     break;
05785 
05786   case 663:
05787 
05788     {
05789         if (!parserData->sosIdxAttributePresent)
05790                 osolerror (NULL, osoption, parserData, osglData, "SOS index required");
05791         if (!parserData->numberOfVarAttributePresent)
05792                 osolerror (NULL, osoption, parserData, osglData, "numberOfVar required");
05793 }
05794     break;
05795 
05796   case 667:
05797 
05798     {
05799                 parserData->kounter = 0;
05800                 parserData->idxArray = new         int[parserData->numberOfVar];
05801                 parserData->namArray = new std::string[parserData->numberOfVar];
05802                 parserData->valArray = new      double[parserData->numberOfVar];
05803                 for (int i=0; i < parserData->numberOfVar; i++) parserData->valArray[i] = OSNaN();
05804                 parserData->numberOfVarAttributePresent = true;
05805         }
05806     break;
05807 
05808   case 676:
05809 
05810     {    
05811                 parserData->iOther++;
05812         }
05813     break;
05814 
05815   case 677:
05816 
05817     {
05818         if (parserData->iOther >= parserData->numberOfOtherVariableOptions)
05819                 osolerror(NULL, NULL, parserData, osglData, "more <otherVariableOptions> than specified");
05820         parserData->numberOfVarAttributePresent = false;
05821         parserData->numberOfVar = 0;
05822         parserData->numberOfEnumerationsAttributePresent = false;       
05823         parserData->numberOfEnumerations = 0;
05824         parserData->nameAttributePresent = false;       
05825         parserData->valueAttributePresent = false;      
05826         parserData->valueAttribute = "";
05827         parserData->solverAttributePresent = false;     
05828         parserData->solverAttribute = "";
05829         parserData->categoryAttributePresent = false;   
05830         parserData->categoryAttribute = "";
05831         parserData->typeAttributePresent = false;       
05832         parserData->typeAttribute = "";
05833         parserData->descriptionAttributePresent = false;        
05834         parserData->descriptionAttribute = "";  
05835         parserData->otherOptionType = ENUM_PROBLEM_COMPONENT_variables;
05836 }
05837     break;
05838 
05839   case 678:
05840 
05841     {
05842                 if (!parserData->nameAttributePresent) 
05843                         osolerror(NULL, NULL, parserData, osglData, "<other> element requires name attribute"); 
05844                 if (!osoption->setOtherVariableOptionAttributes(
05845                                         parserData->iOther,
05846                                         parserData->numberOfVar,
05847                                         parserData->numberOfEnumerations,
05848                                         parserData->nameAttribute,
05849                                         parserData->valueAttribute,
05850                                         parserData->solverAttribute,
05851                                         parserData->categoryAttribute,
05852                                         parserData->typeAttribute,
05853                                         parserData->descriptionAttribute) )
05854                         osolerror(NULL, NULL, parserData, osglData, "<other> element could not be initialed"); 
05855         }
05856     break;
05857 
05858   case 681:
05859 
05860     {
05861                 parserData->kounter = 0;
05862         }
05863     break;
05864 
05865   case 682:
05866 
05867     {
05868                 parserData->kounter = 0;
05869         }
05870     break;
05871 
05872   case 698:
05873 
05874     {   
05875         if (!osoption->setOtherVariableOptionVar(
05876                                 parserData->iOther, 
05877                                 parserData->kounter,
05878                                 parserData->idxAttribute, 
05879                                 parserData->nameAttribute,
05880                                 parserData->valueAttribute,
05881                                 parserData->lbValueAttribute, 
05882                                 parserData->ubValueAttribute) )
05883                 osolerror(NULL, NULL, parserData, osglData, "set other variable option <var> element failed");
05884         parserData->kounter++;
05885 }
05886     break;
05887 
05888   case 699:
05889 
05890     {
05891         if (parserData->kounter >= parserData->numberOfVar)
05892                 osolerror(NULL, NULL, parserData, osglData, "more <var> elements than specified");
05893         parserData->idxAttributePresent = false;        
05894         parserData->nameAttributePresent = false;       
05895         parserData->nameAttribute = "";
05896         parserData->valueAttributePresent = false;      
05897         parserData->valueAttribute = "";
05898         parserData->lbValueAttributePresent = false;    
05899         parserData->lbValueAttribute = "";
05900         parserData->ubValueAttributePresent = false;    
05901         parserData->ubValueAttribute = "";
05902 }
05903     break;
05904 
05905   case 703:
05906 
05907     {
05908                 if (parserData->idxAttribute < 0)
05909                         osolerror (NULL, osoption, parserData, osglData, "variable index must be nonnegative");
05910                 if (osoption->optimization->numberOfVariables >= 0)
05911                 {
05912                         if (parserData->idxAttribute >= osoption->optimization->numberOfVariables)
05913                                 osolerror (NULL, osoption, parserData, osglData, "variable index exceeds upper limit");
05914                 };
05915         }
05916     break;
05917 
05918   case 713:
05919 
05920     {
05921         parserData->numberOfOtherObjectiveOptions = 0; 
05922         osoption->optimization->objectives = new ObjectiveOption();
05923 }
05924     break;
05925 
05926   case 714:
05927 
05928     {   
05929         if (osoption->setNumberOfOtherObjectiveOptions(parserData->numberOfOtherObjectiveOptions) == false)
05930                 osolerror(NULL, NULL, parserData, osglData, "setNumberOfOtherVariableOptions failed");
05931         parserData->iOther = 0;
05932 }
05933     break;
05934 
05935   case 716:
05936 
05937     {   
05938         parserData->numberOfOtherObjectiveOptions = parserData->tempInt;
05939 }
05940     break;
05941 
05942   case 723:
05943 
05944     {
05945         if (osoption->setInitObjValues(parserData->numberOfObj, parserData->idxArray, parserData->valArray, parserData->namArray) == false)
05946                 osolerror (NULL, osoption, parserData, osglData, "set <initialObjectiveValues> failed");
05947         delete[] parserData->idxArray;
05948         delete[] parserData->namArray;
05949         delete[] parserData->valArray;
05950         parserData->idxArray = NULL;
05951         parserData->namArray = NULL;
05952         parserData->valArray = NULL;
05953 }
05954     break;
05955 
05956   case 724:
05957 
05958     {
05959         parserData->numberOfObjAttributePresent = false;
05960 }
05961     break;
05962 
05963   case 725:
05964 
05965     {
05966         parserData->kounter = 0;
05967         parserData->idxArray = new         int[parserData->numberOfObj];
05968         parserData->namArray = new std::string[parserData->numberOfObj];
05969         parserData->valArray = new      double[parserData->numberOfObj];
05970         for (int i=0; i < parserData->numberOfObj; i++) parserData->idxArray[i] = -1;
05971         for (int i=0; i < parserData->numberOfObj; i++) parserData->namArray[i] = "";
05972         for (int i=0; i < parserData->numberOfObj; i++) parserData->valArray[i] = OSNaN();
05973 }
05974     break;
05975 
05976   case 726:
05977 
05978     {   
05979                 if (parserData->numberOfObj > 0)
05980                         osolerror(NULL, NULL, parserData, osglData, "<initialObjectiveValues>: expected at least one <obj> element");
05981         }
05982     break;
05983 
05984   case 727:
05985 
05986     {
05987                 if (parserData->kounter != parserData->numberOfObj)
05988                         osolerror(NULL, NULL, parserData, osglData, "<initialObjectiveValues>: fewer <obj> elements than specified");
05989         }
05990     break;
05991 
05992   case 734:
05993 
05994     {
05995         parserData->kounter++;
05996 }
05997     break;
05998 
05999   case 735:
06000 
06001     {   
06002         if (parserData->kounter >= parserData->numberOfObj)
06003                 osolerror(NULL, NULL, parserData, osglData, "more <obj> elements than specified");
06004         parserData->idxAttributePresent = false;
06005         parserData->nameAttributePresent = false;
06006         parserData->valueAttributePresent = false;
06007         parserData->idxAttribute = -1;
06008 }
06009     break;
06010 
06011   case 739:
06012 
06013     {
06014                 if (parserData->idxAttribute >= 0)
06015                         osolerror (NULL, osoption, parserData, osglData, "objective index must be negative");
06016                 if (osoption->optimization->numberOfObjectives >= 0)
06017                 {
06018                         if (parserData->idxAttribute < -osoption->optimization->numberOfObjectives)
06019                                 osolerror (NULL, osoption, parserData, osglData, "objective index exceeds limit");
06020                 };
06021                 parserData->idxArray[parserData->kounter] = parserData->idxAttribute;
06022         }
06023     break;
06024 
06025   case 740:
06026 
06027     {
06028                 parserData->namArray[parserData->kounter] = parserData->nameAttribute;
06029         }
06030     break;
06031 
06032   case 741:
06033 
06034     {
06035                 if (parserData->valueAttribute == "")
06036                         osolerror (NULL, osoption, parserData, osglData, "expected an integer or floating point value");
06037                 parserData->valArray[parserData->kounter] = os_strtod((parserData->valueAttribute).c_str(), NULL);
06038         }
06039     break;
06040 
06041   case 745:
06042 
06043     {
06044         if (osoption->setInitObjBounds(parserData->numberOfObj, parserData->idxArray, parserData->lbValArray, parserData->ubValArray, parserData->namArray) == false)
06045                 osolerror (NULL, osoption, parserData, osglData, "set <initialObjectiveBounds> failed");
06046         delete[] parserData->idxArray;
06047         delete[] parserData->namArray;
06048         delete[] parserData->lbValArray;
06049         delete[] parserData->ubValArray;
06050         parserData->idxArray = NULL;
06051         parserData->namArray = NULL;
06052         parserData->lbValArray = NULL;
06053         parserData->ubValArray = NULL;
06054 }
06055     break;
06056 
06057   case 746:
06058 
06059     {
06060         parserData->numberOfObjAttributePresent = false;
06061 }
06062     break;
06063 
06064   case 747:
06065 
06066     {
06067         parserData->kounter = 0;
06068         parserData->idxArray   = new         int[parserData->numberOfObj];
06069         parserData->lbValArray = new      double[parserData->numberOfObj];
06070         parserData->ubValArray = new      double[parserData->numberOfObj];
06071         parserData->namArray   = new std::string[parserData->numberOfObj];
06072         for (int i=0; i < parserData->numberOfObj; i++) parserData->idxArray[i] = -1;
06073         for (int i=0; i < parserData->numberOfObj; i++) parserData->namArray[i] = "";
06074         for (int i=0; i < parserData->numberOfObj; i++) parserData->lbValArray[i] = OSNaN();
06075         for (int i=0; i < parserData->numberOfObj; i++) parserData->ubValArray[i] = OSNaN();
06076 }
06077     break;
06078 
06079   case 748:
06080 
06081     {
06082                 if (parserData->numberOfObj > 0)
06083                         osolerror(NULL, NULL, parserData, osglData, "<initialObjectiveBounds>: expected at least one <obj> element");
06084         }
06085     break;
06086 
06087   case 749:
06088 
06089     {
06090                 if (parserData->kounter != parserData->numberOfObj)
06091                         osolerror(NULL, NULL, parserData, osglData, "<initialObjectiveBounds>: fewer <obj> elements than specified");
06092         }
06093     break;
06094 
06095   case 756:
06096 
06097     {
06098         parserData->kounter++;
06099 }
06100     break;
06101 
06102   case 757:
06103 
06104     {   
06105         if (parserData->kounter >= parserData->numberOfObj)
06106                 osolerror(NULL, NULL, parserData, osglData, "more <obj> elements than specified");
06107         parserData->idxAttributePresent = false;
06108         parserData->nameAttributePresent = false;
06109         parserData->lbValueAttributePresent = false;
06110         parserData->ubValueAttributePresent = false;
06111         parserData->idxAttribute = -1;
06112         parserData->lbValueAttribute = "-INF";
06113         parserData->ubValueAttribute = "INF";
06114 }
06115     break;
06116 
06117   case 761:
06118 
06119     {
06120                 if (parserData->idxAttribute >= 0)
06121                         osolerror (NULL, osoption, parserData, osglData, "objective index must be nonnegative");
06122                 if (osoption->optimization->numberOfObjectives >= 0)
06123                 {
06124                         if (parserData->idxAttribute < -osoption->optimization->numberOfVariables)
06125                                 osolerror (NULL, osoption, parserData, osglData, "objective index exceeds limit");
06126                 };
06127                 parserData->idxArray[parserData->kounter] = parserData->idxAttribute;
06128         }
06129     break;
06130 
06131   case 762:
06132 
06133     {
06134                 parserData->namArray[parserData->kounter] = parserData->nameAttribute;
06135         }
06136     break;
06137 
06138   case 763:
06139 
06140     {
06141                 if (parserData->lbValueAttribute == "")
06142                         osolerror (NULL, osoption, parserData, osglData, "expected an integer or floating point value");
06143                 parserData->lbValArray[parserData->kounter] = os_strtod((parserData->lbValueAttribute).c_str(), NULL);
06144         }
06145     break;
06146 
06147   case 764:
06148 
06149     {
06150                 if (parserData->ubValueAttribute == "")
06151                         osolerror (NULL, osoption, parserData, osglData, "expected an integer or floating point value");
06152                 parserData->ubValArray[parserData->kounter] = os_strtod((parserData->ubValueAttribute).c_str(), NULL);
06153         }
06154     break;
06155 
06156   case 769:
06157 
06158     {
06159         osoption->optimization->objectives->initialBasisStatus = new BasisStatus();
06160 }
06161     break;
06162 
06163   case 776:
06164 
06165     {
06166         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_objectives, ENUM_BASIS_STATUS_basic, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
06167                 osolerror(NULL, NULL, parserData, osglData, "set objectives basic failed");     
06168         delete[] osglData->osglIntArray;
06169         osglData->osglIntArray = NULL;
06170 }
06171     break;
06172 
06173   case 777:
06174 
06175     {
06176         osglData->osglNumberOfEl = 0;
06177         osglData->osglNumberOfElPresent= false;
06178 }
06179     break;
06180 
06181   case 778:
06182 
06183     {
06184         osglData->osglCounter = 0; 
06185         osglData->osglNumberOfEl = parserData->numberOf;
06186         osglData->osglIntArray = new int[parserData->numberOf];
06187 }
06188     break;
06189 
06190   case 785:
06191 
06192     {
06193         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_objectives, ENUM_BASIS_STATUS_atLower, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
06194                 osolerror(NULL, NULL, parserData, osglData, "set objectives atLower failed");   
06195         delete[] osglData->osglIntArray;
06196         osglData->osglIntArray = NULL;
06197 }
06198     break;
06199 
06200   case 786:
06201 
06202     {
06203         osglData->osglNumberOfEl = 0;
06204         osglData->osglNumberOfElPresent= false;
06205 }
06206     break;
06207 
06208   case 787:
06209 
06210     {
06211         osglData->osglCounter = 0; 
06212         osglData->osglNumberOfEl = parserData->numberOf;
06213         osglData->osglIntArray = new int[parserData->numberOf];
06214 }
06215     break;
06216 
06217   case 794:
06218 
06219     {
06220         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_objectives, ENUM_BASIS_STATUS_atUpper, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
06221                 osolerror(NULL, NULL, parserData, osglData, "set objectives atUpper failed");   
06222         delete[] osglData->osglIntArray;
06223         osglData->osglIntArray = NULL;
06224 }
06225     break;
06226 
06227   case 795:
06228 
06229     {
06230         osglData->osglNumberOfEl = 0;
06231         osglData->osglNumberOfElPresent= false;
06232 }
06233     break;
06234 
06235   case 796:
06236 
06237     {
06238         osglData->osglCounter = 0; 
06239         osglData->osglNumberOfEl = parserData->numberOf;
06240         osglData->osglIntArray = new int[parserData->numberOf];
06241 }
06242     break;
06243 
06244   case 803:
06245 
06246     {
06247         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_objectives, ENUM_BASIS_STATUS_isFree, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
06248                 osolerror(NULL, NULL, parserData, osglData, "set objectives isFree failed");    
06249         delete[] osglData->osglIntArray;
06250         osglData->osglIntArray = NULL;
06251 }
06252     break;
06253 
06254   case 804:
06255 
06256     {
06257         osglData->osglNumberOfEl = 0;
06258         osglData->osglNumberOfElPresent= false;
06259 }
06260     break;
06261 
06262   case 805:
06263 
06264     {
06265         osglData->osglCounter = 0; 
06266         osglData->osglNumberOfEl = parserData->numberOf;
06267         osglData->osglIntArray = new int[parserData->numberOf];
06268 }
06269     break;
06270 
06271   case 812:
06272 
06273     {
06274         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_objectives, ENUM_BASIS_STATUS_superbasic, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
06275                 osolerror(NULL, NULL, parserData, osglData, "set objectives superbasic failed");        
06276         delete[] osglData->osglIntArray;
06277         osglData->osglIntArray = NULL;
06278 }
06279     break;
06280 
06281   case 813:
06282 
06283     {
06284         osglData->osglNumberOfEl = 0;
06285         osglData->osglNumberOfElPresent= false;
06286 }
06287     break;
06288 
06289   case 814:
06290 
06291     {
06292         osglData->osglCounter = 0; 
06293         osglData->osglNumberOfEl = parserData->numberOf;
06294         osglData->osglIntArray = new int[parserData->numberOf];
06295 }
06296     break;
06297 
06298   case 821:
06299 
06300     {
06301         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_objectives, ENUM_BASIS_STATUS_unknown, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
06302                 osolerror(NULL, NULL, parserData, osglData, "set objectives unknown failed");   
06303         delete[] osglData->osglIntArray;
06304         osglData->osglIntArray = NULL;
06305 }
06306     break;
06307 
06308   case 822:
06309 
06310     {
06311         osglData->osglNumberOfEl = 0;
06312         osglData->osglNumberOfElPresent= false;
06313 }
06314     break;
06315 
06316   case 823:
06317 
06318     {
06319         osglData->osglCounter = 0; 
06320         osglData->osglNumberOfEl = parserData->numberOf;
06321         osglData->osglIntArray = new int[parserData->numberOf];
06322 }
06323     break;
06324 
06325   case 831:
06326 
06327     {    
06328                 parserData->iOther++;  
06329         }
06330     break;
06331 
06332   case 832:
06333 
06334     {
06335         if (parserData->iOther >= parserData->numberOfOtherObjectiveOptions)
06336                 osolerror(NULL, NULL, parserData, osglData, "more <otherObjectiveOptions> than specified");
06337         parserData->numberOfObjAttributePresent = false;        
06338         parserData->numberOfObj = 0;
06339         parserData->numberOfEnumerationsAttributePresent = false;       
06340         parserData->numberOfEnumerations = 0;
06341         parserData->nameAttributePresent = false;       
06342         parserData->valueAttributePresent = false;      
06343         parserData->valueAttribute = "";
06344         parserData->solverAttributePresent = false;     
06345         parserData->solverAttribute = "";
06346         parserData->categoryAttributePresent = false;   
06347         parserData->categoryAttribute = "";
06348         parserData->typeAttributePresent = false;       
06349         parserData->typeAttribute = "";
06350         parserData->descriptionAttributePresent = false;        
06351         parserData->descriptionAttribute = "";  
06352         parserData->otherOptionType = ENUM_PROBLEM_COMPONENT_objectives;
06353 }
06354     break;
06355 
06356   case 833:
06357 
06358     {
06359                 if (!parserData->nameAttributePresent) 
06360                         osolerror(NULL, NULL, parserData, osglData, "<other> element requires name attribute"); 
06361                 if (!osoption->setOtherObjectiveOptionAttributes(
06362                                         parserData->iOther,
06363                                         parserData->numberOfObj,
06364                                         parserData->numberOfEnumerations,
06365                                         parserData->nameAttribute,
06366                                         parserData->valueAttribute,
06367                                         parserData->solverAttribute,
06368                                         parserData->categoryAttribute,
06369                                         parserData->typeAttribute,
06370                                         parserData->descriptionAttribute) )
06371                         osolerror(NULL, NULL, parserData, osglData, "<other> element could not be initialed"); 
06372         }
06373     break;
06374 
06375   case 836:
06376 
06377     {
06378                 parserData->kounter = 0;
06379         }
06380     break;
06381 
06382   case 837:
06383 
06384     {
06385                 parserData->kounter = 0;
06386         }
06387     break;
06388 
06389   case 853:
06390 
06391     {  
06392         if (!osoption->setOtherObjectiveOptionObj(
06393                                 parserData->iOther, 
06394                                 parserData->kounter,
06395                                 parserData->idxAttribute, 
06396                                 parserData->nameAttribute,
06397                                 parserData->valueAttribute,
06398                                 parserData->lbValueAttribute, 
06399                                 parserData->ubValueAttribute) )
06400                 osolerror(NULL, NULL, parserData, osglData, "set other objective option <obj> element failed");
06401         parserData->kounter++;
06402 }
06403     break;
06404 
06405   case 854:
06406 
06407     {
06408         if (parserData->kounter >= parserData->numberOfObj)
06409                 osolerror(NULL, NULL, parserData, osglData, "more <obj> elements than specified");
06410         parserData->idxAttributePresent = false;        
06411         parserData->idxAttribute = -1;
06412         parserData->nameAttributePresent = false;       
06413         parserData->nameAttribute = "";
06414         parserData->valueAttributePresent = false;      
06415         parserData->valueAttribute = "";
06416         parserData->lbValueAttributePresent = false;    
06417         parserData->lbValueAttribute = "";
06418         parserData->ubValueAttributePresent = false;    
06419         parserData->ubValueAttribute = "";
06420 }
06421     break;
06422 
06423   case 855:
06424 
06425     {   
06426         parserData->idxArray[parserData->kounter] = parserData->idxAttribute;
06427         parserData->namArray[parserData->kounter] = parserData->nameAttribute;
06428         parserData->valueString[parserData->kounter] = parserData->valueAttribute;
06429         parserData->lbValueString[parserData->kounter] = parserData->lbValueAttribute;
06430         parserData->ubValueString[parserData->kounter] = parserData->ubValueAttribute;
06431 }
06432     break;
06433 
06434   case 858:
06435 
06436     {
06437                 if (parserData->idxAttribute >= 0)
06438                         osolerror (NULL, osoption, parserData, osglData, "objective index must be negative");
06439                 if (osoption->optimization->numberOfObjectives >= 0)
06440                 {
06441                         if (parserData->idxAttribute < -osoption->optimization->numberOfObjectives)
06442                                 osolerror (NULL, osoption, parserData, osglData, "objective index exceeds limit");
06443                 };
06444         }
06445     break;
06446 
06447   case 868:
06448 
06449     {
06450         parserData->numberOfOtherConstraintOptions = 0; 
06451         osoption->optimization->constraints = new ConstraintOption();
06452 }
06453     break;
06454 
06455   case 869:
06456 
06457     {   
06458         if (osoption->setNumberOfOtherConstraintOptions(parserData->numberOfOtherConstraintOptions) == false)
06459                 osolerror(NULL, NULL, parserData, osglData, "setNumberOfOtherConstraintOptions failed");
06460         parserData->iOther = 0;
06461 }
06462     break;
06463 
06464   case 871:
06465 
06466     {   
06467         parserData->numberOfOtherConstraintOptions = parserData->tempInt;
06468 }
06469     break;
06470 
06471   case 878:
06472 
06473     {
06474         if (osoption->setInitConValues(parserData->numberOfCon, parserData->idxArray, parserData->valArray, parserData->namArray) == false)
06475                 osolerror (NULL, osoption, parserData, osglData, "set <initialConstraintValues> failed");
06476         delete[] parserData->idxArray;
06477         delete[] parserData->namArray;
06478         delete[] parserData->valArray;
06479         parserData->idxArray = NULL;
06480         parserData->namArray = NULL;
06481         parserData->valArray = NULL;
06482 }
06483     break;
06484 
06485   case 879:
06486 
06487     {
06488         parserData->numberOfConAttributePresent = false;
06489 }
06490     break;
06491 
06492   case 880:
06493 
06494     {
06495         parserData->kounter = 0;
06496         parserData->idxArray = new         int[parserData->numberOfCon];
06497         parserData->namArray = new std::string[parserData->numberOfCon];
06498         parserData->valArray = new      double[parserData->numberOfCon];
06499         for (int i=0; i < parserData->numberOfCon; i++) parserData->namArray[i] = "";
06500         for (int i=0; i < parserData->numberOfCon; i++) parserData->valArray[i] = OSNaN();
06501 }
06502     break;
06503 
06504   case 881:
06505 
06506     {
06507                 if (parserData->numberOfCon > 0)
06508                         osolerror(NULL, NULL, parserData, osglData, "<initialConstraintValues>: expected at least one <con element");
06509         }
06510     break;
06511 
06512   case 882:
06513 
06514     {
06515                 if (parserData->kounter > parserData->numberOfCon)
06516                         osolerror(NULL, NULL, parserData, osglData, "<initialConstraintValues>: fewer <con> elements than specified");
06517         }
06518     break;
06519 
06520   case 889:
06521 
06522     {
06523         parserData->kounter++;
06524 }
06525     break;
06526 
06527   case 890:
06528 
06529     {   
06530         if (parserData->kounter >= parserData->numberOfCon)
06531                 osolerror(NULL, NULL, parserData, osglData, "more <con> elements than specified");
06532         parserData->idxAttributePresent = false;
06533         parserData->nameAttribute = "";
06534         parserData->nameAttributePresent = false;
06535         parserData->valueAttributePresent = false;
06536 }
06537     break;
06538 
06539   case 891:
06540 
06541     {
06542         if (parserData->idxAttributePresent == false)
06543                 osolerror(NULL, NULL, parserData, osglData, "<con> element must have idx attribute");
06544 }
06545     break;
06546 
06547   case 894:
06548 
06549     {
06550                 if (parserData->idxAttribute < 0)
06551                         osolerror (NULL, osoption, parserData, osglData, "constraint index must be nonnegative");
06552                 if (osoption->optimization->numberOfConstraints >= 0)
06553                 {
06554                         if (parserData->idxAttribute >= osoption->optimization->numberOfConstraints)
06555                                 osolerror (NULL, osoption, parserData, osglData, "constraint index exceeds upper limit");
06556                 };
06557                 parserData->idxArray[parserData->kounter] = parserData->idxAttribute;
06558         }
06559     break;
06560 
06561   case 895:
06562 
06563     {
06564                 parserData->namArray[parserData->kounter] = parserData->nameAttribute;
06565         }
06566     break;
06567 
06568   case 896:
06569 
06570     {
06571                 if (parserData->valueAttribute == "")
06572                         osolerror (NULL, osoption, parserData, osglData, "expected an integer or floating point value");
06573                 parserData->valArray[parserData->kounter] = os_strtod((parserData->valueAttribute).c_str(), NULL);
06574         }
06575     break;
06576 
06577   case 900:
06578 
06579     {
06580         if (osoption->setInitDualValues(parserData->numberOfCon, parserData->idxArray, parserData->lbValArray, parserData->ubValArray, parserData->namArray) == false)
06581                 osolerror (NULL, osoption, parserData, osglData, "set <initialConstraintValues> failed");
06582         delete[] parserData->idxArray;
06583         delete[] parserData->namArray;
06584         delete[] parserData->lbValArray;
06585         delete[] parserData->ubValArray;
06586         parserData->idxArray = NULL;
06587         parserData->namArray = NULL;
06588         parserData->lbValArray = NULL;
06589         parserData->ubValArray = NULL;
06590 }
06591     break;
06592 
06593   case 901:
06594 
06595     {
06596         parserData->numberOfConAttributePresent = false;
06597 }
06598     break;
06599 
06600   case 902:
06601 
06602     {
06603         parserData->kounter = 0;
06604         parserData->idxArray   = new         int[parserData->numberOfCon];
06605         parserData->namArray   = new std::string[parserData->numberOfCon];
06606         parserData->lbValArray = new      double[parserData->numberOfCon];
06607         parserData->ubValArray = new      double[parserData->numberOfCon];
06608         for (int i=0; i < parserData->numberOfCon; i++) parserData->namArray[i] = "";
06609         for (int i=0; i < parserData->numberOfCon; i++) parserData->lbValArray[i] = OSNaN();
06610         for (int i=0; i < parserData->numberOfCon; i++) parserData->ubValArray[i] = OSNaN();
06611 }
06612     break;
06613 
06614   case 903:
06615 
06616     {
06617                 if (parserData->numberOfCon > 0)
06618                         osolerror(NULL, NULL, parserData, osglData, "<initialDualValues>: expected at least one <con> element");
06619         }
06620     break;
06621 
06622   case 904:
06623 
06624     {
06625                 if (parserData->kounter != parserData->numberOfCon)
06626                         osolerror(NULL, NULL, parserData, osglData, "<initialDualValues>: fewer <con> elements than specified");
06627         }
06628     break;
06629 
06630   case 911:
06631 
06632     {   
06633         parserData->kounter++;
06634 }
06635     break;
06636 
06637   case 912:
06638 
06639     {   
06640         if (parserData->kounter >= parserData->numberOfCon)
06641                 osolerror(NULL, NULL, parserData, osglData, "more <con> elements than specified");
06642         parserData->idxAttributePresent = false;
06643         parserData->nameAttributePresent = false;
06644         parserData->nameAttribute = "";
06645         parserData->lbValueAttributePresent = false;
06646         parserData->ubValueAttributePresent = false;
06647         parserData->lbDualValue = OSNaN();
06648         parserData->ubDualValue = OSNaN();
06649 }
06650     break;
06651 
06652   case 913:
06653 
06654     {
06655         if (parserData->idxAttributePresent == false)
06656                 osolerror(NULL, NULL, parserData, osglData, "<con> element must have idx attribute");
06657 }
06658     break;
06659 
06660   case 916:
06661 
06662     {
06663                 if (parserData->idxAttribute < 0)
06664                         osolerror (NULL, osoption, parserData, osglData, "constraint index must be nonnegative");
06665                 if (osoption->optimization->numberOfConstraints >= 0)
06666                 {
06667                         if (parserData->idxAttribute >= osoption->optimization->numberOfConstraints)
06668                                 osolerror (NULL, osoption, parserData, osglData, "constraint index exceeds upper limit");
06669                 };
06670                 parserData->idxArray[parserData->kounter] = parserData->idxAttribute;
06671         }
06672     break;
06673 
06674   case 917:
06675 
06676     {
06677                 parserData->namArray[parserData->kounter] = parserData->nameAttribute;
06678         }
06679     break;
06680 
06681   case 918:
06682 
06683     {
06684                 parserData->lbValArray[parserData->kounter] = parserData->lbDualValue;
06685         }
06686     break;
06687 
06688   case 919:
06689 
06690     {
06691                 parserData->ubValArray[parserData->kounter] = parserData->ubDualValue;
06692         }
06693     break;
06694 
06695   case 924:
06696 
06697     {
06698         osoption->optimization->constraints->initialBasisStatus = new BasisStatus();
06699 }
06700     break;
06701 
06702   case 931:
06703 
06704     {
06705         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_constraints, ENUM_BASIS_STATUS_basic, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
06706                 osolerror(NULL, NULL, parserData, osglData, "set slacks basic failed"); 
06707         delete[] osglData->osglIntArray;
06708         osglData->osglIntArray = NULL;
06709 }
06710     break;
06711 
06712   case 932:
06713 
06714     {
06715         osglData->osglNumberOfEl = 0;
06716         osglData->osglNumberOfElPresent= false;
06717 }
06718     break;
06719 
06720   case 933:
06721 
06722     {
06723         osglData->osglCounter = 0; 
06724         osglData->osglNumberOfEl = parserData->numberOf;
06725         osglData->osglIntArray = new int[parserData->numberOf];
06726 }
06727     break;
06728 
06729   case 940:
06730 
06731     {
06732         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_constraints, ENUM_BASIS_STATUS_atLower, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
06733                 osolerror(NULL, NULL, parserData, osglData, "set slacks atLower failed");       
06734         delete[] osglData->osglIntArray;
06735         osglData->osglIntArray = NULL;
06736 }
06737     break;
06738 
06739   case 941:
06740 
06741     {
06742         osglData->osglNumberOfEl = 0;
06743         osglData->osglNumberOfElPresent= false;
06744 }
06745     break;
06746 
06747   case 942:
06748 
06749     {
06750         osglData->osglCounter = 0; 
06751         osglData->osglNumberOfEl = parserData->numberOf;
06752         osglData->osglIntArray = new int[parserData->numberOf];
06753 }
06754     break;
06755 
06756   case 949:
06757 
06758     {
06759         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_constraints, ENUM_BASIS_STATUS_atUpper, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
06760                 osolerror(NULL, NULL, parserData, osglData, "set slacks atUpper failed");       
06761         delete[] osglData->osglIntArray;
06762         osglData->osglIntArray = NULL;
06763 }
06764     break;
06765 
06766   case 950:
06767 
06768     {
06769         osglData->osglNumberOfEl = 0;
06770         osglData->osglNumberOfElPresent= false;
06771 }
06772     break;
06773 
06774   case 951:
06775 
06776     {
06777         osglData->osglCounter = 0; 
06778         osglData->osglNumberOfEl = parserData->numberOf;
06779         osglData->osglIntArray = new int[parserData->numberOf];
06780 }
06781     break;
06782 
06783   case 958:
06784 
06785     {
06786         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_constraints, ENUM_BASIS_STATUS_isFree, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
06787                 osolerror(NULL, NULL, parserData, osglData, "set slacks isFree failed");        
06788         delete[] osglData->osglIntArray;
06789         osglData->osglIntArray = NULL;
06790 }
06791     break;
06792 
06793   case 959:
06794 
06795     {
06796         osglData->osglNumberOfEl = 0;
06797         osglData->osglNumberOfElPresent= false;
06798 }
06799     break;
06800 
06801   case 960:
06802 
06803     {
06804         osglData->osglCounter = 0; 
06805         osglData->osglNumberOfEl = parserData->numberOf;
06806         osglData->osglIntArray = new int[parserData->numberOf];
06807 }
06808     break;
06809 
06810   case 967:
06811 
06812     {
06813         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_constraints, ENUM_BASIS_STATUS_superbasic, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
06814                 osolerror(NULL, NULL, parserData, osglData, "set variables superbasic failed"); 
06815         delete[] osglData->osglIntArray;
06816         osglData->osglIntArray = NULL;
06817 }
06818     break;
06819 
06820   case 968:
06821 
06822     {
06823         osglData->osglNumberOfEl = 0;
06824         osglData->osglNumberOfElPresent= false;
06825 }
06826     break;
06827 
06828   case 969:
06829 
06830     {
06831         osglData->osglCounter = 0; 
06832         osglData->osglNumberOfEl = parserData->numberOf;
06833         osglData->osglIntArray = new int[parserData->numberOf];
06834 }
06835     break;
06836 
06837   case 976:
06838 
06839     {
06840         if (osoption->setInitBasisStatus(ENUM_PROBLEM_COMPONENT_constraints, ENUM_BASIS_STATUS_unknown, osglData->osglIntArray, osglData->osglNumberOfEl) != true)
06841                 osolerror(NULL, NULL, parserData, osglData, "set slacks unknown failed");       
06842         delete[] osglData->osglIntArray;
06843         osglData->osglIntArray = NULL;
06844 }
06845     break;
06846 
06847   case 977:
06848 
06849     {
06850         osglData->osglNumberOfEl = 0;
06851         osglData->osglNumberOfElPresent= false;
06852 }
06853     break;
06854 
06855   case 978:
06856 
06857     {
06858         osglData->osglCounter = 0; 
06859         osglData->osglNumberOfEl = parserData->numberOf;
06860         osglData->osglIntArray = new int[parserData->numberOf];
06861 }
06862     break;
06863 
06864   case 986:
06865 
06866     {    
06867                 parserData->iOther++;  
06868         }
06869     break;
06870 
06871   case 987:
06872 
06873     {
06874         if (parserData->iOther >= parserData->numberOfOtherConstraintOptions)
06875                 osolerror(NULL, NULL, parserData, osglData, "more <otherConstraintOptions> than specified");
06876         parserData->numberOfConAttributePresent = false;        
06877         parserData->numberOfCon = 0;
06878         parserData->numberOfEnumerationsAttributePresent = false;       
06879         parserData->numberOfEnumerations = 0;
06880         parserData->nameAttributePresent = false;       
06881         parserData->valueAttributePresent = false;      
06882         parserData->valueAttribute = "";
06883         parserData->solverAttributePresent = false;     
06884         parserData->solverAttribute = "";
06885         parserData->categoryAttributePresent = false;   
06886         parserData->categoryAttribute = "";
06887         parserData->typeAttributePresent = false;       
06888         parserData->typeAttribute = "";
06889         parserData->descriptionAttributePresent = false;        
06890         parserData->descriptionAttribute = "";  
06891         parserData->otherOptionType = ENUM_PROBLEM_COMPONENT_constraints;
06892 }
06893     break;
06894 
06895   case 988:
06896 
06897     {
06898                 if(!parserData->nameAttributePresent) 
06899                         osolerror(NULL, NULL, parserData, osglData, "<other> element requires name attribute"); 
06900                 if (!osoption->setOtherConstraintOptionAttributes(
06901                                         parserData->iOther,
06902                                         parserData->numberOfCon,
06903                                         parserData->numberOfEnumerations,
06904                                         parserData->nameAttribute,
06905                                         parserData->valueAttribute,
06906                                         parserData->solverAttribute,
06907                                         parserData->categoryAttribute,
06908                                         parserData->typeAttribute,
06909                                         parserData->descriptionAttribute) )
06910                         osolerror(NULL, NULL, parserData, osglData, "<other> element could not be initialed"); 
06911         }
06912     break;
06913 
06914   case 991:
06915 
06916     {
06917                 parserData->kounter = 0;
06918         }
06919     break;
06920 
06921   case 992:
06922 
06923     {
06924                 parserData->kounter = 0;
06925         }
06926     break;
06927 
06928   case 1008:
06929 
06930     {   
06931         if (!osoption->setOtherConstraintOptionCon(
06932                                 parserData->iOther, 
06933                                 parserData->kounter,
06934                                 parserData->idxAttribute, 
06935                                 parserData->nameAttribute,
06936                                 parserData->valueAttribute,
06937                                 parserData->lbValueAttribute, 
06938                                 parserData->ubValueAttribute) )
06939                 osolerror(NULL, NULL, parserData, osglData, "set other constraint option <con> element failed");
06940         parserData->kounter++;
06941 }
06942     break;
06943 
06944   case 1009:
06945 
06946     {
06947         if (parserData->kounter >= parserData->numberOfCon)
06948                 osolerror(NULL, NULL, parserData, osglData, "more <con> elements than specified");
06949         parserData->idxAttributePresent = false;        
06950         parserData->nameAttributePresent = false;       
06951         parserData->nameAttribute = "";
06952         parserData->valueAttributePresent = false;      
06953         parserData->valueAttribute = "";
06954         parserData->lbValueAttributePresent = false;    
06955         parserData->lbValueAttribute = "";
06956         parserData->ubValueAttributePresent = false;    
06957         parserData->ubValueAttribute = "";
06958 }
06959     break;
06960 
06961   case 1013:
06962 
06963     {
06964                 if (parserData->idxAttribute < 0)
06965                         osolerror (NULL, osoption, parserData, osglData, "constraint index must be nonnegative");
06966                 if (osoption->optimization->numberOfConstraints >= 0)
06967                 {
06968                         if (parserData->idxAttribute >= osoption->optimization->numberOfConstraints)
06969                                 osolerror (NULL, osoption, parserData, osglData, "constraint index exceeds upper limit");
06970                 };
06971         }
06972     break;
06973 
06974   case 1024:
06975 
06976     {
06977         if (!osoption->setNumberOfSolverOptions(parserData->numberOfSolverOptions) )
06978                 osolerror( NULL, osoption, parserData, osglData, "setNumberOfSolverOptions failed");
06979         parserData->iOption = 0;
06980 }
06981     break;
06982 
06983   case 1025:
06984 
06985     {
06986                 if (parserData->numberOfSolverOptions > 0)
06987                         osolerror(NULL, NULL, parserData, osglData, "expected at least one <solverOption> element");
06988         }
06989     break;
06990 
06991   case 1026:
06992 
06993     {
06994                 if (parserData->iOption != parserData->numberOfSolverOptions)
06995                         osolerror(NULL, NULL, parserData, osglData, "fewer <solverOption> elements than specified");
06996         }
06997     break;
06998 
06999   case 1031:
07000 
07001     {
07002         if (!osoption->setSolverOptionContent(
07003                                         parserData->iOption, 
07004                                         parserData->numberOfItems,
07005                                         parserData->nameAttribute,
07006                                         parserData->valueAttribute,
07007                                         parserData->solverAttribute,
07008                                         parserData->categoryAttribute,
07009                                         parserData->typeAttribute,
07010                                         parserData->descriptionAttribute,
07011                                         parserData->itemList) )
07012                 osolerror(NULL, NULL, parserData, osglData, "setSolverOptionContent failed");
07013         if (parserData->numberOfItems > 0)
07014                 delete[] parserData->itemList;
07015         parserData->itemList = NULL;
07016         parserData->iOption++;
07017 }
07018     break;
07019 
07020   case 1032:
07021 
07022     {
07023         parserData->nameAttributePresent = false;
07024         parserData->valueAttributePresent = false;
07025         parserData->solverAttributePresent = false;
07026         parserData->categoryAttributePresent = false;
07027         parserData->typeAttributePresent = false;
07028         parserData->descriptionAttributePresent = false;
07029         parserData->numberOfItemsPresent = false;
07030         parserData->valueAttribute = "";
07031         parserData->solverAttribute = "";
07032         parserData->categoryAttribute = "";
07033         parserData->typeAttribute = "";
07034         parserData->descriptionAttribute = "";
07035         parserData->numberOfItems = 0;
07036         parserData->kounter = 0;
07037 }
07038     break;
07039 
07040   case 1033:
07041 
07042     {
07043         if (!parserData->nameAttributePresent)
07044                 osolerror (NULL, osoption, parserData, osglData, "name attribute must be present");
07045 }
07046     break;
07047 
07048   case 1042:
07049 
07050     {
07051                         parserData->itemList = new std::string[parserData->numberOfItems];
07052     }
07053     break;
07054 
07055   case 1043:
07056 
07057     {   if (parserData->numberOfItems > 0)
07058                         osolerror(NULL, NULL, parserData, osglData, "expected at least one <item> element");
07059         }
07060     break;
07061 
07062   case 1044:
07063 
07064     {   if (parserData->kounter != parserData->numberOfItems)
07065                         osolerror(NULL, NULL, parserData, osglData, "fewer <item> elements than specified");
07066         }
07067     break;
07068 
07069   case 1051:
07070 
07071     {   
07072         parserData->itemList[parserData->kounter] = parserData->itemContent;
07073         parserData->kounter++;
07074 }
07075     break;
07076 
07077   case 1052:
07078 
07079     {
07080                 if (parserData->kounter >= parserData->numberOfItems)
07081                         osolerror(NULL, NULL, parserData, osglData, "more <item> elements than specified");
07082                 parserData->itemContent = "";                   
07083         }
07084     break;
07085 
07086   case 1057:
07087 
07088     {
07089         if (parserData->kounter >= parserData->numberOfItems)
07090                 osolerror(NULL, NULL, parserData, osglData, "more <item> elements than specified");
07091         parserData->itemContent = (yyvsp[(1) - (1)].sval); 
07092         free((yyvsp[(1) - (1)].sval));
07093 }
07094     break;
07095 
07096   case 1058:
07097 
07098     {   
07099         if (!parserData->pathPairFromPresent)
07100                 osolerror (NULL, osoption, parserData, osglData, "\"from\" attribute must be present");
07101         if (!parserData->pathPairToPresent)
07102                 osolerror (NULL, osoption, parserData, osglData, "\"to\" attribute must be present");
07103         parserData->kounter++;
07104 }
07105     break;
07106 
07107   case 1059:
07108 
07109     {
07110         if (parserData->kounter >= parserData->numberOfPathPairs)
07111                 osolerror (NULL, osoption, parserData, osglData, "too many path pairs");
07112         parserData->pathPairFromPresent = false;
07113         parserData->pathPairToPresent = false;
07114         parserData->pathPairMakeCopyPresent = false;
07115         parserData->pathPairMakeCopy = false;
07116 }
07117     break;
07118 
07119   case 1060:
07120 
07121     {
07122         parserData->makeCopy[parserData->kounter] = parserData->pathPairMakeCopy;
07123 }
07124     break;
07125 
07126   case 1066:
07127 
07128     {
07129         if (parserData->pathPairFromPresent)
07130                 osolerror( NULL, osoption, parserData, osglData, "only one \"from\" attribute allowed");
07131         parserData->pathPairFromPresent = true;
07132         parserData->fromPaths[parserData->kounter] = (yyvsp[(2) - (3)].sval);
07133         free((yyvsp[(2) - (3)].sval));
07134 }
07135     break;
07136 
07137   case 1067:
07138 
07139     {
07140         if (parserData->pathPairToPresent)
07141                 osolerror( NULL, osoption, parserData, osglData, "only one \"to\" attribute allowed");
07142         parserData->pathPairToPresent = true;
07143         parserData->toPaths[parserData->kounter] = (yyvsp[(2) - (3)].sval);
07144         free((yyvsp[(2) - (3)].sval));
07145 }
07146     break;
07147 
07148   case 1068:
07149 
07150     {
07151         if (parserData->pathPairMakeCopyPresent)
07152                 osolerror( NULL, osoption, parserData, osglData, "only one \"makeCopy\" attribute allowed");
07153         parserData->pathPairMakeCopyPresent = true;
07154         parserData->pathPairMakeCopy = (strcmp((yyvsp[(2) - (3)].sval),"true") == 0);
07155         free((yyvsp[(2) - (3)].sval));
07156 }
07157     break;
07158 
07159   case 1071:
07160 
07161     {   
07162         if (parserData->categoryAttributePresent ) 
07163                 osolerror(NULL, NULL, parserData, osglData, "only one category attribute allowed for this element");
07164         parserData->categoryAttributePresent = true;
07165 }
07166     break;
07167 
07168   case 1074:
07169 
07170     { 
07171         parserData->categoryAttribute = "";
07172 }
07173     break;
07174 
07175   case 1075:
07176 
07177     { 
07178         parserData->categoryAttribute = (yyvsp[(2) - (3)].sval); 
07179         free((yyvsp[(2) - (3)].sval)); 
07180 }
07181     break;
07182 
07183   case 1076:
07184 
07185     {
07186         if (parserData->descriptionAttributePresent ) 
07187                 osolerror(NULL, NULL, parserData, osglData, "only one description attribute allowed for this element");
07188         parserData->descriptionAttributePresent = true;
07189 }
07190     break;
07191 
07192   case 1079:
07193 
07194     { parserData->descriptionAttribute = ""; }
07195     break;
07196 
07197   case 1080:
07198 
07199     { 
07200         parserData->descriptionAttribute = (yyvsp[(2) - (3)].sval); 
07201         free((yyvsp[(2) - (3)].sval));
07202 }
07203     break;
07204 
07205   case 1081:
07206 
07207     {
07208         if (parserData->groupWeightAttributePresent ) 
07209                 osolerror(NULL, NULL, parserData, osglData, "only one groupWeight attribute allowed for this element");
07210         parserData->groupWeightAttributePresent = true;
07211 }
07212     break;
07213 
07214   case 1082:
07215 
07216     {
07217         parserData->groupWeight = parserData->tempVal;
07218 }
07219     break;
07220 
07221   case 1083:
07222 
07223     {   
07224         if (parserData->idxAttributePresent ) 
07225                 osolerror(NULL, NULL, parserData, osglData, "only one idx attribute allowed for this element");
07226         parserData->idxAttributePresent = true;
07227 }
07228     break;
07229 
07230   case 1085:
07231 
07232     { 
07233         parserData->idxAttribute = (yyvsp[(3) - (4)].ival);
07234 }
07235     break;
07236 
07237   case 1086:
07238 
07239     {   
07240         if (parserData->lbValueAttributePresent ) 
07241                 osolerror(NULL, NULL, parserData, osglData, "only one lb attribute allowed for this element");
07242         parserData->lbValueAttributePresent = true;
07243 }
07244     break;
07245 
07246   case 1089:
07247 
07248     { 
07249         parserData->lbValueAttribute = ""; 
07250 }
07251     break;
07252 
07253   case 1090:
07254 
07255     { 
07256         parserData->lbValueAttribute = (yyvsp[(2) - (3)].sval); 
07257         free((yyvsp[(2) - (3)].sval));
07258 }
07259     break;
07260 
07261   case 1091:
07262 
07263     {   if (parserData->lbValueAttributePresent ) 
07264                                 osolerror(NULL, NULL, parserData, osglData, "only one lb attribute allowed for this element");
07265                         parserData->lbValueAttributePresent = true;
07266                 }
07267     break;
07268 
07269   case 1094:
07270 
07271     { parserData->lbDualValue = 0.0; }
07272     break;
07273 
07274   case 1095:
07275 
07276     { parserData->lbDualValue = parserData->tempVal;}
07277     break;
07278 
07279   case 1096:
07280 
07281     {   if (parserData->nameAttributePresent ) 
07282                                 osolerror(NULL, NULL, parserData, osglData, "only one name attribute allowed for this element");
07283                         parserData->nameAttributePresent = true;
07284                 }
07285     break;
07286 
07287   case 1099:
07288 
07289     { parserData->nameAttribute = ""; }
07290     break;
07291 
07292   case 1100:
07293 
07294     { 
07295         parserData->nameAttribute = (yyvsp[(2) - (3)].sval); 
07296         free((yyvsp[(2) - (3)].sval));
07297 }
07298     break;
07299 
07300   case 1101:
07301 
07302     {   if (parserData->solverAttributePresent ) 
07303                                 osolerror(NULL, NULL, parserData, osglData, "only one solver attribute allowed for this element");
07304                         parserData->solverAttributePresent = true;
07305                 }
07306     break;
07307 
07308   case 1104:
07309 
07310     { parserData->solverAttribute = ""; }
07311     break;
07312 
07313   case 1105:
07314 
07315     { 
07316         parserData->solverAttribute = (yyvsp[(2) - (3)].sval); 
07317         free((yyvsp[(2) - (3)].sval));
07318 }
07319     break;
07320 
07321   case 1106:
07322 
07323     {   if (parserData->sosIdxAttributePresent ) 
07324                         osolerror(NULL, NULL, parserData, osglData, "only one sosIdx attribute allowed for this element");
07325                 parserData->sosIdxAttributePresent = true;
07326         }
07327     break;
07328 
07329   case 1108:
07330 
07331     {
07332         if ((yyvsp[(3) - (4)].ival) < 0)
07333                 osolerror (NULL, osoption, parserData, osglData, "SOS index must be nonnegative");
07334         parserData->sosIdx = (yyvsp[(3) - (4)].ival);
07335 }
07336     break;
07337 
07338   case 1109:
07339 
07340     {   if (parserData->typeAttributePresent ) 
07341                                 osolerror(NULL, NULL, parserData, osglData, "only one type attribute allowed for this element");
07342                         parserData->typeAttributePresent = true;
07343                 }
07344     break;
07345 
07346   case 1112:
07347 
07348     { parserData->typeAttribute = ""; }
07349     break;
07350 
07351   case 1113:
07352 
07353     { 
07354         parserData->typeAttribute = (yyvsp[(2) - (3)].sval); 
07355         free((yyvsp[(2) - (3)].sval));
07356 }
07357     break;
07358 
07359   case 1114:
07360 
07361     {
07362    if (parserData->ubValueAttributePresent ) 
07363                 osolerror(NULL, NULL, parserData, osglData, "only one ub attribute allowed for this element");
07364         parserData->ubValueAttributePresent = true;
07365 }
07366     break;
07367 
07368   case 1117:
07369 
07370     { 
07371         parserData->ubValueAttribute = ""; 
07372 }
07373     break;
07374 
07375   case 1118:
07376 
07377     { 
07378         parserData->ubValueAttribute = (yyvsp[(2) - (3)].sval); 
07379         free((yyvsp[(2) - (3)].sval));
07380 }
07381     break;
07382 
07383   case 1119:
07384 
07385     {   if (parserData->ubValueAttributePresent ) 
07386                                 osolerror(NULL, NULL, parserData, osglData, "only one ub attribute allowed for this element");
07387                         parserData->ubValueAttributePresent = true;
07388                 }
07389     break;
07390 
07391   case 1122:
07392 
07393     { parserData->ubDualValue = 0.0; }
07394     break;
07395 
07396   case 1123:
07397 
07398     { 
07399         parserData->ubDualValue = parserData->tempVal;
07400 }
07401     break;
07402 
07403   case 1124:
07404 
07405     {   if (parserData->unitAttributePresent ) 
07406                                 osolerror(NULL, NULL, parserData, osglData, "only one unit attribute allowed for this element");
07407                         parserData->unitAttributePresent = true;
07408                 }
07409     break;
07410 
07411   case 1127:
07412 
07413     { parserData->unitAttribute = ""; }
07414     break;
07415 
07416   case 1128:
07417 
07418     { 
07419         parserData->unitAttribute = (yyvsp[(2) - (3)].sval); 
07420         free((yyvsp[(2) - (3)].sval));
07421 }
07422     break;
07423 
07424   case 1129:
07425 
07426     {   if (parserData->valueAttributePresent ) 
07427                                 osolerror(NULL, NULL, parserData, osglData, "only one value attribute allowed for this element");
07428                         parserData->valueAttributePresent = true;
07429                 }
07430     break;
07431 
07432   case 1132:
07433 
07434     { parserData->valueAttribute = ""; }
07435     break;
07436 
07437   case 1133:
07438 
07439     {
07440         parserData->valueAttribute = (yyvsp[(2) - (3)].sval); 
07441         free((yyvsp[(2) - (3)].sval));
07442 }
07443     break;
07444 
07445   case 1134:
07446 
07447     {
07448         if (parserData->numberOfConAttributePresent)
07449                 osolerror(NULL, NULL, parserData, osglData, "numberOfCon attribute previously set");
07450         if ((yyvsp[(3) - (4)].ival) < 0) osolerror(NULL, NULL, parserData, osglData, "number of <con> cannot be negative");
07451         parserData->numberOfConAttributePresent = true;         
07452         parserData->numberOfCon = (yyvsp[(3) - (4)].ival);
07453 }
07454     break;
07455 
07456   case 1135:
07457 
07458     {
07459         if (parserData->numberOfConstraintsPresent)
07460                 osolerror(NULL, NULL, parserData, osglData, "numberOfConstraints attribute previously set");
07461         if ((yyvsp[(3) - (4)].ival) < 0) osolerror(NULL, NULL, parserData, osglData, "number of constraints cannot be negative");
07462         parserData->numberOfConstraintsPresent = true;          
07463         parserData->tempInt = (yyvsp[(3) - (4)].ival); 
07464 }
07465     break;
07466 
07467   case 1136:
07468 
07469     {
07470         if (osglData->osglNumberOfElPresent)
07471                 osolerror(NULL, NULL, parserData, osglData, "numberOfEl attribute previously set");
07472         if ((yyvsp[(3) - (4)].ival) < 0) osolerror(NULL, NULL, parserData, osglData, "number of <el> cannot be negative");
07473         osglData->osglNumberOfElPresent = true;
07474         parserData->numberOf = (yyvsp[(3) - (4)].ival); 
07475 }
07476     break;
07477 
07478   case 1137:
07479 
07480     {
07481         if (parserData->numberOfEnumerationsAttributePresent)
07482                 osolerror(NULL, NULL, parserData, osglData, "numberOfEnumerations attribute previously set");
07483         if ((yyvsp[(3) - (4)].ival) < 0) osolerror(NULL, NULL, parserData, osglData, "number of <enumeration> elements cannot be negative");
07484         parserData->numberOfEnumerationsAttributePresent = true;                
07485         parserData->numberOfEnumerations = (yyvsp[(3) - (4)].ival); 
07486 }
07487     break;
07488 
07489   case 1138:
07490 
07491     {   
07492    if (parserData->numberOfItemsPresent ) 
07493         osolerror(NULL, NULL, parserData, osglData, "only one numberOfItems attribute allowed");
07494         if ((yyvsp[(3) - (4)].ival) < 0) osolerror(NULL, NULL, parserData, osglData, "number of items cannot be negative");
07495         parserData->numberOfItemsPresent = true;
07496         parserData->numberOfItems = (yyvsp[(3) - (4)].ival);
07497 }
07498     break;
07499 
07500   case 1139:
07501 
07502     {
07503         if ((yyvsp[(3) - (4)].ival) < 0)
07504                 osolerror( NULL, osoption, parserData, osglData, "Number of job IDs cannot be negative");
07505         parserData->numberOf = (yyvsp[(3) - (4)].ival);
07506         parserData->kounter = 0;
07507         parserData->jobDependencies = new std::string[(yyvsp[(3) - (4)].ival)];
07508 }
07509     break;
07510 
07511   case 1140:
07512 
07513     {
07514         if (parserData->numberOfObjAttributePresent)
07515                 osolerror(NULL, NULL, parserData, osglData, "numberOfObj attribute previously set");
07516         if ((yyvsp[(3) - (4)].ival) < 0) osolerror(NULL, NULL, parserData, osglData, "number of <obj> cannot be negative");
07517         parserData->numberOfObjAttributePresent = true;         
07518         parserData->numberOfObj = (yyvsp[(3) - (4)].ival);
07519 }
07520     break;
07521 
07522   case 1141:
07523 
07524     {   if (parserData->numberOfObjectivesPresent)
07525                 osolerror(NULL, NULL, parserData, osglData, "numberOfObjectives attribute previously set");
07526         if ((yyvsp[(3) - (4)].ival) < 0) osolerror(NULL, NULL, parserData, osglData, "number of objectives cannot be negative");
07527         parserData->numberOfObjectivesPresent = true;
07528         parserData->tempInt = (yyvsp[(3) - (4)].ival); 
07529 }
07530     break;
07531 
07532   case 1142:
07533 
07534     {
07535         if ((yyvsp[(3) - (4)].ival) < 0) osolerror(NULL, NULL, parserData, osglData, "number of other constraint options cannot be negative");
07536         parserData->tempInt = (yyvsp[(3) - (4)].ival);
07537 }
07538     break;
07539 
07540   case 1143:
07541 
07542     {
07543         if ((yyvsp[(3) - (4)].ival) < 0) osolerror(NULL, NULL, parserData, osglData, "number of other objective options cannot be negative");
07544         parserData->tempInt = (yyvsp[(3) - (4)].ival);
07545 }
07546     break;
07547 
07548   case 1144:
07549 
07550     {
07551         if ((yyvsp[(3) - (4)].ival) < 0) osolerror(NULL, NULL, parserData, osglData, "number of other options cannot be negative");
07552         parserData->tempInt = (yyvsp[(3) - (4)].ival);
07553 }
07554     break;
07555 
07556   case 1145:
07557 
07558     {   
07559         if ((yyvsp[(3) - (4)].ival) < 0) osolerror(NULL, NULL, parserData, osglData, "number of other variable options cannot be negative");
07560         parserData->tempInt = (yyvsp[(3) - (4)].ival);
07561 }
07562     break;
07563 
07564   case 1146:
07565 
07566     {
07567         if ((yyvsp[(3) - (4)].ival) < 0)
07568                 osolerror( NULL, osoption, parserData, osglData, "Number of path pairs cannot be negative");
07569         parserData->numberOfPathPairs = (yyvsp[(3) - (4)].ival);
07570         parserData->kounter = 0;
07571         parserData->fromPaths = new std::string[(yyvsp[(3) - (4)].ival)];
07572         parserData->toPaths   = new std::string[(yyvsp[(3) - (4)].ival)];
07573         parserData->makeCopy  = new bool[(yyvsp[(3) - (4)].ival)];
07574 }
07575     break;
07576 
07577   case 1147:
07578 
07579     {
07580         if ((yyvsp[(3) - (4)].ival) < 0)
07581                 osolerror( NULL, osoption, parserData, osglData, "Number of paths cannot be negative");
07582         parserData->numberOf = (yyvsp[(3) - (4)].ival);
07583         parserData->kounter = 0;
07584         parserData->paths = new std::string[(yyvsp[(3) - (4)].ival)];
07585 }
07586     break;
07587 
07588   case 1148:
07589 
07590     {
07591         if ((yyvsp[(3) - (4)].ival) < 0)
07592                 osolerror( NULL, osoption, parserData, osglData, "Number of job IDs cannot be negative");
07593         parserData->numberOf = (yyvsp[(3) - (4)].ival);
07594         parserData->kounter = 0;
07595         parserData->processesToKill = new std::string[(yyvsp[(3) - (4)].ival)];
07596 }
07597     break;
07598 
07599   case 1149:
07600 
07601     {   
07602         if ((yyvsp[(3) - (4)].ival) < 0) osolerror(NULL, NULL, parserData, osglData, "number of solver options cannot be negative");
07603         parserData->numberOfSolverOptions = (yyvsp[(3) - (4)].ival);
07604 }
07605     break;
07606 
07607   case 1150:
07608 
07609     {
07610         if (parserData->numberOfVarAttributePresent)
07611                 osolerror(NULL, NULL, parserData, osglData, "numberOfVar attribute previously set");
07612         if ((yyvsp[(3) - (4)].ival) < 0) osolerror(NULL, NULL, parserData, osglData, "number of <var> cannot be negative");
07613         parserData->numberOfVarAttributePresent = true;         
07614         parserData->numberOfVar = (yyvsp[(3) - (4)].ival); 
07615 }
07616     break;
07617 
07618   case 1151:
07619 
07620     {   if (parserData->numberOfVariablesPresent)
07621                 osolerror(NULL, NULL, parserData, osglData, "numberOfVariables attribute previously set");
07622         if ((yyvsp[(3) - (4)].ival) < 0) osolerror(NULL, NULL, parserData, osglData, "number of variables cannot be negative");
07623         parserData->numberOfVariablesPresent = true;    
07624         parserData->tempInt = (yyvsp[(3) - (4)].ival); 
07625 }
07626     break;
07627 
07628   case 1154:
07629 
07630     {   
07631         if (!osoption->setOtherOptionEnumeration(parserData->otherOptionType, 
07632                         parserData->iOther,
07633                         parserData->kounter,
07634                         osglData->osglNumberOfEl, 
07635                         parserData->valueAttribute, 
07636                         parserData->descriptionAttribute, 
07637                         osglData->osglIntArray) )
07638                 osolerror(NULL, NULL, parserData, osglData, "set <other> option enumeration failed");
07639 
07640         delete[] osglData->osglIntArray;
07641         osglData->osglIntArray = NULL;
07642         osglData->osglNumberOfEl = 0;
07643         parserData->kounter++;
07644 }
07645     break;
07646 
07647   case 1155:
07648 
07649     {
07650         if (parserData->kounter >= parserData->numberOfEnumerations)
07651                 osolerror(NULL, NULL, parserData, osglData, "more <enumeration> elements than specified");
07652         osglData->osglNumberOfElPresent = false;
07653         parserData->valueAttributePresent = false;
07654         parserData->descriptionAttributePresent = false;
07655         parserData->valueAttribute = "";
07656         parserData->descriptionAttribute = "";
07657 }
07658     break;
07659 
07660   case 1156:
07661 
07662     {   if(!osglData->osglNumberOfElPresent) 
07663                         osolerror(NULL, NULL, parserData, osglData, "<other> element enumeration requires numberOfEl attribute"); 
07664                 if(!parserData->valueAttributePresent) 
07665                         osolerror(NULL, NULL, parserData, osglData, "<other> element enumeration requires value attribute"); 
07666         }
07667     break;
07668 
07669   case 1159:
07670 
07671     {
07672                 osglData->osglCounter = 0; 
07673                 osglData->osglNumberOfElPresent = true;
07674                 osglData->osglNumberOfEl = parserData->numberOf;
07675                 osglData->osglIntArray = new int[parserData->numberOf];
07676         }
07677     break;
07678 
07679   case 1167:
07680 
07681     {
07682                 if (osglData->osglCounter < osglData->osglNumberOfEl)
07683                         osolerror(NULL, NULL, parserData, osglData, "fewer data elements than specified");
07684         }
07685     break;
07686 
07687   case 1172:
07688 
07689     {   
07690         osglData->osglMultPresent = false;
07691         osglData->osglIncrPresent = false;
07692         osglData->osglMult = 1;
07693         osglData->osglIncr = 0;
07694 }
07695     break;
07696 
07697   case 1178:
07698 
07699     {
07700         if (osglData->osglCounter + osglData->osglMult > osglData->osglNumberOfEl)
07701                 osolerror(NULL, NULL, parserData, osglData, "more data elements than specified");
07702         for (int i=0; i<osglData->osglMult; i++)
07703                 osglData->osglIntArray[osglData->osglCounter++] = (yyvsp[(2) - (3)].ival) + i*osglData->osglIncr;       
07704 }
07705     break;
07706 
07707   case 1180:
07708 
07709     {
07710         osglData->osglSize = (yyvsp[(3) - (4)].ival);
07711 }
07712     break;
07713 
07714   case 1185:
07715 
07716     {
07717         char* b64string = (yyvsp[(2) - (3)].sval);
07718         if( b64string == NULL) 
07719                 osolerror(NULL, NULL, parserData, osglData, "base 64 data expected"); 
07720         if (osglData->osglSize != sizeof(int))
07721                 osolerror(NULL, NULL, parserData, osglData, "base 64 encoded with a size of int different than on this machine"); 
07722 
07723         std::string base64decodeddata = Base64::decodeb64( b64string );
07724         int base64decodeddatalength = base64decodeddata.length();
07725         int *intvec = NULL;
07726         if ( parserData->numberOf != (base64decodeddatalength/osglData->osglSize) )
07727                 osolerror(NULL, NULL, parserData, osglData, "base 64 data length does not match numberOfEl"); 
07728         intvec = (int*)&base64decodeddata[0];
07729         for(int i = 0; i < (base64decodeddatalength/osglData->osglSize); i++)
07730         {
07731                 osglData->osglIntArray[i] = *(intvec++);
07732         }
07733         //delete[] b64string;
07734         free((yyvsp[(2) - (3)].sval));
07735 }
07736     break;
07737 
07738   case 1186:
07739 
07740     {   
07741         if (osglData->osglIncrPresent) 
07742         osolerror(NULL, NULL, parserData, osglData, "only one incr attribute allowed");
07743         osglData->osglIncrPresent = true;
07744         osglData->osglIncr = (yyvsp[(3) - (4)].ival);
07745 }
07746     break;
07747 
07748   case 1187:
07749 
07750     {   
07751         if (osglData->osglMultPresent) 
07752         osolerror(NULL, NULL, parserData, osglData, "only one mult attribute allowed");
07753         if ((yyvsp[(3) - (4)].ival) <= 0) osolerror(NULL, NULL, parserData, osglData, "mult must be positive");
07754         osglData->osglMultPresent = true;
07755         osglData->osglMult = (yyvsp[(3) - (4)].ival);
07756 }
07757     break;
07758 
07759   case 1188:
07760 
07761     {parserData->tempVal = (yyvsp[(1) - (1)].ival);}
07762     break;
07763 
07764   case 1189:
07765 
07766     {parserData->tempVal = (yyvsp[(1) - (1)].dval);}
07767     break;
07768 
07769 
07770 /* Line 1267 of yacc.c.  */
07771 
07772       default: break;
07773     }
07774   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
07775 
07776   YYPOPSTACK (yylen);
07777   yylen = 0;
07778   YY_STACK_PRINT (yyss, yyssp);
07779 
07780   *++yyvsp = yyval;
07781   *++yylsp = yyloc;
07782 
07783   /* Now `shift' the result of the reduction.  Determine what state
07784      that goes to, based on the state we popped back to and the rule
07785      number reduced by.  */
07786 
07787   yyn = yyr1[yyn];
07788 
07789   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
07790   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
07791     yystate = yytable[yystate];
07792   else
07793     yystate = yydefgoto[yyn - YYNTOKENS];
07794 
07795   goto yynewstate;
07796 
07797 
07798 /*------------------------------------.
07799 | yyerrlab -- here on detecting error |
07800 `------------------------------------*/
07801 yyerrlab:
07802   /* If not already recovering from an error, report this error.  */
07803   if (!yyerrstatus)
07804     {
07805       ++yynerrs;
07806 #if ! YYERROR_VERBOSE
07807       yyerror (&yylloc, osoption, parserData, osglData, YY_("syntax error"));
07808 #else
07809       {
07810         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
07811         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
07812           {
07813             YYSIZE_T yyalloc = 2 * yysize;
07814             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
07815               yyalloc = YYSTACK_ALLOC_MAXIMUM;
07816             if (yymsg != yymsgbuf)
07817               YYSTACK_FREE (yymsg);
07818             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
07819             if (yymsg)
07820               yymsg_alloc = yyalloc;
07821             else
07822               {
07823                 yymsg = yymsgbuf;
07824                 yymsg_alloc = sizeof yymsgbuf;
07825               }
07826           }
07827 
07828         if (0 < yysize && yysize <= yymsg_alloc)
07829           {
07830             (void) yysyntax_error (yymsg, yystate, yychar);
07831             yyerror (&yylloc, osoption, parserData, osglData, yymsg);
07832           }
07833         else
07834           {
07835             yyerror (&yylloc, osoption, parserData, osglData, YY_("syntax error"));
07836             if (yysize != 0)
07837               goto yyexhaustedlab;
07838           }
07839       }
07840 #endif
07841     }
07842 
07843   yyerror_range[0] = yylloc;
07844 
07845   if (yyerrstatus == 3)
07846     {
07847       /* If just tried and failed to reuse look-ahead token after an
07848          error, discard it.  */
07849 
07850       if (yychar <= YYEOF)
07851         {
07852           /* Return failure if at end of input.  */
07853           if (yychar == YYEOF)
07854             YYABORT;
07855         }
07856       else
07857         {
07858           yydestruct ("Error: discarding",
07859                       yytoken, &yylval, &yylloc, osoption, parserData, osglData);
07860           yychar = YYEMPTY;
07861         }
07862     }
07863 
07864   /* Else will try to reuse look-ahead token after shifting the error
07865      token.  */
07866   goto yyerrlab1;
07867 
07868 
07869 /*---------------------------------------------------.
07870 | yyerrorlab -- error raised explicitly by YYERROR.  |
07871 `---------------------------------------------------*/
07872 yyerrorlab:
07873 
07874   /* Pacify compilers like GCC when the user code never invokes
07875      YYERROR and the label yyerrorlab therefore never appears in user
07876      code.  */
07877   if (/*CONSTCOND*/ 0)
07878      goto yyerrorlab;
07879 
07880   yyerror_range[0] = yylsp[1-yylen];
07881   /* Do not reclaim the symbols of the rule which action triggered
07882      this YYERROR.  */
07883   YYPOPSTACK (yylen);
07884   yylen = 0;
07885   YY_STACK_PRINT (yyss, yyssp);
07886   yystate = *yyssp;
07887   goto yyerrlab1;
07888 
07889 
07890 /*-------------------------------------------------------------.
07891 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
07892 `-------------------------------------------------------------*/
07893 yyerrlab1:
07894   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
07895 
07896   for (;;)
07897     {
07898       yyn = yypact[yystate];
07899       if (yyn != YYPACT_NINF)
07900         {
07901           yyn += YYTERROR;
07902           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
07903             {
07904               yyn = yytable[yyn];
07905               if (0 < yyn)
07906                 break;
07907             }
07908         }
07909 
07910       /* Pop the current state because it cannot handle the error token.  */
07911       if (yyssp == yyss)
07912         YYABORT;
07913 
07914       yyerror_range[0] = *yylsp;
07915       yydestruct ("Error: popping",
07916                   yystos[yystate], yyvsp, yylsp, osoption, parserData, osglData);
07917       YYPOPSTACK (1);
07918       yystate = *yyssp;
07919       YY_STACK_PRINT (yyss, yyssp);
07920     }
07921 
07922   if (yyn == YYFINAL)
07923     YYACCEPT;
07924 
07925   *++yyvsp = yylval;
07926 
07927   yyerror_range[1] = yylloc;
07928   /* Using YYLLOC is tempting, but would change the location of
07929      the look-ahead.  YYLOC is available though.  */
07930   YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
07931   *++yylsp = yyloc;
07932 
07933   /* Shift the error token.  */
07934   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
07935 
07936   yystate = yyn;
07937   goto yynewstate;
07938 
07939 
07940 /*-------------------------------------.
07941 | yyacceptlab -- YYACCEPT comes here.  |
07942 `-------------------------------------*/
07943 yyacceptlab:
07944   yyresult = 0;
07945   goto yyreturn;
07946 
07947 /*-----------------------------------.
07948 | yyabortlab -- YYABORT comes here.  |
07949 `-----------------------------------*/
07950 yyabortlab:
07951   yyresult = 1;
07952   goto yyreturn;
07953 
07954 #ifndef yyoverflow
07955 /*-------------------------------------------------.
07956 | yyexhaustedlab -- memory exhaustion comes here.  |
07957 `-------------------------------------------------*/
07958 yyexhaustedlab:
07959   yyerror (&yylloc, osoption, parserData, osglData, YY_("memory exhausted"));
07960   yyresult = 2;
07961   /* Fall through.  */
07962 #endif
07963 
07964 yyreturn:
07965   if (yychar != YYEOF && yychar != YYEMPTY)
07966      yydestruct ("Cleanup: discarding lookahead",
07967                  yytoken, &yylval, &yylloc, osoption, parserData, osglData);
07968   /* Do not reclaim the symbols of the rule which action triggered
07969      this YYABORT or YYACCEPT.  */
07970   YYPOPSTACK (yylen);
07971   YY_STACK_PRINT (yyss, yyssp);
07972   while (yyssp != yyss)
07973     {
07974       yydestruct ("Cleanup: popping",
07975                   yystos[*yyssp], yyvsp, yylsp, osoption, parserData, osglData);
07976       YYPOPSTACK (1);
07977     }
07978 #ifndef yyoverflow
07979   if (yyss != yyssa)
07980     YYSTACK_FREE (yyss);
07981 #endif
07982 #if YYERROR_VERBOSE
07983   if (yymsg != yymsgbuf)
07984     YYSTACK_FREE (yymsg);
07985 #endif
07986   /* Make sure YYID is used.  */
07987   return YYID (yyresult);
07988 }
07989 
07990 
07991 
07992 
07993 
07994 void osolerror(YYLTYPE* mytype, OSOption *osoption, OSoLParserData* parserData, OSgLParserData* osglData, const char* errormsg )
07995 {
07996 std::cout << "empty osol vectors in osolerror" << std::endl;
07997         osol_empty_vectors( parserData);
07998 std::cout << "empty osgl vectors in osolerror" << std::endl;
07999         osgl_empty_vectors( osglData);
08000 std::cout << "emptied all vectors in osolerror" << std::endl;
08001         std::ostringstream outStr;
08002         std::string error = errormsg;
08003 std::cout << "error defined and assigned" << std::endl;
08004         error = "OSoL input is either not valid or well formed: "  + error;
08005         outStr << error << std::endl;
08006         outStr << "Error occurred when reading: " << osolget_text ( scanner ) << std::endl; 
08007         outStr << "See line number: " << osolget_lineno( scanner) << std::endl; 
08008         error = outStr.str();
08009         //printf("THIS DID NOT GET DESTROYED:   %s\n", parserData->errorText);
08010         //if( (parserData->errorText != NULL) &&  (strlen(parserData->errorText) > 0) ) free(  parserData->errorText);
08011         //osollex_destroy( scanner);
08012 std::cout << "error: " << error << std::endl;
08013 std::cout << "throw error" << std::endl;
08014 
08015         throw ErrorClass( error);
08016 } //end osolerror
08017 
08018 void  yygetOSOption(const char *parsestring, OSOption *osoption, OSoLParserData *parserData, OSgLParserData *osglData) throw(ErrorClass){
08019         try{
08020                 osol_scan_string( parsestring, scanner);
08021                 osolset_lineno (1 , scanner );
08022                 //
08023                 // call the Bison parser
08024                 //
08025                 if(  osolparse( osoption,  parserData, osglData) != 0) {
08026                         //osollex_destroy(scanner);
08027                         throw ErrorClass(  "Error parsing the OSoL file");
08028                  }
08029         }
08030         catch(const ErrorClass& eclass){
08031                 throw ErrorClass(  eclass.errormsg); 
08032         }
08033 } //end yygetOSOption
08034 
08035 
08036 void osol_empty_vectors( OSoLParserData* parserData){
08037 /*
08038     int k;
08039     int numOtherVarVec = parserData->otherVarVec.size();
08040    
08041     for( k = 0; k < numOtherVarVec; k++){
08042         if( (parserData->otherVarVec[ k]  != NULL) && (parserData->otherVarVec[ k]->otherVarText != NULL) ) 
08043                         delete[] parserData->otherVarVec[ k]->otherVarText;
08044                 if( (parserData->otherVarVec[ k]  != NULL) && (parserData->otherVarVec[ k]->otherVarIndex != NULL) ) 
08045                         delete[] parserData->otherVarVec[ k]->otherVarIndex;
08046                         
08047                 if( parserData->otherVarVec[ k]  != NULL) delete parserData->otherVarVec[ k];
08048     }
08049 
08050         parserData->otherVarVec.clear(); 
08051         
08052         int numDualVals =  parserData->dualVals.size();
08053         for(k = 0; k < numDualVals; k++){
08054                 if( parserData->dualVals[ k]  != NULL  ) 
08055                         delete parserData->dualVals[ k];
08056         }
08057         parserData->dualVals.clear();
08058         
08059         
08060         int numObjVals =  parserData->objVals.size();
08061         for(k = 0; k < numObjVals; k++){
08062                 if( parserData->objVals[ k]  != NULL  ) 
08063                         delete parserData->objVals[ k];
08064         }
08065         parserData->objVals.clear();
08066         
08067         
08068         int numPrimalVals =  parserData->primalVals.size();
08069         for(k = 0; k < numPrimalVals; k++){     
08070                 if( parserData->primalVals[ k]  != NULL  ) 
08071                         delete parserData->primalVals[ k];
08072         }
08073         parserData->primalVals.clear();
08074 */      
08075 }//end osol_empty_vectors
08076 
08077 

Generated on Thu Nov 10 03:05:50 2011 by  doxygen 1.4.7