00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 #define YYBISON 1
00048
00049
00050 #define YYBISON_VERSION "2.3"
00051
00052
00053 #define YYSKELETON_NAME "yacc.c"
00054
00055
00056 #define YYPURE 1
00057
00058
00059 #define YYLSP_NEEDED 1
00060
00061
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
00072 #ifndef YYTOKENTYPE
00073 # define YYTOKENTYPE
00074
00075
00076 enum yytokentype {
00077 ATTRIBUTETEXT = 258,
00078 ELEMENTTEXT = 259,
00079 INTEGER = 260,
00080 DOUBLE = 261,
00081 QUOTE = 262,
00082 TWOQUOTES = 263,
00083 GREATERTHAN = 264,
00084 ENDOFELEMENT = 265,
00085 OSOLSTART = 266,
00086 OSOLSTARTEMPTY = 267,
00087 OSOLATTRIBUTETEXT = 268,
00088 OSOLEND = 269,
00089 LOCATIONTYPEATT = 270,
00090 TRANSPORTTYPEATT = 271,
00091 NUMBEROFOTHEROPTIONSATT = 272,
00092 NUMBEROFJOBIDSATT = 273,
00093 NUMBEROFPATHSATT = 274,
00094 NUMBEROFPATHPAIRSATT = 275,
00095 FROMATT = 276,
00096 TOATT = 277,
00097 MAKECOPYATT = 278,
00098 SOLVERATT = 279,
00099 CATEGORYATT = 280,
00100 TYPEATT = 281,
00101 GROUPWEIGHTATT = 282,
00102 NUMBEROFPROCESSESATT = 283,
00103 NUMBEROFSOLVEROPTIONSATT = 284,
00104 NUMBEROFSOSATT = 285,
00105 NUMBEROFVARIABLESATT = 286,
00106 NUMBEROFOBJECTIVESATT = 287,
00107 NUMBEROFCONSTRAINTSATT = 288,
00108 NUMBEROFOTHERVARIABLEOPTIONSATT = 289,
00109 NUMBEROFOTHEROBJECTIVEOPTIONSATT = 290,
00110 NUMBEROFOTHERCONSTRAINTOPTIONSATT = 291,
00111 NUMBEROFVARATT = 292,
00112 NUMBEROFOBJATT = 293,
00113 NUMBEROFCONATT = 294,
00114 NAMEATT = 295,
00115 IDXATT = 296,
00116 SOSIDXATT = 297,
00117 VALUEATT = 298,
00118 UNITATT = 299,
00119 DESCRIPTIONATT = 300,
00120 LBVALUEATT = 301,
00121 UBVALUEATT = 302,
00122 LBDUALVALUEATT = 303,
00123 UBDUALVALUEATT = 304,
00124 GENERALSTART = 305,
00125 GENERALEND = 306,
00126 SYSTEMSTART = 307,
00127 SYSTEMEND = 308,
00128 SERVICESTART = 309,
00129 SERVICEEND = 310,
00130 JOBSTART = 311,
00131 JOBEND = 312,
00132 OPTIMIZATIONSTART = 313,
00133 OPTIMIZATIONEND = 314,
00134 SERVICEURISTART = 315,
00135 SERVICEURIEND = 316,
00136 SERVICENAMESTART = 317,
00137 SERVICENAMEEND = 318,
00138 INSTANCENAMESTART = 319,
00139 INSTANCENAMEEND = 320,
00140 INSTANCELOCATIONSTART = 321,
00141 INSTANCELOCATIONEND = 322,
00142 JOBIDSTART = 323,
00143 JOBIDEND = 324,
00144 SOLVERTOINVOKESTART = 325,
00145 SOLVERTOINVOKEEND = 326,
00146 LICENSESTART = 327,
00147 LICENSEEND = 328,
00148 USERNAMESTART = 329,
00149 USERNAMEEND = 330,
00150 PASSWORDSTART = 331,
00151 PASSWORDEND = 332,
00152 CONTACTSTART = 333,
00153 CONTACTEND = 334,
00154 OTHEROPTIONSSTART = 335,
00155 OTHEROPTIONSEND = 336,
00156 OTHERSTART = 337,
00157 OTHEREND = 338,
00158 MINDISKSPACESTART = 339,
00159 MINDISKSPACEEND = 340,
00160 MINMEMORYSIZESTART = 341,
00161 MINMEMORYSIZEEND = 342,
00162 MINCPUSPEEDSTART = 343,
00163 MINCPUSPEEDEND = 344,
00164 MINCPUNUMBERSTART = 345,
00165 MINCPUNUMBEREND = 346,
00166 SERVICETYPESTART = 347,
00167 SERVICETYPEEND = 348,
00168 MAXTIMESTART = 349,
00169 MAXTIMEEND = 350,
00170 REQUESTEDSTARTTIMESTART = 351,
00171 REQUESTEDSTARTTIMEEND = 352,
00172 DEPENDENCIESSTART = 353,
00173 DEPENDENCIESEND = 354,
00174 REQUIREDDIRECTORIESSTART = 355,
00175 REQUIREDDIRECTORIESEND = 356,
00176 REQUIREDFILESSTART = 357,
00177 REQUIREDFILESEND = 358,
00178 PATHSTART = 359,
00179 PATHEND = 360,
00180 PATHPAIRSTART = 361,
00181 PATHPAIREND = 362,
00182 DIRECTORIESTOMAKESTART = 363,
00183 DIRECTORIESTOMAKEEND = 364,
00184 FILESTOMAKESTART = 365,
00185 FILESTOMAKEEND = 366,
00186 DIRECTORIESTODELETESTART = 367,
00187 DIRECTORIESTODELETEEND = 368,
00188 FILESTODELETESTART = 369,
00189 FILESTODELETEEND = 370,
00190 INPUTDIRECTORIESTOMOVESTART = 371,
00191 INPUTDIRECTORIESTOMOVEEND = 372,
00192 INPUTFILESTOMOVESTART = 373,
00193 INPUTFILESTOMOVEEND = 374,
00194 OUTPUTDIRECTORIESTOMOVESTART = 375,
00195 OUTPUTDIRECTORIESTOMOVEEND = 376,
00196 OUTPUTFILESTOMOVESTART = 377,
00197 OUTPUTFILESTOMOVEEND = 378,
00198 PROCESSESTOKILLSTART = 379,
00199 PROCESSESTOKILLEND = 380,
00200 PROCESSSTART = 381,
00201 PROCESSEND = 382,
00202 VARIABLESSTART = 383,
00203 VARIABLESEND = 384,
00204 INITIALVARIABLEVALUESSTART = 385,
00205 INITIALVARIABLEVALUESEND = 386,
00206 VARSTART = 387,
00207 VAREND = 388,
00208 INITIALVARIABLEVALUESSTRINGSTART = 389,
00209 INITIALVARIABLEVALUESSTRINGEND = 390,
00210 INITIALBASISSTATUSSTART = 391,
00211 INITIALBASISSTATUSEND = 392,
00212 INTEGERVARIABLEBRANCHINGWEIGHTSSTART = 393,
00213 INTEGERVARIABLEBRANCHINGWEIGHTSEND = 394,
00214 SOSVARIABLEBRANCHINGWEIGHTSSTART = 395,
00215 SOSVARIABLEBRANCHINGWEIGHTSEND = 396,
00216 SOSSTART = 397,
00217 SOSEND = 398,
00218 OBJECTIVESSTART = 399,
00219 OBJECTIVESEND = 400,
00220 INITIALOBJECTIVEVALUESSTART = 401,
00221 INITIALOBJECTIVEVALUESEND = 402,
00222 OBJSTART = 403,
00223 OBJEND = 404,
00224 INITIALOBJECTIVEBOUNDSSTART = 405,
00225 INITIALOBJECTIVEBOUNDSEND = 406,
00226 CONSTRAINTSSTART = 407,
00227 CONSTRAINTSEND = 408,
00228 INITIALCONSTRAINTVALUESSTART = 409,
00229 INITIALCONSTRAINTVALUESEND = 410,
00230 CONSTART = 411,
00231 CONEND = 412,
00232 INITIALDUALVALUESSTART = 413,
00233 INITIALDUALVALUESEND = 414,
00234 SOLVEROPTIONSSTART = 415,
00235 SOLVEROPTIONSEND = 416,
00236 SOLVEROPTIONSTART = 417,
00237 SOLVEROPTIONEND = 418,
00238 DUMMY = 419
00239 };
00240 #endif
00241
00242 #define ATTRIBUTETEXT 258
00243 #define ELEMENTTEXT 259
00244 #define INTEGER 260
00245 #define DOUBLE 261
00246 #define QUOTE 262
00247 #define TWOQUOTES 263
00248 #define GREATERTHAN 264
00249 #define ENDOFELEMENT 265
00250 #define OSOLSTART 266
00251 #define OSOLSTARTEMPTY 267
00252 #define OSOLATTRIBUTETEXT 268
00253 #define OSOLEND 269
00254 #define LOCATIONTYPEATT 270
00255 #define TRANSPORTTYPEATT 271
00256 #define NUMBEROFOTHEROPTIONSATT 272
00257 #define NUMBEROFJOBIDSATT 273
00258 #define NUMBEROFPATHSATT 274
00259 #define NUMBEROFPATHPAIRSATT 275
00260 #define FROMATT 276
00261 #define TOATT 277
00262 #define MAKECOPYATT 278
00263 #define SOLVERATT 279
00264 #define CATEGORYATT 280
00265 #define TYPEATT 281
00266 #define GROUPWEIGHTATT 282
00267 #define NUMBEROFPROCESSESATT 283
00268 #define NUMBEROFSOLVEROPTIONSATT 284
00269 #define NUMBEROFSOSATT 285
00270 #define NUMBEROFVARIABLESATT 286
00271 #define NUMBEROFOBJECTIVESATT 287
00272 #define NUMBEROFCONSTRAINTSATT 288
00273 #define NUMBEROFOTHERVARIABLEOPTIONSATT 289
00274 #define NUMBEROFOTHEROBJECTIVEOPTIONSATT 290
00275 #define NUMBEROFOTHERCONSTRAINTOPTIONSATT 291
00276 #define NUMBEROFVARATT 292
00277 #define NUMBEROFOBJATT 293
00278 #define NUMBEROFCONATT 294
00279 #define NAMEATT 295
00280 #define IDXATT 296
00281 #define SOSIDXATT 297
00282 #define VALUEATT 298
00283 #define UNITATT 299
00284 #define DESCRIPTIONATT 300
00285 #define LBVALUEATT 301
00286 #define UBVALUEATT 302
00287 #define LBDUALVALUEATT 303
00288 #define UBDUALVALUEATT 304
00289 #define GENERALSTART 305
00290 #define GENERALEND 306
00291 #define SYSTEMSTART 307
00292 #define SYSTEMEND 308
00293 #define SERVICESTART 309
00294 #define SERVICEEND 310
00295 #define JOBSTART 311
00296 #define JOBEND 312
00297 #define OPTIMIZATIONSTART 313
00298 #define OPTIMIZATIONEND 314
00299 #define SERVICEURISTART 315
00300 #define SERVICEURIEND 316
00301 #define SERVICENAMESTART 317
00302 #define SERVICENAMEEND 318
00303 #define INSTANCENAMESTART 319
00304 #define INSTANCENAMEEND 320
00305 #define INSTANCELOCATIONSTART 321
00306 #define INSTANCELOCATIONEND 322
00307 #define JOBIDSTART 323
00308 #define JOBIDEND 324
00309 #define SOLVERTOINVOKESTART 325
00310 #define SOLVERTOINVOKEEND 326
00311 #define LICENSESTART 327
00312 #define LICENSEEND 328
00313 #define USERNAMESTART 329
00314 #define USERNAMEEND 330
00315 #define PASSWORDSTART 331
00316 #define PASSWORDEND 332
00317 #define CONTACTSTART 333
00318 #define CONTACTEND 334
00319 #define OTHEROPTIONSSTART 335
00320 #define OTHEROPTIONSEND 336
00321 #define OTHERSTART 337
00322 #define OTHEREND 338
00323 #define MINDISKSPACESTART 339
00324 #define MINDISKSPACEEND 340
00325 #define MINMEMORYSIZESTART 341
00326 #define MINMEMORYSIZEEND 342
00327 #define MINCPUSPEEDSTART 343
00328 #define MINCPUSPEEDEND 344
00329 #define MINCPUNUMBERSTART 345
00330 #define MINCPUNUMBEREND 346
00331 #define SERVICETYPESTART 347
00332 #define SERVICETYPEEND 348
00333 #define MAXTIMESTART 349
00334 #define MAXTIMEEND 350
00335 #define REQUESTEDSTARTTIMESTART 351
00336 #define REQUESTEDSTARTTIMEEND 352
00337 #define DEPENDENCIESSTART 353
00338 #define DEPENDENCIESEND 354
00339 #define REQUIREDDIRECTORIESSTART 355
00340 #define REQUIREDDIRECTORIESEND 356
00341 #define REQUIREDFILESSTART 357
00342 #define REQUIREDFILESEND 358
00343 #define PATHSTART 359
00344 #define PATHEND 360
00345 #define PATHPAIRSTART 361
00346 #define PATHPAIREND 362
00347 #define DIRECTORIESTOMAKESTART 363
00348 #define DIRECTORIESTOMAKEEND 364
00349 #define FILESTOMAKESTART 365
00350 #define FILESTOMAKEEND 366
00351 #define DIRECTORIESTODELETESTART 367
00352 #define DIRECTORIESTODELETEEND 368
00353 #define FILESTODELETESTART 369
00354 #define FILESTODELETEEND 370
00355 #define INPUTDIRECTORIESTOMOVESTART 371
00356 #define INPUTDIRECTORIESTOMOVEEND 372
00357 #define INPUTFILESTOMOVESTART 373
00358 #define INPUTFILESTOMOVEEND 374
00359 #define OUTPUTDIRECTORIESTOMOVESTART 375
00360 #define OUTPUTDIRECTORIESTOMOVEEND 376
00361 #define OUTPUTFILESTOMOVESTART 377
00362 #define OUTPUTFILESTOMOVEEND 378
00363 #define PROCESSESTOKILLSTART 379
00364 #define PROCESSESTOKILLEND 380
00365 #define PROCESSSTART 381
00366 #define PROCESSEND 382
00367 #define VARIABLESSTART 383
00368 #define VARIABLESEND 384
00369 #define INITIALVARIABLEVALUESSTART 385
00370 #define INITIALVARIABLEVALUESEND 386
00371 #define VARSTART 387
00372 #define VAREND 388
00373 #define INITIALVARIABLEVALUESSTRINGSTART 389
00374 #define INITIALVARIABLEVALUESSTRINGEND 390
00375 #define INITIALBASISSTATUSSTART 391
00376 #define INITIALBASISSTATUSEND 392
00377 #define INTEGERVARIABLEBRANCHINGWEIGHTSSTART 393
00378 #define INTEGERVARIABLEBRANCHINGWEIGHTSEND 394
00379 #define SOSVARIABLEBRANCHINGWEIGHTSSTART 395
00380 #define SOSVARIABLEBRANCHINGWEIGHTSEND 396
00381 #define SOSSTART 397
00382 #define SOSEND 398
00383 #define OBJECTIVESSTART 399
00384 #define OBJECTIVESEND 400
00385 #define INITIALOBJECTIVEVALUESSTART 401
00386 #define INITIALOBJECTIVEVALUESEND 402
00387 #define OBJSTART 403
00388 #define OBJEND 404
00389 #define INITIALOBJECTIVEBOUNDSSTART 405
00390 #define INITIALOBJECTIVEBOUNDSEND 406
00391 #define CONSTRAINTSSTART 407
00392 #define CONSTRAINTSEND 408
00393 #define INITIALCONSTRAINTVALUESSTART 409
00394 #define INITIALCONSTRAINTVALUESEND 410
00395 #define CONSTART 411
00396 #define CONEND 412
00397 #define INITIALDUALVALUESSTART 413
00398 #define INITIALDUALVALUESEND 414
00399 #define SOLVEROPTIONSSTART 415
00400 #define SOLVEROPTIONSEND 416
00401 #define SOLVEROPTIONSTART 417
00402 #define SOLVEROPTIONEND 418
00403 #define DUMMY 419
00404
00405
00406
00407
00408
00409
00410
00411
00412
00413 #include "OSDataStructures.h"
00414 #include "OSMathUtil.h"
00415 #include "OSParameters.h"
00416 #include "OSConfig.h"
00417 #include "OSGeneral.h"
00418 #include "OSErrorClass.h"
00419 #include "OSOption.h"
00420 #include "OSoLParserData.h"
00421 #include <iostream>
00422 #include <sstream>
00423 #include <stdio.h>
00424
00425
00426 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00427 YY_BUFFER_STATE osol_scan_string (const char *yy_str , void* yyscanner );
00428 int osollex_init(void** ptr_yy_globals);
00429 int osollex_destroy (void* yyscanner );
00430 int osolget_lineno( void* yyscanner);
00431 char *osolget_text (void* yyscanner );
00432 void osolset_lineno (int line_number , void* yyscanner );
00433 void osolset_extra (OSoLParserData* parserData , void* yyscanner );
00434 void yygetOSOption(const char *ch, OSOption* m_osoption, OSoLParserData *m_parserData ) throw(ErrorClass);
00435
00436
00437
00438
00439
00440 #ifndef YYDEBUG
00441 # define YYDEBUG 0
00442 #endif
00443
00444
00445 #ifdef YYERROR_VERBOSE
00446 # undef YYERROR_VERBOSE
00447 # define YYERROR_VERBOSE 1
00448 #else
00449 # define YYERROR_VERBOSE 0
00450 #endif
00451
00452
00453 #ifndef YYTOKEN_TABLE
00454 # define YYTOKEN_TABLE 0
00455 #endif
00456
00457 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
00458 typedef union YYSTYPE
00459
00460 {
00461 double dval;
00462 int ival;
00463 char* sval;
00464 }
00465
00466
00467 YYSTYPE;
00468 # define yystype YYSTYPE
00469 # define YYSTYPE_IS_DECLARED 1
00470 # define YYSTYPE_IS_TRIVIAL 1
00471 #endif
00472
00473 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
00474 typedef struct YYLTYPE
00475 {
00476 int first_line;
00477 int first_column;
00478 int last_line;
00479 int last_column;
00480 } YYLTYPE;
00481 # define yyltype YYLTYPE
00482 # define YYLTYPE_IS_DECLARED 1
00483 # define YYLTYPE_IS_TRIVIAL 1
00484 #endif
00485
00486
00487
00488
00489
00490
00491 void osolerror(YYLTYPE* type, OSOption *osoption, OSoLParserData *parserData, const char* errormsg ) ;
00492 int osollex(YYSTYPE* lvalp, YYLTYPE* llocp, void* scanner);
00493
00494 #define scanner parserData->scanner
00495
00496
00497
00498
00499
00500 #ifdef short
00501 # undef short
00502 #endif
00503
00504 #ifdef YYTYPE_UINT8
00505 typedef YYTYPE_UINT8 yytype_uint8;
00506 #else
00507 typedef unsigned char yytype_uint8;
00508 #endif
00509
00510 #ifdef YYTYPE_INT8
00511 typedef YYTYPE_INT8 yytype_int8;
00512 #elif (defined __STDC__ || defined __C99__FUNC__ \
00513 || defined __cplusplus || defined _MSC_VER)
00514 typedef signed char yytype_int8;
00515 #else
00516 typedef short int yytype_int8;
00517 #endif
00518
00519 #ifdef YYTYPE_UINT16
00520 typedef YYTYPE_UINT16 yytype_uint16;
00521 #else
00522 typedef unsigned short int yytype_uint16;
00523 #endif
00524
00525 #ifdef YYTYPE_INT16
00526 typedef YYTYPE_INT16 yytype_int16;
00527 #else
00528 typedef short int yytype_int16;
00529 #endif
00530
00531 #ifndef YYSIZE_T
00532 # ifdef __SIZE_TYPE__
00533 # define YYSIZE_T __SIZE_TYPE__
00534 # elif defined size_t
00535 # define YYSIZE_T size_t
00536 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
00537 || defined __cplusplus || defined _MSC_VER)
00538 # include <stddef.h>
00539 # define YYSIZE_T size_t
00540 # else
00541 # define YYSIZE_T unsigned int
00542 # endif
00543 #endif
00544
00545 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
00546
00547 #ifndef YY_
00548 # if defined YYENABLE_NLS && YYENABLE_NLS
00549 # if ENABLE_NLS
00550 # include <libintl.h>
00551 # define YY_(msgid) dgettext ("bison-runtime", msgid)
00552 # endif
00553 # endif
00554 # ifndef YY_
00555 # define YY_(msgid) msgid
00556 # endif
00557 #endif
00558
00559
00560 #if ! defined lint || defined __GNUC__
00561 # define YYUSE(e) ((void) (e))
00562 #else
00563 # define YYUSE(e)
00564 #endif
00565
00566
00567 #ifndef lint
00568 # define YYID(n) (n)
00569 #else
00570 #if (defined __STDC__ || defined __C99__FUNC__ \
00571 || defined __cplusplus || defined _MSC_VER)
00572 static int
00573 YYID (int i)
00574 #else
00575 static int
00576 YYID (i)
00577 int i;
00578 #endif
00579 {
00580 return i;
00581 }
00582 #endif
00583
00584 #if ! defined yyoverflow || YYERROR_VERBOSE
00585
00586
00587
00588 # ifdef YYSTACK_USE_ALLOCA
00589 # if YYSTACK_USE_ALLOCA
00590 # ifdef __GNUC__
00591 # define YYSTACK_ALLOC __builtin_alloca
00592 # elif defined __BUILTIN_VA_ARG_INCR
00593 # include <alloca.h>
00594 # elif defined _AIX
00595 # define YYSTACK_ALLOC __alloca
00596 # elif defined _MSC_VER
00597 # include <malloc.h>
00598 # define alloca _alloca
00599 # else
00600 # define YYSTACK_ALLOC alloca
00601 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00602 || defined __cplusplus || defined _MSC_VER)
00603 # include <stdlib.h>
00604 # ifndef _STDLIB_H
00605 # define _STDLIB_H 1
00606 # endif
00607 # endif
00608 # endif
00609 # endif
00610 # endif
00611
00612 # ifdef YYSTACK_ALLOC
00613
00614 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
00615 # ifndef YYSTACK_ALLOC_MAXIMUM
00616
00617
00618
00619
00620 # define YYSTACK_ALLOC_MAXIMUM 4032
00621 # endif
00622 # else
00623 # define YYSTACK_ALLOC YYMALLOC
00624 # define YYSTACK_FREE YYFREE
00625 # ifndef YYSTACK_ALLOC_MAXIMUM
00626 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
00627 # endif
00628 # if (defined __cplusplus && ! defined _STDLIB_H \
00629 && ! ((defined YYMALLOC || defined malloc) \
00630 && (defined YYFREE || defined free)))
00631 # include <stdlib.h>
00632 # ifndef _STDLIB_H
00633 # define _STDLIB_H 1
00634 # endif
00635 # endif
00636 # ifndef YYMALLOC
00637 # define YYMALLOC malloc
00638 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00639 || defined __cplusplus || defined _MSC_VER)
00640 void *malloc (YYSIZE_T);
00641 # endif
00642 # endif
00643 # ifndef YYFREE
00644 # define YYFREE free
00645 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00646 || defined __cplusplus || defined _MSC_VER)
00647 void free (void *);
00648 # endif
00649 # endif
00650 # endif
00651 #endif
00652
00653
00654 #if (! defined yyoverflow \
00655 && (! defined __cplusplus \
00656 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
00657 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
00658
00659
00660 union yyalloc
00661 {
00662 yytype_int16 yyss;
00663 YYSTYPE yyvs;
00664 YYLTYPE yyls;
00665 };
00666
00667
00668 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
00669
00670
00671
00672 # define YYSTACK_BYTES(N) \
00673 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
00674 + 2 * YYSTACK_GAP_MAXIMUM)
00675
00676
00677
00678 # ifndef YYCOPY
00679 # if defined __GNUC__ && 1 < __GNUC__
00680 # define YYCOPY(To, From, Count) \
00681 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00682 # else
00683 # define YYCOPY(To, From, Count) \
00684 do \
00685 { \
00686 YYSIZE_T yyi; \
00687 for (yyi = 0; yyi < (Count); yyi++) \
00688 (To)[yyi] = (From)[yyi]; \
00689 } \
00690 while (YYID (0))
00691 # endif
00692 # endif
00693
00694
00695
00696
00697
00698
00699 # define YYSTACK_RELOCATE(Stack) \
00700 do \
00701 { \
00702 YYSIZE_T yynewbytes; \
00703 YYCOPY (&yyptr->Stack, Stack, yysize); \
00704 Stack = &yyptr->Stack; \
00705 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
00706 yyptr += yynewbytes / sizeof (*yyptr); \
00707 } \
00708 while (YYID (0))
00709
00710 #endif
00711
00712
00713 #define YYFINAL 6
00714
00715 #define YYLAST 795
00716
00717
00718 #define YYNTOKENS 165
00719
00720 #define YYNNTS 522
00721
00722 #define YYNRULES 775
00723
00724 #define YYNSTATES 1300
00725
00726
00727 #define YYUNDEFTOK 2
00728 #define YYMAXUTOK 419
00729
00730 #define YYTRANSLATE(YYX) \
00731 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
00732
00733
00734 static const yytype_uint8 yytranslate[] =
00735 {
00736 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00737 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00738 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00739 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00740 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00741 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00742 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00743 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00744 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00745 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00746 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00747 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00748 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00749 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00750 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00751 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00752 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00753 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00754 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00755 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00756 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00757 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00758 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00759 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00760 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00761 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
00762 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00763 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
00764 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
00765 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
00766 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
00767 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
00768 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
00769 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
00770 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
00771 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
00772 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
00773 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
00774 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
00775 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
00776 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
00777 155, 156, 157, 158, 159, 160, 161, 162, 163, 164
00778 };
00779
00780 #if YYDEBUG
00781
00782
00783 static const yytype_uint16 yyprhs[] =
00784 {
00785 0, 0, 3, 7, 10, 12, 16, 22, 23, 26,
00786 28, 32, 34, 35, 38, 40, 42, 44, 46, 48,
00787 50, 52, 54, 56, 58, 60, 63, 65, 67, 70,
00788 71, 76, 79, 81, 83, 86, 87, 92, 95, 97,
00789 99, 102, 103, 108, 112, 114, 115, 116, 121, 123,
00790 127, 128, 130, 133, 135, 137, 140, 141, 146, 149,
00791 151, 153, 156, 157, 162, 165, 167, 169, 172, 173,
00792 178, 181, 183, 185, 188, 189, 194, 197, 199, 201,
00793 204, 205, 210, 214, 216, 217, 218, 223, 225, 229,
00794 230, 232, 237, 239, 244, 247, 248, 251, 252, 257,
00795 258, 261, 263, 265, 267, 268, 273, 274, 279, 280,
00796 285, 287, 290, 291, 294, 296, 300, 302, 303, 306,
00797 308, 310, 312, 314, 316, 320, 322, 323, 324, 329,
00798 331, 334, 338, 342, 346, 348, 349, 350, 355, 357,
00799 360, 364, 368, 372, 374, 375, 376, 381, 383, 386,
00800 390, 394, 397, 399, 401, 404, 405, 410, 415, 417,
00801 422, 425, 426, 429, 430, 435, 436, 439, 441, 443,
00802 445, 446, 451, 452, 457, 458, 463, 465, 468, 469,
00803 472, 474, 478, 480, 481, 484, 486, 488, 491, 493,
00804 495, 498, 499, 504, 509, 511, 516, 519, 520, 523,
00805 524, 529, 530, 533, 535, 537, 539, 540, 545, 546,
00806 551, 552, 557, 559, 562, 563, 566, 568, 572, 574,
00807 575, 578, 580, 582, 584, 586, 588, 590, 592, 594,
00808 596, 598, 600, 602, 604, 606, 608, 612, 614, 615,
00809 616, 621, 623, 626, 630, 634, 637, 639, 641, 644,
00810 645, 650, 656, 658, 663, 664, 667, 668, 674, 680,
00811 682, 687, 688, 691, 692, 698, 704, 706, 711, 712,
00812 715, 716, 722, 728, 730, 735, 736, 739, 740, 746,
00813 752, 754, 759, 760, 763, 764, 770, 776, 778, 783,
00814 784, 787, 791, 793, 794, 797, 799, 801, 803, 804,
00815 809, 810, 815, 816, 821, 824, 826, 832, 834, 839,
00816 840, 843, 847, 849, 850, 853, 855, 857, 859, 860,
00817 865, 866, 871, 872, 877, 880, 882, 888, 890, 895,
00818 896, 899, 903, 905, 906, 909, 911, 913, 915, 916,
00819 921, 922, 927, 928, 933, 936, 938, 944, 946, 951,
00820 952, 955, 959, 961, 962, 965, 967, 969, 971, 972,
00821 977, 978, 983, 984, 989, 992, 994, 1000, 1002, 1007,
00822 1008, 1011, 1012, 1018, 1024, 1026, 1031, 1032, 1035, 1036,
00823 1042, 1048, 1050, 1055, 1056, 1059, 1060, 1066, 1071, 1073,
00824 1078, 1081, 1082, 1085, 1086, 1091, 1092, 1095, 1097, 1099,
00825 1101, 1102, 1107, 1108, 1113, 1114, 1119, 1121, 1124, 1125,
00826 1129, 1131, 1132, 1135, 1137, 1139, 1141, 1146, 1151, 1156,
00827 1160, 1162, 1167, 1168, 1172, 1174, 1175, 1180, 1189, 1191,
00828 1192, 1198, 1203, 1204, 1207, 1211, 1213, 1214, 1217, 1219,
00829 1221, 1226, 1227, 1232, 1235, 1237, 1238, 1244, 1249, 1250,
00830 1253, 1257, 1259, 1260, 1263, 1265, 1267, 1272, 1273, 1278,
00831 1281, 1283, 1284, 1290, 1295, 1296, 1299, 1303, 1305, 1306,
00832 1309, 1311, 1313, 1318, 1319, 1324, 1327, 1329, 1330, 1336,
00833 1341, 1342, 1345, 1349, 1351, 1352, 1355, 1357, 1359, 1364,
00834 1365, 1370, 1373, 1375, 1376, 1382, 1387, 1388, 1391, 1395,
00835 1397, 1398, 1401, 1403, 1405, 1407, 1412, 1417, 1422, 1427,
00836 1431, 1433, 1434, 1437, 1441, 1443, 1444, 1447, 1449, 1451,
00837 1456, 1457, 1462, 1465, 1467, 1468, 1471, 1475, 1477, 1478,
00838 1481, 1483, 1485, 1487, 1489, 1491, 1493, 1495, 1500, 1501,
00839 1506, 1507, 1512, 1513, 1518, 1519, 1524, 1525, 1530, 1531,
00840 1536, 1540, 1541, 1544, 1548, 1550, 1551, 1554, 1556, 1558,
00841 1560, 1562, 1567, 1568, 1573, 1574, 1579, 1580, 1585, 1588,
00842 1590, 1591, 1595, 1597, 1598, 1603, 1609, 1611, 1612, 1618,
00843 1623, 1624, 1627, 1631, 1633, 1634, 1637, 1639, 1641, 1646,
00844 1647, 1652, 1655, 1657, 1658, 1664, 1669, 1670, 1673, 1677,
00845 1679, 1680, 1683, 1685, 1687, 1689, 1694, 1695, 1700, 1701,
00846 1706, 1709, 1711, 1712, 1715, 1719, 1721, 1722, 1725, 1727,
00847 1729, 1731, 1733, 1735, 1737, 1739, 1744, 1745, 1750, 1751,
00848 1756, 1757, 1762, 1763, 1768, 1769, 1774, 1775, 1780, 1784,
00849 1785, 1788, 1792, 1794, 1795, 1798, 1800, 1802, 1804, 1806,
00850 1811, 1812, 1817, 1818, 1823, 1824, 1829, 1832, 1834, 1835,
00851 1839, 1841, 1842, 1847, 1853, 1855, 1856, 1862, 1867, 1868,
00852 1871, 1875, 1877, 1878, 1881, 1883, 1885, 1890, 1891, 1896,
00853 1899, 1901, 1902, 1908, 1913, 1914, 1917, 1921, 1923, 1924,
00854 1927, 1929, 1931, 1933, 1938, 1939, 1944, 1945, 1950, 1953,
00855 1955, 1956, 1959, 1963, 1965, 1966, 1969, 1971, 1973, 1975,
00856 1977, 1979, 1981, 1983, 1988, 1989, 1994, 1995, 2000, 2001,
00857 2006, 2007, 2012, 2013, 2018, 2019, 2024, 2028, 2029, 2032,
00858 2036, 2038, 2039, 2042, 2044, 2046, 2048, 2050, 2055, 2056,
00859 2061, 2062, 2067, 2068, 2073, 2076, 2078, 2079, 2085, 2087,
00860 2092, 2093, 2096, 2097, 2102, 2103, 2106, 2108, 2110, 2112,
00861 2114, 2116, 2118, 2119, 2124, 2125, 2130, 2131, 2136, 2137,
00862 2142, 2143, 2148, 2149, 2154, 2157
00863 };
00864
00865
00866 static const yytype_int16 yyrhs[] =
00867 {
00868 166, 0, -1, 167, 168, 14, -1, 167, 10, -1,
00869 12, -1, 11, 13, 9, -1, 169, 234, 274, 299,
00870 437, -1, -1, 170, 171, -1, 50, -1, 9, 172,
00871 51, -1, 10, -1, -1, 172, 173, -1, 174, -1,
00872 178, -1, 182, -1, 186, -1, 192, -1, 196, -1,
00873 200, -1, 204, -1, 208, -1, 212, -1, 218, -1,
00874 175, 176, -1, 60, -1, 10, -1, 9, 61, -1,
00875 -1, 9, 4, 177, 61, -1, 179, 180, -1, 62,
00876 -1, 10, -1, 9, 63, -1, -1, 9, 4, 181,
00877 63, -1, 183, 184, -1, 64, -1, 10, -1, 9,
00878 65, -1, -1, 9, 4, 185, 65, -1, 187, 188,
00879 190, -1, 66, -1, -1, -1, 15, 3, 189, 7,
00880 -1, 10, -1, 9, 191, 67, -1, -1, 4, -1,
00881 193, 194, -1, 68, -1, 10, -1, 9, 69, -1,
00882 -1, 9, 4, 195, 69, -1, 197, 198, -1, 70,
00883 -1, 10, -1, 9, 71, -1, -1, 9, 4, 199,
00884 71, -1, 201, 202, -1, 72, -1, 10, -1, 9,
00885 73, -1, -1, 9, 4, 203, 73, -1, 205, 206,
00886 -1, 74, -1, 10, -1, 9, 75, -1, -1, 9,
00887 4, 207, 75, -1, 209, 210, -1, 76, -1, 10,
00888 -1, 9, 77, -1, -1, 9, 4, 211, 77, -1,
00889 213, 214, 216, -1, 78, -1, -1, -1, 16, 3,
00890 215, 7, -1, 10, -1, 9, 217, 79, -1, -1,
00891 4, -1, 219, 220, 9, 221, -1, 80, -1, 17,
00892 7, 5, 7, -1, 222, 81, -1, -1, 222, 223,
00893 -1, -1, 82, 224, 225, 233, -1, -1, 225, 226,
00894 -1, 227, -1, 229, -1, 231, -1, -1, 40, 3,
00895 228, 7, -1, -1, 43, 3, 230, 7, -1, -1,
00896 45, 3, 232, 7, -1, 10, -1, 9, 83, -1,
00897 -1, 235, 236, -1, 52, -1, 9, 237, 53, -1,
00898 10, -1, -1, 237, 238, -1, 239, -1, 244, -1,
00899 249, -1, 254, -1, 258, -1, 240, 241, 243, -1,
00900 84, -1, -1, -1, 44, 3, 242, 7, -1, 10,
00901 -1, 9, 85, -1, 9, 6, 85, -1, 9, 5,
00902 85, -1, 245, 246, 248, -1, 86, -1, -1, -1,
00903 44, 3, 247, 7, -1, 10, -1, 9, 87, -1,
00904 9, 6, 87, -1, 9, 5, 87, -1, 250, 251,
00905 253, -1, 88, -1, -1, -1, 44, 3, 252, 7,
00906 -1, 10, -1, 9, 89, -1, 9, 6, 89, -1,
00907 9, 5, 89, -1, 255, 256, -1, 90, -1, 10,
00908 -1, 9, 91, -1, -1, 9, 5, 257, 91, -1,
00909 259, 260, 9, 261, -1, 80, -1, 17, 7, 5,
00910 7, -1, 262, 81, -1, -1, 262, 263, -1, -1,
00911 82, 264, 265, 273, -1, -1, 265, 266, -1, 267,
00912 -1, 269, -1, 271, -1, -1, 40, 3, 268, 7,
00913 -1, -1, 43, 3, 270, 7, -1, -1, 45, 3,
00914 272, 7, -1, 10, -1, 9, 83, -1, -1, 275,
00915 276, -1, 54, -1, 9, 277, 55, -1, 10, -1,
00916 -1, 277, 278, -1, 279, -1, 283, -1, 280, 281,
00917 -1, 92, -1, 10, -1, 9, 93, -1, -1, 9,
00918 4, 282, 93, -1, 284, 285, 9, 286, -1, 80,
00919 -1, 17, 7, 5, 7, -1, 287, 81, -1, -1,
00920 287, 288, -1, -1, 82, 289, 290, 298, -1, -1,
00921 290, 291, -1, 292, -1, 294, -1, 296, -1, -1,
00922 40, 3, 293, 7, -1, -1, 43, 3, 295, 7,
00923 -1, -1, 45, 3, 297, 7, -1, 10, -1, 9,
00924 83, -1, -1, 300, 301, -1, 56, -1, 9, 302,
00925 57, -1, 10, -1, -1, 302, 303, -1, 304, -1,
00926 309, -1, 313, -1, 319, -1, 325, -1, 331, -1,
00927 337, -1, 343, -1, 358, -1, 373, -1, 388, -1,
00928 403, -1, 409, -1, 415, -1, 421, -1, 305, 306,
00929 308, -1, 94, -1, -1, -1, 44, 3, 307, 7,
00930 -1, 10, -1, 9, 95, -1, 9, 6, 95, -1,
00931 9, 5, 95, -1, 310, 311, -1, 96, -1, 10,
00932 -1, 9, 97, -1, -1, 9, 4, 312, 97, -1,
00933 314, 315, 9, 316, 99, -1, 98, -1, 18, 7,
00934 5, 7, -1, -1, 316, 317, -1, -1, 68, 9,
00935 4, 318, 69, -1, 320, 321, 9, 322, 101, -1,
00936 100, -1, 19, 7, 5, 7, -1, -1, 322, 323,
00937 -1, -1, 104, 9, 4, 324, 105, -1, 326, 327,
00938 9, 328, 103, -1, 102, -1, 19, 7, 5, 7,
00939 -1, -1, 328, 329, -1, -1, 104, 9, 4, 330,
00940 105, -1, 332, 333, 9, 334, 109, -1, 108, -1,
00941 19, 7, 5, 7, -1, -1, 334, 335, -1, -1,
00942 104, 9, 4, 336, 105, -1, 338, 339, 9, 340,
00943 111, -1, 110, -1, 19, 7, 5, 7, -1, -1,
00944 340, 341, -1, -1, 104, 9, 4, 342, 105, -1,
00945 344, 345, 9, 346, 117, -1, 116, -1, 20, 7,
00946 5, 7, -1, -1, 346, 347, -1, 348, 349, 357,
00947 -1, 106, -1, -1, 349, 350, -1, 351, -1, 353,
00948 -1, 355, -1, -1, 21, 3, 352, 7, -1, -1,
00949 22, 3, 354, 7, -1, -1, 23, 3, 356, 7,
00950 -1, 9, 107, -1, 10, -1, 359, 360, 9, 361,
00951 119, -1, 118, -1, 20, 7, 5, 7, -1, -1,
00952 361, 362, -1, 363, 364, 372, -1, 106, -1, -1,
00953 364, 365, -1, 366, -1, 368, -1, 370, -1, -1,
00954 21, 3, 367, 7, -1, -1, 22, 3, 369, 7,
00955 -1, -1, 23, 3, 371, 7, -1, 9, 107, -1,
00956 10, -1, 374, 375, 9, 376, 121, -1, 120, -1,
00957 20, 7, 5, 7, -1, -1, 376, 377, -1, 378,
00958 379, 387, -1, 106, -1, -1, 379, 380, -1, 381,
00959 -1, 383, -1, 385, -1, -1, 21, 3, 382, 7,
00960 -1, -1, 22, 3, 384, 7, -1, -1, 23, 3,
00961 386, 7, -1, 9, 107, -1, 10, -1, 389, 390,
00962 9, 391, 123, -1, 122, -1, 20, 7, 5, 7,
00963 -1, -1, 391, 392, -1, 393, 394, 402, -1, 106,
00964 -1, -1, 394, 395, -1, 396, -1, 398, -1, 400,
00965 -1, -1, 21, 3, 397, 7, -1, -1, 22, 3,
00966 399, 7, -1, -1, 23, 3, 401, 7, -1, 9,
00967 107, -1, 10, -1, 404, 405, 9, 406, 115, -1,
00968 114, -1, 19, 7, 5, 7, -1, -1, 406, 407,
00969 -1, -1, 104, 9, 4, 408, 105, -1, 410, 411,
00970 9, 412, 113, -1, 112, -1, 19, 7, 5, 7,
00971 -1, -1, 412, 413, -1, -1, 104, 9, 4, 414,
00972 105, -1, 416, 417, 9, 418, 125, -1, 124, -1,
00973 28, 7, 5, 7, -1, -1, 418, 419, -1, -1,
00974 126, 9, 4, 420, 127, -1, 422, 423, 9, 424,
00975 -1, 80, -1, 17, 7, 5, 7, -1, 425, 81,
00976 -1, -1, 425, 426, -1, -1, 82, 427, 428, 436,
00977 -1, -1, 428, 429, -1, 430, -1, 432, -1, 434,
00978 -1, -1, 40, 3, 431, 7, -1, -1, 43, 3,
00979 433, 7, -1, -1, 45, 3, 435, 7, -1, 10,
00980 -1, 9, 83, -1, -1, 438, 439, 444, -1, 58,
00981 -1, -1, 439, 440, -1, 441, -1, 442, -1, 443,
00982 -1, 31, 7, 5, 7, -1, 33, 7, 5, 7,
00983 -1, 32, 7, 5, 7, -1, 9, 445, 59, -1,
00984 10, -1, 446, 546, 606, 666, -1, -1, 447, 448,
00985 449, -1, 128, -1, -1, 34, 7, 5, 7, -1,
00986 9, 450, 461, 472, 483, 494, 514, 129, -1, 10,
00987 -1, -1, 130, 451, 9, 452, 131, -1, 37, 7,
00988 5, 7, -1, -1, 452, 453, -1, 454, 455, 460,
00989 -1, 132, -1, -1, 455, 456, -1, 457, -1, 458,
00990 -1, 41, 7, 5, 7, -1, -1, 43, 3, 459,
00991 7, -1, 9, 133, -1, 10, -1, -1, 134, 462,
00992 9, 463, 135, -1, 37, 7, 5, 7, -1, -1,
00993 463, 464, -1, 465, 466, 471, -1, 132, -1, -1,
00994 466, 467, -1, 468, -1, 469, -1, 41, 7, 5,
00995 7, -1, -1, 43, 3, 470, 7, -1, 9, 133,
00996 -1, 10, -1, -1, 136, 473, 9, 474, 137, -1,
00997 37, 7, 5, 7, -1, -1, 474, 475, -1, 476,
00998 477, 482, -1, 132, -1, -1, 477, 478, -1, 479,
00999 -1, 480, -1, 41, 7, 5, 7, -1, -1, 43,
01000 3, 481, 7, -1, 9, 133, -1, 10, -1, -1,
01001 138, 484, 9, 485, 139, -1, 37, 7, 5, 7,
01002 -1, -1, 485, 486, -1, 487, 488, 493, -1, 132,
01003 -1, -1, 488, 489, -1, 490, -1, 491, -1, 41,
01004 7, 5, 7, -1, -1, 43, 3, 492, 7, -1,
01005 9, 133, -1, 10, -1, -1, 140, 495, 9, 496,
01006 141, -1, 30, 7, 5, 7, -1, -1, 496, 497,
01007 -1, 498, 499, 504, -1, 142, -1, -1, 499, 500,
01008 -1, 501, -1, 503, -1, 502, -1, 42, 7, 5,
01009 7, -1, 27, 7, 6, 7, -1, 27, 7, 5,
01010 7, -1, 37, 7, 5, 7, -1, 9, 505, 143,
01011 -1, 10, -1, -1, 505, 506, -1, 507, 508, 513,
01012 -1, 132, -1, -1, 508, 509, -1, 510, -1, 511,
01013 -1, 41, 7, 5, 7, -1, -1, 43, 3, 512,
01014 7, -1, 9, 133, -1, 10, -1, -1, 514, 515,
01015 -1, 516, 517, 532, -1, 82, -1, -1, 517, 518,
01016 -1, 519, -1, 520, -1, 522, -1, 524, -1, 526,
01017 -1, 528, -1, 530, -1, 37, 7, 5, 7, -1,
01018 -1, 40, 3, 521, 7, -1, -1, 43, 3, 523,
01019 7, -1, -1, 24, 3, 525, 7, -1, -1, 25,
01020 3, 527, 7, -1, -1, 26, 3, 529, 7, -1,
01021 -1, 45, 3, 531, 7, -1, 9, 533, 83, -1,
01022 -1, 533, 534, -1, 535, 536, 545, -1, 132, -1,
01023 -1, 536, 537, -1, 538, -1, 539, -1, 541, -1,
01024 543, -1, 41, 7, 5, 7, -1, -1, 43, 3,
01025 540, 7, -1, -1, 46, 3, 542, 7, -1, -1,
01026 47, 3, 544, 7, -1, 9, 133, -1, 10, -1,
01027 -1, 547, 548, 549, -1, 144, -1, -1, 35, 7,
01028 5, 7, -1, 9, 550, 561, 574, 145, -1, 10,
01029 -1, -1, 146, 551, 9, 552, 147, -1, 38, 7,
01030 5, 7, -1, -1, 552, 553, -1, 554, 555, 560,
01031 -1, 148, -1, -1, 555, 556, -1, 557, -1, 558,
01032 -1, 41, 7, 5, 7, -1, -1, 43, 3, 559,
01033 7, -1, 9, 149, -1, 10, -1, -1, 150, 562,
01034 9, 563, 151, -1, 38, 7, 5, 7, -1, -1,
01035 563, 564, -1, 565, 566, 573, -1, 148, -1, -1,
01036 566, 567, -1, 568, -1, 569, -1, 571, -1, 41,
01037 7, 5, 7, -1, -1, 46, 3, 570, 7, -1,
01038 -1, 47, 3, 572, 7, -1, 9, 149, -1, 10,
01039 -1, -1, 574, 575, -1, 576, 577, 592, -1, 82,
01040 -1, -1, 577, 578, -1, 579, -1, 580, -1, 582,
01041 -1, 584, -1, 586, -1, 588, -1, 590, -1, 38,
01042 7, 5, 7, -1, -1, 40, 3, 581, 7, -1,
01043 -1, 43, 3, 583, 7, -1, -1, 24, 3, 585,
01044 7, -1, -1, 25, 3, 587, 7, -1, -1, 26,
01045 3, 589, 7, -1, -1, 45, 3, 591, 7, -1,
01046 9, 593, 83, -1, -1, 593, 594, -1, 595, 596,
01047 605, -1, 148, -1, -1, 596, 597, -1, 598, -1,
01048 599, -1, 601, -1, 603, -1, 41, 7, 5, 7,
01049 -1, -1, 43, 3, 600, 7, -1, -1, 46, 3,
01050 602, 7, -1, -1, 47, 3, 604, 7, -1, 9,
01051 133, -1, 10, -1, -1, 607, 608, 609, -1, 152,
01052 -1, -1, 36, 7, 5, 7, -1, 9, 610, 621,
01053 634, 153, -1, 10, -1, -1, 154, 611, 9, 612,
01054 155, -1, 39, 7, 5, 7, -1, -1, 612, 613,
01055 -1, 614, 615, 620, -1, 156, -1, -1, 615, 616,
01056 -1, 617, -1, 618, -1, 41, 7, 5, 7, -1,
01057 -1, 43, 3, 619, 7, -1, 9, 157, -1, 10,
01058 -1, -1, 158, 622, 9, 623, 159, -1, 39, 7,
01059 5, 7, -1, -1, 623, 624, -1, 625, 626, 633,
01060 -1, 156, -1, -1, 626, 627, -1, 628, -1, 629,
01061 -1, 631, -1, 41, 7, 5, 7, -1, -1, 48,
01062 3, 630, 7, -1, -1, 49, 3, 632, 7, -1,
01063 9, 157, -1, 10, -1, -1, 634, 635, -1, 636,
01064 637, 652, -1, 82, -1, -1, 637, 638, -1, 639,
01065 -1, 640, -1, 642, -1, 644, -1, 646, -1, 648,
01066 -1, 650, -1, 39, 7, 5, 7, -1, -1, 40,
01067 3, 641, 7, -1, -1, 43, 3, 643, 7, -1,
01068 -1, 24, 3, 645, 7, -1, -1, 25, 3, 647,
01069 7, -1, -1, 26, 3, 649, 7, -1, -1, 45,
01070 3, 651, 7, -1, 9, 653, 83, -1, -1, 653,
01071 654, -1, 655, 656, 665, -1, 156, -1, -1, 656,
01072 657, -1, 658, -1, 659, -1, 661, -1, 663, -1,
01073 41, 7, 5, 7, -1, -1, 43, 3, 660, 7,
01074 -1, -1, 46, 3, 662, 7, -1, -1, 47, 3,
01075 664, 7, -1, 9, 157, -1, 10, -1, -1, 667,
01076 668, 9, 669, 161, -1, 160, -1, 29, 7, 5,
01077 7, -1, -1, 669, 670, -1, -1, 162, 671, 672,
01078 686, -1, -1, 672, 673, -1, 674, -1, 676, -1,
01079 678, -1, 680, -1, 682, -1, 684, -1, -1, 40,
01080 3, 675, 7, -1, -1, 43, 3, 677, 7, -1,
01081 -1, 24, 3, 679, 7, -1, -1, 25, 3, 681,
01082 7, -1, -1, 26, 3, 683, 7, -1, -1, 45,
01083 3, 685, 7, -1, 9, 163, -1, 10, -1
01084 };
01085
01086
01087 static const yytype_uint16 yyrline[] =
01088 {
01089 0, 135, 135, 136, 138, 139, 142, 144, 144, 146,
01090 157, 158, 160, 160, 162, 162, 162, 162, 162, 163,
01091 163, 163, 163, 163, 163, 166, 168, 177, 178, 179,
01092 179, 182, 184, 193, 194, 195, 195, 198, 200, 209,
01093 210, 211, 211, 214, 216, 227, 228, 227, 236, 237,
01094 239, 239, 242, 244, 253, 254, 255, 255, 258, 260,
01095 269, 270, 271, 271, 274, 276, 285, 286, 287, 287,
01096 290, 292, 301, 302, 303, 303, 306, 308, 317, 318,
01097 319, 319, 322, 324, 335, 336, 335, 344, 345, 347,
01098 347, 350, 352, 362, 370, 375, 375, 378, 377, 393,
01099 393, 395, 395, 395, 398, 397, 409, 408, 420, 419,
01100 430, 430, 433, 433, 435, 446, 447, 449, 449, 451,
01101 451, 451, 451, 451, 453, 455, 466, 467, 466, 475,
01102 476, 477, 482, 489, 491, 502, 503, 502, 511, 512,
01103 513, 518, 526, 528, 539, 540, 539, 548, 549, 550,
01104 555, 563, 565, 574, 575, 577, 576, 584, 586, 596,
01105 604, 609, 609, 612, 611, 626, 626, 628, 628, 628,
01106 631, 630, 642, 641, 654, 653, 664, 664, 667, 667,
01107 669, 680, 681, 683, 683, 685, 685, 687, 689, 699,
01108 700, 702, 701, 710, 712, 722, 730, 735, 735, 738,
01109 737, 752, 752, 754, 754, 754, 757, 756, 768, 767,
01110 779, 778, 789, 789, 792, 792, 794, 804, 805, 807,
01111 807, 809, 809, 809, 809, 809, 810, 810, 810, 810,
01112 810, 811, 811, 811, 811, 811, 814, 816, 827, 828,
01113 827, 836, 837, 838, 843, 850, 852, 862, 863, 864,
01114 864, 866, 868, 878, 885, 885, 888, 887, 900, 903,
01115 913, 920, 920, 922, 922, 934, 937, 947, 954, 954,
01116 956, 956, 968, 971, 980, 987, 987, 990, 989, 1001,
01117 1004, 1014, 1021, 1021, 1024, 1023, 1035, 1038, 1048, 1057,
01118 1057, 1059, 1071, 1077, 1077, 1079, 1079, 1079, 1082, 1081,
01119 1093, 1092, 1104, 1103, 1115, 1115, 1118, 1121, 1131, 1139,
01120 1139, 1141, 1153, 1159, 1159, 1161, 1161, 1161, 1164, 1163,
01121 1175, 1174, 1186, 1185, 1197, 1197, 1200, 1203, 1213, 1222,
01122 1222, 1224, 1236, 1242, 1242, 1244, 1244, 1244, 1247, 1246,
01123 1258, 1257, 1269, 1268, 1280, 1280, 1283, 1286, 1296, 1304,
01124 1304, 1306, 1318, 1324, 1324, 1326, 1326, 1326, 1329, 1328,
01125 1340, 1339, 1351, 1350, 1362, 1362, 1365, 1368, 1378, 1385,
01126 1385, 1388, 1387, 1399, 1402, 1412, 1419, 1419, 1422, 1421,
01127 1433, 1437, 1447, 1454, 1454, 1457, 1456, 1468, 1470, 1480,
01128 1488, 1493, 1493, 1496, 1495, 1510, 1510, 1512, 1512, 1512,
01129 1515, 1514, 1526, 1525, 1537, 1536, 1547, 1547, 1550, 1550,
01130 1552, 1562, 1562, 1564, 1564, 1564, 1566, 1572, 1578, 1584,
01131 1584, 1586, 1588, 1588, 1590, 1594, 1594, 1603, 1605, 1607,
01132 1607, 1609, 1619, 1619, 1621, 1629, 1634, 1634, 1636, 1636,
01133 1638, 1652, 1651, 1664, 1664, 1667, 1667, 1670, 1680, 1680,
01134 1682, 1690, 1695, 1695, 1697, 1697, 1699, 1713, 1712, 1720,
01135 1720, 1723, 1723, 1726, 1736, 1736, 1738, 1746, 1751, 1751,
01136 1753, 1753, 1755, 1769, 1768, 1776, 1776, 1779, 1779, 1782,
01137 1792, 1792, 1794, 1802, 1807, 1807, 1809, 1809, 1811, 1825,
01138 1824, 1837, 1837, 1840, 1840, 1843, 1854, 1854, 1856, 1868,
01139 1874, 1874, 1876, 1876, 1876, 1878, 1888, 1895, 1902, 1913,
01140 1914, 1916, 1916, 1918, 1926, 1931, 1931, 1933, 1933, 1935,
01141 1949, 1948, 1961, 1961, 1964, 1964, 1966, 1968, 1973, 1973,
01142 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1984, 1998, 1997,
01143 2006, 2005, 2014, 2013, 2022, 2021, 2030, 2029, 2038, 2037,
01144 2046, 2063, 2063, 2065, 2075, 2080, 2080, 2083, 2084, 2085,
01145 2086, 2088, 2102, 2101, 2110, 2109, 2118, 2117, 2125, 2125,
01146 2129, 2129, 2131, 2135, 2135, 2144, 2145, 2147, 2147, 2150,
01147 2160, 2160, 2162, 2170, 2175, 2175, 2177, 2177, 2179, 2194,
01148 2193, 2206, 2206, 2209, 2209, 2212, 2222, 2222, 2224, 2233,
01149 2238, 2238, 2240, 2240, 2240, 2242, 2256, 2255, 2269, 2268,
01150 2281, 2281, 2285, 2285, 2287, 2289, 2294, 2294, 2297, 2298,
01151 2299, 2300, 2301, 2302, 2303, 2305, 2319, 2318, 2328, 2327,
01152 2337, 2336, 2346, 2345, 2355, 2354, 2364, 2363, 2373, 2390,
01153 2390, 2392, 2402, 2407, 2407, 2410, 2411, 2412, 2413, 2415,
01154 2430, 2429, 2439, 2438, 2448, 2447, 2456, 2456, 2459, 2459,
01155 2461, 2465, 2465, 2474, 2476, 2478, 2478, 2481, 2491, 2491,
01156 2493, 2501, 2506, 2506, 2508, 2508, 2510, 2525, 2524, 2537,
01157 2537, 2540, 2540, 2543, 2553, 2553, 2555, 2564, 2569, 2569,
01158 2571, 2571, 2571, 2573, 2587, 2586, 2600, 2599, 2613, 2613,
01159 2616, 2616, 2618, 2620, 2625, 2625, 2628, 2629, 2630, 2631,
01160 2632, 2633, 2634, 2636, 2650, 2649, 2658, 2657, 2666, 2665,
01161 2674, 2673, 2682, 2681, 2690, 2689, 2698, 2715, 2715, 2717,
01162 2727, 2732, 2732, 2735, 2736, 2737, 2738, 2740, 2755, 2754,
01163 2764, 2763, 2772, 2771, 2779, 2779, 2782, 2782, 2787, 2797,
01164 2805, 2805, 2808, 2807, 2825, 2825, 2828, 2829, 2830, 2831,
01165 2832, 2833, 2837, 2836, 2848, 2847, 2859, 2858, 2870, 2869,
01166 2881, 2880, 2892, 2891, 2903, 2903
01167 };
01168 #endif
01169
01170 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
01171
01172
01173 static const char *const yytname[] =
01174 {
01175 "$end", "error", "$undefined", "ATTRIBUTETEXT", "ELEMENTTEXT",
01176 "INTEGER", "DOUBLE", "QUOTE", "TWOQUOTES", "GREATERTHAN", "ENDOFELEMENT",
01177 "OSOLSTART", "OSOLSTARTEMPTY", "OSOLATTRIBUTETEXT", "OSOLEND",
01178 "LOCATIONTYPEATT", "TRANSPORTTYPEATT", "NUMBEROFOTHEROPTIONSATT",
01179 "NUMBEROFJOBIDSATT", "NUMBEROFPATHSATT", "NUMBEROFPATHPAIRSATT",
01180 "FROMATT", "TOATT", "MAKECOPYATT", "SOLVERATT", "CATEGORYATT", "TYPEATT",
01181 "GROUPWEIGHTATT", "NUMBEROFPROCESSESATT", "NUMBEROFSOLVEROPTIONSATT",
01182 "NUMBEROFSOSATT", "NUMBEROFVARIABLESATT", "NUMBEROFOBJECTIVESATT",
01183 "NUMBEROFCONSTRAINTSATT", "NUMBEROFOTHERVARIABLEOPTIONSATT",
01184 "NUMBEROFOTHEROBJECTIVEOPTIONSATT", "NUMBEROFOTHERCONSTRAINTOPTIONSATT",
01185 "NUMBEROFVARATT", "NUMBEROFOBJATT", "NUMBEROFCONATT", "NAMEATT",
01186 "IDXATT", "SOSIDXATT", "VALUEATT", "UNITATT", "DESCRIPTIONATT",
01187 "LBVALUEATT", "UBVALUEATT", "LBDUALVALUEATT", "UBDUALVALUEATT",
01188 "GENERALSTART", "GENERALEND", "SYSTEMSTART", "SYSTEMEND", "SERVICESTART",
01189 "SERVICEEND", "JOBSTART", "JOBEND", "OPTIMIZATIONSTART",
01190 "OPTIMIZATIONEND", "SERVICEURISTART", "SERVICEURIEND",
01191 "SERVICENAMESTART", "SERVICENAMEEND", "INSTANCENAMESTART",
01192 "INSTANCENAMEEND", "INSTANCELOCATIONSTART", "INSTANCELOCATIONEND",
01193 "JOBIDSTART", "JOBIDEND", "SOLVERTOINVOKESTART", "SOLVERTOINVOKEEND",
01194 "LICENSESTART", "LICENSEEND", "USERNAMESTART", "USERNAMEEND",
01195 "PASSWORDSTART", "PASSWORDEND", "CONTACTSTART", "CONTACTEND",
01196 "OTHEROPTIONSSTART", "OTHEROPTIONSEND", "OTHERSTART", "OTHEREND",
01197 "MINDISKSPACESTART", "MINDISKSPACEEND", "MINMEMORYSIZESTART",
01198 "MINMEMORYSIZEEND", "MINCPUSPEEDSTART", "MINCPUSPEEDEND",
01199 "MINCPUNUMBERSTART", "MINCPUNUMBEREND", "SERVICETYPESTART",
01200 "SERVICETYPEEND", "MAXTIMESTART", "MAXTIMEEND",
01201 "REQUESTEDSTARTTIMESTART", "REQUESTEDSTARTTIMEEND", "DEPENDENCIESSTART",
01202 "DEPENDENCIESEND", "REQUIREDDIRECTORIESSTART", "REQUIREDDIRECTORIESEND",
01203 "REQUIREDFILESSTART", "REQUIREDFILESEND", "PATHSTART", "PATHEND",
01204 "PATHPAIRSTART", "PATHPAIREND", "DIRECTORIESTOMAKESTART",
01205 "DIRECTORIESTOMAKEEND", "FILESTOMAKESTART", "FILESTOMAKEEND",
01206 "DIRECTORIESTODELETESTART", "DIRECTORIESTODELETEEND",
01207 "FILESTODELETESTART", "FILESTODELETEEND", "INPUTDIRECTORIESTOMOVESTART",
01208 "INPUTDIRECTORIESTOMOVEEND", "INPUTFILESTOMOVESTART",
01209 "INPUTFILESTOMOVEEND", "OUTPUTDIRECTORIESTOMOVESTART",
01210 "OUTPUTDIRECTORIESTOMOVEEND", "OUTPUTFILESTOMOVESTART",
01211 "OUTPUTFILESTOMOVEEND", "PROCESSESTOKILLSTART", "PROCESSESTOKILLEND",
01212 "PROCESSSTART", "PROCESSEND", "VARIABLESSTART", "VARIABLESEND",
01213 "INITIALVARIABLEVALUESSTART", "INITIALVARIABLEVALUESEND", "VARSTART",
01214 "VAREND", "INITIALVARIABLEVALUESSTRINGSTART",
01215 "INITIALVARIABLEVALUESSTRINGEND", "INITIALBASISSTATUSSTART",
01216 "INITIALBASISSTATUSEND", "INTEGERVARIABLEBRANCHINGWEIGHTSSTART",
01217 "INTEGERVARIABLEBRANCHINGWEIGHTSEND", "SOSVARIABLEBRANCHINGWEIGHTSSTART",
01218 "SOSVARIABLEBRANCHINGWEIGHTSEND", "SOSSTART", "SOSEND",
01219 "OBJECTIVESSTART", "OBJECTIVESEND", "INITIALOBJECTIVEVALUESSTART",
01220 "INITIALOBJECTIVEVALUESEND", "OBJSTART", "OBJEND",
01221 "INITIALOBJECTIVEBOUNDSSTART", "INITIALOBJECTIVEBOUNDSEND",
01222 "CONSTRAINTSSTART", "CONSTRAINTSEND", "INITIALCONSTRAINTVALUESSTART",
01223 "INITIALCONSTRAINTVALUESEND", "CONSTART", "CONEND",
01224 "INITIALDUALVALUESSTART", "INITIALDUALVALUESEND", "SOLVEROPTIONSSTART",
01225 "SOLVEROPTIONSEND", "SOLVEROPTIONSTART", "SOLVEROPTIONEND", "DUMMY",
01226 "$accept", "osoldoc", "osolstart", "osolcontent", "osolgeneral",
01227 "generalhead", "generalbody", "generalcontent", "generaloption",
01228 "serviceURI", "serviceURIhead", "serviceURIbody", "@1", "servicename",
01229 "servicenamehead", "servicenamebody", "@2", "instancename",
01230 "instancenamehead", "instancenamebody", "@3", "instancelocation",
01231 "instancelocationhead", "locationtypeatt", "@4", "instancelocationbody",
01232 "instancelocationtext", "jobid", "jobidhead", "jobidbody", "@5",
01233 "solvertoinvoke", "solvertoinvokehead", "solvertoinvokebody", "@6",
01234 "license", "licensehead", "licensebody", "@7", "username",
01235 "usernamehead", "usernamebody", "@8", "password", "passwordhead",
01236 "passwordbody", "@9", "contact", "contacthead", "transporttypeatt",
01237 "@10", "contactbody", "contacttext", "othergeneraloptions",
01238 "othergeneraloptionshead", "numberofothergeneraloptions",
01239 "othergeneraloptionsbody", "othergeneraloptionslist",
01240 "othergeneraloption", "@11", "othergeneralattributes",
01241 "othergeneralattribute", "generaloptionnameatt", "@12",
01242 "generaloptionvalueatt", "@13", "generaloptiondescriptionatt", "@14",
01243 "othergeneraloptionend", "osolsystem", "systemhead", "systembody",
01244 "systemcontent", "systemoption", "mindiskspace", "mindiskspacehead",
01245 "mindiskspaceunit", "@15", "mindiskspacebody", "minmemorysize",
01246 "minmemorysizehead", "minmemoryunit", "@16", "minmemorysizebody",
01247 "mincpuspeed", "mincpuspeedhead", "mincpuspeedunit", "@17",
01248 "mincpuspeedbody", "mincpunumber", "mincpunumberhead",
01249 "mincpunumberbody", "@18", "othersystemoptions",
01250 "othersystemoptionshead", "numberofothersystemoptions",
01251 "othersystemoptionsbody", "othersystemoptionslist", "othersystemoption",
01252 "@19", "othersystemattributes", "othersystemattribute",
01253 "systemoptionnameatt", "@20", "systemoptionvalueatt", "@21",
01254 "systemoptiondescriptionatt", "@22", "othersystemoptionend",
01255 "osolservice", "servicehead", "servicebody", "servicecontent",
01256 "serviceoption", "servicetype", "servicetypehead", "servicetypebody",
01257 "@23", "otherserviceoptions", "otherserviceoptionshead",
01258 "numberofotherserviceoptions", "otherserviceoptionsbody",
01259 "otherserviceoptionslist", "otherserviceoption", "@24",
01260 "otherserviceattributes", "otherserviceattribute",
01261 "serviceoptionnameatt", "@25", "serviceoptionvalueatt", "@26",
01262 "serviceoptiondescriptionatt", "@27", "otherserviceoptionsend",
01263 "osoljob", "jobhead", "jobbody", "jobcontent", "joboption", "maxtime",
01264 "maxtimehead", "maxtimeunit", "@28", "maxtimebody", "requestedstarttime",
01265 "starttimehead", "starttimebody", "@29", "dependencies",
01266 "dependencieshead", "numberofjobidsatt", "dependencieslist",
01267 "dependencyjobid", "@30", "requireddirectories",
01268 "requireddirectorieshead", "numberofreqdirpathsatt", "reqdirpathlist",
01269 "reqdirpath", "@31", "requiredfiles", "requiredfileshead",
01270 "numberofreqfilespathsatt", "reqfilespathlist", "reqfilepath", "@32",
01271 "directoriestomake", "directoriestomakehead",
01272 "numberofdirtomakepathsatt", "dirtomakepathlist", "dirtomakepath", "@33",
01273 "filestomake", "filestomakehead", "numberoffilestomakepathsatt",
01274 "filestomakepathlist", "filestomakepath", "@34",
01275 "inputdirectoriestomove", "inputdirectoriestomovehead",
01276 "numberofindirtomovepathpairsatt", "indirtomovepathpairlist",
01277 "indirtomovepathpair", "indirtomovepathpairhead",
01278 "indirtomovepathpairattlist", "indirtomovepathpairatt",
01279 "indirtomovefromatt", "@35", "indirtomovetoatt", "@36",
01280 "indirtomovemakecopyatt", "@37", "indirtomovepathpairend",
01281 "inputfilestomove", "inputfilestomovehead",
01282 "numberofinfilestomovepathpairsatt", "infilestomovepathpairlist",
01283 "infilestomovepathpair", "infilestomovepathpairhead",
01284 "infilestomovepathpairattlist", "infilestomovepathpairatt",
01285 "infilestomovefromatt", "@38", "infilestomovetoatt", "@39",
01286 "infilestomovemakecopyatt", "@40", "infilestomovepathpairend",
01287 "outputdirectoriestomove", "outputdirectoriestomovehead",
01288 "numberofoutdirtomovepathpairsatt", "outdirtomovepathpairlist",
01289 "outdirtomovepathpair", "outdirtomovepathpairhead",
01290 "outdirtomovepathpairattlist", "outdirtomovepathpairatt",
01291 "outdirtomovefromatt", "@41", "outdirtomovetoatt", "@42",
01292 "outdirtomovemakecopyatt", "@43", "outdirtomovepathpairend",
01293 "outputfilestomove", "outputfilestomovehead",
01294 "numberofoutfilestomovepathpairsatt", "outfilestomovepathpairlist",
01295 "outfilestomovepathpair", "outfilestomovepathpairhead",
01296 "outfilestomovepathpairattlist", "outfilestomovepathpairatt",
01297 "outfilestomovefromatt", "@44", "outfilestomovetoatt", "@45",
01298 "outfilestomovemakecopyatt", "@46", "outfilestomovepathpairend",
01299 "filestodelete", "filestodeletehead", "numberoffilestodeletepathsatt",
01300 "filestodeletepathlist", "filestodeletepath", "@47",
01301 "directoriestodelete", "directoriestodeletehead",
01302 "numberofdirtodeletepathsatt", "dirtodeletepathlist", "dirtodeletepath",
01303 "@48", "processestokill", "processestokillhead",
01304 "numberofprocesstokillatt", "processestokilllist", "processtokill",
01305 "@49", "otherjoboptions", "otherjoboptionshead",
01306 "numberofotherjoboptions", "otherjoboptionsbody", "otherjoboptionslist",
01307 "otherjoboption", "@50", "otherjobattributes", "otherjobattribute",
01308 "joboptionnameatt", "@51", "joboptionvalueatt", "@52",
01309 "joboptiondescriptionatt", "@53", "otherjoboptionsend",
01310 "osoloptimization", "optimizationhead", "optimizationattlist",
01311 "optimizationatt", "optimizationnvar", "optimizationncon",
01312 "optimizationnobj", "optimizationbody", "optimizationcontent",
01313 "variables", "variablesstart", "numberofothervariablesatt",
01314 "restofvariables", "initialvariablevalues", "numberofvar", "varlist",
01315 "initvarvalue", "varstart", "initvarvalueattlist", "initvarvalueatt",
01316 "initvarvalueidxatt", "initvarvaluevalueatt", "@54", "initvarvalueend",
01317 "initialvariablevaluesstring", "numberofvarstr", "varstrlist",
01318 "initvarstrvalue", "varstrstart", "initvarstrvalueattlist",
01319 "initvarstrvalueatt", "initvarstrvalueidxatt", "initvarstrvaluevalueatt",
01320 "@55", "initvarstrvalueend", "initialbasisstatus", "numberofbasvar",
01321 "basvarlist", "initbasvalue", "basvarstart", "initbasvarvalueattlist",
01322 "initbasvarvalueatt", "initbasvarvalueidxatt", "initbasvarvaluevalueatt",
01323 "@56", "initbasvarvalueend", "integervariablebranchingweights",
01324 "numberofintegerweights", "intweightlist", "intweight", "intweightstart",
01325 "intweightattlist", "intweightatt", "intweightidxatt",
01326 "intweightvalueatt", "@57", "intweightend",
01327 "sosvariablebranchingweights", "numberofsosweightgroups",
01328 "sosweightgrouplist", "sosweightgroup", "sosweightgroupstart",
01329 "sosweightgroupattlist", "sosweightgroupatt", "sosweightgroupidxatt",
01330 "sosweightgroupweightatt", "sosweightgroupnvaratt",
01331 "sosweightgroupcontent", "sosweightgroupvars", "sosweightvar",
01332 "sosweightvarstart", "sosweightvarattlist", "sosweightvaratt",
01333 "sosweightvaridxatt", "sosweightvarvalueatt", "@58", "sosweightvarend",
01334 "othervariableoptionlist", "othervariableoption",
01335 "othervariableoptionstart", "othervariableoptionsattlist",
01336 "othervariableoptionsatt", "othervariableoptionnumberofvar",
01337 "othervariableoptionname", "@59", "othervariableoptionvalue", "@60",
01338 "othervariableoptionsolver", "@61", "othervariableoptioncategory", "@62",
01339 "othervariableoptiontype", "@63", "othervariableoptiondescription",
01340 "@64", "restofothervariableoption", "othervariableoptionsvarlist",
01341 "othervariableoptionsvar", "othervariableoptionsvarstart",
01342 "othervaroptionattlist", "othervaroptionatt", "othervaroptionidx",
01343 "othervaroptionvalue", "@65", "othervaroptionlbvalue", "@66",
01344 "othervaroptionubvalue", "@67", "othervaroptionend", "objectives",
01345 "objectivesstart", "numberofotherobjectivesatt", "restofobjectives",
01346 "initialobjectivevalues", "numberofobjval", "objvaluelist",
01347 "initobjvalue", "objvaluestart", "initobjvalueattlist",
01348 "initobjvalueatt", "initobjvalueidxatt", "initobjvaluevalueatt", "@68",
01349 "initobjvalueend", "initialobjectivebounds", "numberofobjbounds",
01350 "objboundlist", "initobjbound", "objboundstart", "initobjboundattlist",
01351 "initobjboundatt", "initobjboundidxatt", "initobjvaluelowerboundatt",
01352 "@69", "initobjvalueupperboundatt", "@70", "initobjboundend",
01353 "otherobjectiveoptionlist", "otherobjectiveoption",
01354 "otherobjectiveoptionstart", "otherobjectiveoptionsattlist",
01355 "otherobjectiveoptionsatt", "otherobjectiveoptionnumberofobj",
01356 "otherobjectiveoptionname", "@71", "otherobjectiveoptionvalue", "@72",
01357 "otherobjectiveoptionsolver", "@73", "otherobjectiveoptioncategory",
01358 "@74", "otherobjectiveoptiontype", "@75",
01359 "otherobjectiveoptiondescription", "@76", "restofotherobjectiveoption",
01360 "otherobjectiveoptionsobjlist", "otherobjectiveoptionsobj",
01361 "otherobjectiveoptionsobjstart", "otherobjoptionattlist",
01362 "otherobjoptionatt", "otherobjoptionidx", "otherobjoptionvalue", "@77",
01363 "otherobjoptionlbvalue", "@78", "otherobjoptionubvalue", "@79",
01364 "otherobjoptionend", "constraints", "constraintsstart",
01365 "numberofotherconstraintsatt", "restofconstraints",
01366 "initialconstraintvalues", "numberofconval", "conlist", "initconvalue",
01367 "constart", "initconvalueattlist", "initconvalueatt",
01368 "initconvalueidxatt", "initconvaluevalueatt", "@80", "initconvalueend",
01369 "initialdualvalues", "numberofduals", "duallist", "initdualvalue",
01370 "dualstart", "initdualvalueattlist", "initdualvalueatt",
01371 "initdualvalueidxatt", "initdualvaluelowerboundatt", "@81",
01372 "initdualvalueupperboundatt", "@82", "initdualvalueend",
01373 "otherconstraintoptionlist", "otherconstraintoption",
01374 "otherconstraintoptionstart", "otherconstraintoptionsattlist",
01375 "otherconstraintoptionsatt", "otherconstraintoptionnumberofcon",
01376 "otherconstraintoptionname", "@83", "otherconstraintoptionvalue", "@84",
01377 "otherconstraintoptionsolver", "@85", "otherconstraintoptioncategory",
01378 "@86", "otherconstraintoptiontype", "@87",
01379 "otherconstraintoptiondescription", "@88", "restofotherconstraintoption",
01380 "otherconstraintoptionsconlist", "otherconstraintoptionscon",
01381 "otherconstraintoptionsconstart", "otherconoptionattlist",
01382 "otherconoptionatt", "otherconoptionidx", "otherconoptionvalue", "@89",
01383 "otherconoptionlbvalue", "@90", "otherconoptionubvalue", "@91",
01384 "otherconoptionend", "solveroptions", "solveroptionsstart",
01385 "numberofsolveroptionsatt", "solveroptionlist", "solveroption", "@92",
01386 "solveroptionattlist", "solveroptionatt", "solveroptionname", "@93",
01387 "solveroptionvalue", "@94", "solveroptionsolver", "@95",
01388 "solveroptioncategory", "@96", "solveroptiontype", "@97",
01389 "solveroptiondescription", "@98", "solveroptionend", 0
01390 };
01391 #endif
01392
01393 # ifdef YYPRINT
01394
01395
01396 static const yytype_uint16 yytoknum[] =
01397 {
01398 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
01399 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
01400 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
01401 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
01402 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
01403 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
01404 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
01405 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
01406 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
01407 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
01408 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
01409 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
01410 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
01411 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
01412 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
01413 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
01414 415, 416, 417, 418, 419
01415 };
01416 # endif
01417
01418
01419 static const yytype_uint16 yyr1[] =
01420 {
01421 0, 165, 166, 166, 167, 167, 168, 169, 169, 170,
01422 171, 171, 172, 172, 173, 173, 173, 173, 173, 173,
01423 173, 173, 173, 173, 173, 174, 175, 176, 176, 177,
01424 176, 178, 179, 180, 180, 181, 180, 182, 183, 184,
01425 184, 185, 184, 186, 187, 188, 189, 188, 190, 190,
01426 191, 191, 192, 193, 194, 194, 195, 194, 196, 197,
01427 198, 198, 199, 198, 200, 201, 202, 202, 203, 202,
01428 204, 205, 206, 206, 207, 206, 208, 209, 210, 210,
01429 211, 210, 212, 213, 214, 215, 214, 216, 216, 217,
01430 217, 218, 219, 220, 221, 222, 222, 224, 223, 225,
01431 225, 226, 226, 226, 228, 227, 230, 229, 232, 231,
01432 233, 233, 234, 234, 235, 236, 236, 237, 237, 238,
01433 238, 238, 238, 238, 239, 240, 241, 242, 241, 243,
01434 243, 243, 243, 244, 245, 246, 247, 246, 248, 248,
01435 248, 248, 249, 250, 251, 252, 251, 253, 253, 253,
01436 253, 254, 255, 256, 256, 257, 256, 258, 259, 260,
01437 261, 262, 262, 264, 263, 265, 265, 266, 266, 266,
01438 268, 267, 270, 269, 272, 271, 273, 273, 274, 274,
01439 275, 276, 276, 277, 277, 278, 278, 279, 280, 281,
01440 281, 282, 281, 283, 284, 285, 286, 287, 287, 289,
01441 288, 290, 290, 291, 291, 291, 293, 292, 295, 294,
01442 297, 296, 298, 298, 299, 299, 300, 301, 301, 302,
01443 302, 303, 303, 303, 303, 303, 303, 303, 303, 303,
01444 303, 303, 303, 303, 303, 303, 304, 305, 306, 307,
01445 306, 308, 308, 308, 308, 309, 310, 311, 311, 312,
01446 311, 313, 314, 315, 316, 316, 318, 317, 319, 320,
01447 321, 322, 322, 324, 323, 325, 326, 327, 328, 328,
01448 330, 329, 331, 332, 333, 334, 334, 336, 335, 337,
01449 338, 339, 340, 340, 342, 341, 343, 344, 345, 346,
01450 346, 347, 348, 349, 349, 350, 350, 350, 352, 351,
01451 354, 353, 356, 355, 357, 357, 358, 359, 360, 361,
01452 361, 362, 363, 364, 364, 365, 365, 365, 367, 366,
01453 369, 368, 371, 370, 372, 372, 373, 374, 375, 376,
01454 376, 377, 378, 379, 379, 380, 380, 380, 382, 381,
01455 384, 383, 386, 385, 387, 387, 388, 389, 390, 391,
01456 391, 392, 393, 394, 394, 395, 395, 395, 397, 396,
01457 399, 398, 401, 400, 402, 402, 403, 404, 405, 406,
01458 406, 408, 407, 409, 410, 411, 412, 412, 414, 413,
01459 415, 416, 417, 418, 418, 420, 419, 421, 422, 423,
01460 424, 425, 425, 427, 426, 428, 428, 429, 429, 429,
01461 431, 430, 433, 432, 435, 434, 436, 436, 437, 437,
01462 438, 439, 439, 440, 440, 440, 441, 442, 443, 444,
01463 444, 445, 446, 446, 447, 448, 448, 449, 449, 450,
01464 450, 451, 452, 452, 453, 454, 455, 455, 456, 456,
01465 457, 459, 458, 460, 460, 461, 461, 462, 463, 463,
01466 464, 465, 466, 466, 467, 467, 468, 470, 469, 471,
01467 471, 472, 472, 473, 474, 474, 475, 476, 477, 477,
01468 478, 478, 479, 481, 480, 482, 482, 483, 483, 484,
01469 485, 485, 486, 487, 488, 488, 489, 489, 490, 492,
01470 491, 493, 493, 494, 494, 495, 496, 496, 497, 498,
01471 499, 499, 500, 500, 500, 501, 502, 502, 503, 504,
01472 504, 505, 505, 506, 507, 508, 508, 509, 509, 510,
01473 512, 511, 513, 513, 514, 514, 515, 516, 517, 517,
01474 518, 518, 518, 518, 518, 518, 518, 519, 521, 520,
01475 523, 522, 525, 524, 527, 526, 529, 528, 531, 530,
01476 532, 533, 533, 534, 535, 536, 536, 537, 537, 537,
01477 537, 538, 540, 539, 542, 541, 544, 543, 545, 545,
01478 546, 546, 547, 548, 548, 549, 549, 550, 550, 551,
01479 552, 552, 553, 554, 555, 555, 556, 556, 557, 559,
01480 558, 560, 560, 561, 561, 562, 563, 563, 564, 565,
01481 566, 566, 567, 567, 567, 568, 570, 569, 572, 571,
01482 573, 573, 574, 574, 575, 576, 577, 577, 578, 578,
01483 578, 578, 578, 578, 578, 579, 581, 580, 583, 582,
01484 585, 584, 587, 586, 589, 588, 591, 590, 592, 593,
01485 593, 594, 595, 596, 596, 597, 597, 597, 597, 598,
01486 600, 599, 602, 601, 604, 603, 605, 605, 606, 606,
01487 607, 608, 608, 609, 609, 610, 610, 611, 612, 612,
01488 613, 614, 615, 615, 616, 616, 617, 619, 618, 620,
01489 620, 621, 621, 622, 623, 623, 624, 625, 626, 626,
01490 627, 627, 627, 628, 630, 629, 632, 631, 633, 633,
01491 634, 634, 635, 636, 637, 637, 638, 638, 638, 638,
01492 638, 638, 638, 639, 641, 640, 643, 642, 645, 644,
01493 647, 646, 649, 648, 651, 650, 652, 653, 653, 654,
01494 655, 656, 656, 657, 657, 657, 657, 658, 660, 659,
01495 662, 661, 664, 663, 665, 665, 666, 666, 667, 668,
01496 669, 669, 671, 670, 672, 672, 673, 673, 673, 673,
01497 673, 673, 675, 674, 677, 676, 679, 678, 681, 680,
01498 683, 682, 685, 684, 686, 686
01499 };
01500
01501
01502 static const yytype_uint8 yyr2[] =
01503 {
01504 0, 2, 3, 2, 1, 3, 5, 0, 2, 1,
01505 3, 1, 0, 2, 1, 1, 1, 1, 1, 1,
01506 1, 1, 1, 1, 1, 2, 1, 1, 2, 0,
01507 4, 2, 1, 1, 2, 0, 4, 2, 1, 1,
01508 2, 0, 4, 3, 1, 0, 0, 4, 1, 3,
01509 0, 1, 2, 1, 1, 2, 0, 4, 2, 1,
01510 1, 2, 0, 4, 2, 1, 1, 2, 0, 4,
01511 2, 1, 1, 2, 0, 4, 2, 1, 1, 2,
01512 0, 4, 3, 1, 0, 0, 4, 1, 3, 0,
01513 1, 4, 1, 4, 2, 0, 2, 0, 4, 0,
01514 2, 1, 1, 1, 0, 4, 0, 4, 0, 4,
01515 1, 2, 0, 2, 1, 3, 1, 0, 2, 1,
01516 1, 1, 1, 1, 3, 1, 0, 0, 4, 1,
01517 2, 3, 3, 3, 1, 0, 0, 4, 1, 2,
01518 3, 3, 3, 1, 0, 0, 4, 1, 2, 3,
01519 3, 2, 1, 1, 2, 0, 4, 4, 1, 4,
01520 2, 0, 2, 0, 4, 0, 2, 1, 1, 1,
01521 0, 4, 0, 4, 0, 4, 1, 2, 0, 2,
01522 1, 3, 1, 0, 2, 1, 1, 2, 1, 1,
01523 2, 0, 4, 4, 1, 4, 2, 0, 2, 0,
01524 4, 0, 2, 1, 1, 1, 0, 4, 0, 4,
01525 0, 4, 1, 2, 0, 2, 1, 3, 1, 0,
01526 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01527 1, 1, 1, 1, 1, 1, 3, 1, 0, 0,
01528 4, 1, 2, 3, 3, 2, 1, 1, 2, 0,
01529 4, 5, 1, 4, 0, 2, 0, 5, 5, 1,
01530 4, 0, 2, 0, 5, 5, 1, 4, 0, 2,
01531 0, 5, 5, 1, 4, 0, 2, 0, 5, 5,
01532 1, 4, 0, 2, 0, 5, 5, 1, 4, 0,
01533 2, 3, 1, 0, 2, 1, 1, 1, 0, 4,
01534 0, 4, 0, 4, 2, 1, 5, 1, 4, 0,
01535 2, 3, 1, 0, 2, 1, 1, 1, 0, 4,
01536 0, 4, 0, 4, 2, 1, 5, 1, 4, 0,
01537 2, 3, 1, 0, 2, 1, 1, 1, 0, 4,
01538 0, 4, 0, 4, 2, 1, 5, 1, 4, 0,
01539 2, 3, 1, 0, 2, 1, 1, 1, 0, 4,
01540 0, 4, 0, 4, 2, 1, 5, 1, 4, 0,
01541 2, 0, 5, 5, 1, 4, 0, 2, 0, 5,
01542 5, 1, 4, 0, 2, 0, 5, 4, 1, 4,
01543 2, 0, 2, 0, 4, 0, 2, 1, 1, 1,
01544 0, 4, 0, 4, 0, 4, 1, 2, 0, 3,
01545 1, 0, 2, 1, 1, 1, 4, 4, 4, 3,
01546 1, 4, 0, 3, 1, 0, 4, 8, 1, 0,
01547 5, 4, 0, 2, 3, 1, 0, 2, 1, 1,
01548 4, 0, 4, 2, 1, 0, 5, 4, 0, 2,
01549 3, 1, 0, 2, 1, 1, 4, 0, 4, 2,
01550 1, 0, 5, 4, 0, 2, 3, 1, 0, 2,
01551 1, 1, 4, 0, 4, 2, 1, 0, 5, 4,
01552 0, 2, 3, 1, 0, 2, 1, 1, 4, 0,
01553 4, 2, 1, 0, 5, 4, 0, 2, 3, 1,
01554 0, 2, 1, 1, 1, 4, 4, 4, 4, 3,
01555 1, 0, 2, 3, 1, 0, 2, 1, 1, 4,
01556 0, 4, 2, 1, 0, 2, 3, 1, 0, 2,
01557 1, 1, 1, 1, 1, 1, 1, 4, 0, 4,
01558 0, 4, 0, 4, 0, 4, 0, 4, 0, 4,
01559 3, 0, 2, 3, 1, 0, 2, 1, 1, 1,
01560 1, 4, 0, 4, 0, 4, 0, 4, 2, 1,
01561 0, 3, 1, 0, 4, 5, 1, 0, 5, 4,
01562 0, 2, 3, 1, 0, 2, 1, 1, 4, 0,
01563 4, 2, 1, 0, 5, 4, 0, 2, 3, 1,
01564 0, 2, 1, 1, 1, 4, 0, 4, 0, 4,
01565 2, 1, 0, 2, 3, 1, 0, 2, 1, 1,
01566 1, 1, 1, 1, 1, 4, 0, 4, 0, 4,
01567 0, 4, 0, 4, 0, 4, 0, 4, 3, 0,
01568 2, 3, 1, 0, 2, 1, 1, 1, 1, 4,
01569 0, 4, 0, 4, 0, 4, 2, 1, 0, 3,
01570 1, 0, 4, 5, 1, 0, 5, 4, 0, 2,
01571 3, 1, 0, 2, 1, 1, 4, 0, 4, 2,
01572 1, 0, 5, 4, 0, 2, 3, 1, 0, 2,
01573 1, 1, 1, 4, 0, 4, 0, 4, 2, 1,
01574 0, 2, 3, 1, 0, 2, 1, 1, 1, 1,
01575 1, 1, 1, 4, 0, 4, 0, 4, 0, 4,
01576 0, 4, 0, 4, 0, 4, 3, 0, 2, 3,
01577 1, 0, 2, 1, 1, 1, 1, 4, 0, 4,
01578 0, 4, 0, 4, 2, 1, 0, 5, 1, 4,
01579 0, 2, 0, 4, 0, 2, 1, 1, 1, 1,
01580 1, 1, 0, 4, 0, 4, 0, 4, 0, 4,
01581 0, 4, 0, 4, 2, 1
01582 };
01583
01584
01585
01586
01587 static const yytype_uint16 yydefact[] =
01588 {
01589 0, 0, 4, 0, 7, 0, 1, 3, 9, 0,
01590 112, 0, 5, 2, 114, 178, 0, 12, 11, 8,
01591 180, 214, 0, 117, 116, 113, 0, 216, 408, 0,
01592 183, 182, 179, 0, 10, 26, 32, 38, 44, 53,
01593 59, 65, 71, 77, 83, 92, 13, 14, 0, 15,
01594 0, 16, 0, 17, 45, 18, 0, 19, 0, 20,
01595 0, 21, 0, 22, 0, 23, 84, 24, 0, 410,
01596 6, 411, 219, 218, 215, 0, 115, 158, 125, 134,
01597 143, 152, 118, 119, 126, 120, 135, 121, 144, 122,
01598 0, 123, 0, 0, 27, 25, 0, 33, 31, 0,
01599 39, 37, 0, 0, 0, 54, 52, 0, 60, 58,
01600 0, 66, 64, 0, 72, 70, 0, 78, 76, 0,
01601 0, 0, 0, 0, 0, 181, 194, 188, 184, 185,
01602 0, 186, 0, 0, 0, 0, 0, 0, 0, 0,
01603 153, 151, 0, 0, 29, 28, 35, 34, 41, 40,
01604 46, 50, 48, 43, 56, 55, 62, 61, 68, 67,
01605 74, 73, 80, 79, 85, 89, 87, 82, 0, 95,
01606 422, 420, 0, 0, 0, 412, 413, 414, 415, 409,
01607 217, 388, 237, 246, 252, 259, 266, 273, 280, 374,
01608 367, 287, 307, 327, 347, 381, 220, 221, 238, 222,
01609 0, 223, 0, 224, 0, 225, 0, 226, 0, 227,
01610 0, 228, 0, 229, 0, 230, 0, 231, 0, 232,
01611 0, 233, 0, 234, 0, 235, 0, 0, 189, 187,
01612 0, 0, 127, 0, 129, 124, 136, 0, 138, 133,
01613 145, 0, 147, 142, 155, 154, 0, 161, 0, 0,
01614 0, 0, 51, 0, 0, 0, 0, 0, 0, 0,
01615 90, 0, 0, 91, 0, 424, 0, 570, 425, 0,
01616 0, 0, 0, 0, 0, 247, 245, 0, 0, 0,
01617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01619 0, 0, 0, 191, 190, 0, 197, 0, 0, 0,
01620 130, 0, 0, 0, 139, 0, 0, 0, 148, 0,
01621 0, 157, 0, 30, 36, 42, 47, 49, 57, 63,
01622 69, 75, 81, 86, 88, 93, 94, 97, 96, 419,
01623 572, 658, 573, 0, 0, 0, 0, 0, 239, 0,
01624 241, 236, 249, 248, 0, 254, 0, 261, 0, 268,
01625 0, 275, 0, 282, 0, 289, 0, 309, 0, 329,
01626 0, 349, 0, 369, 0, 376, 0, 383, 0, 391,
01627 0, 0, 193, 0, 128, 132, 131, 137, 141, 140,
01628 146, 150, 149, 156, 159, 160, 163, 162, 99, 660,
01629 746, 661, 0, 0, 0, 429, 428, 423, 416, 418,
01630 417, 0, 0, 0, 242, 0, 0, 0, 0, 0,
01631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01633 0, 387, 0, 192, 195, 196, 199, 198, 165, 0,
01634 748, 421, 0, 0, 0, 0, 577, 576, 571, 0,
01635 0, 445, 240, 244, 243, 250, 253, 0, 251, 255,
01636 260, 258, 0, 262, 267, 265, 0, 269, 274, 0,
01637 272, 276, 281, 0, 279, 283, 288, 292, 286, 290,
01638 293, 308, 312, 306, 310, 313, 328, 332, 326, 330,
01639 333, 348, 352, 346, 350, 353, 368, 0, 366, 370,
01640 375, 0, 373, 377, 382, 380, 0, 384, 389, 390,
01641 393, 392, 201, 0, 0, 110, 0, 0, 0, 100,
01642 101, 102, 103, 98, 0, 0, 0, 665, 664, 659,
01643 0, 0, 593, 426, 0, 0, 0, 461, 0, 0,
01644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01645 395, 0, 0, 176, 0, 0, 0, 166, 167, 168,
01646 169, 164, 111, 104, 106, 108, 0, 750, 0, 0,
01647 681, 574, 0, 0, 0, 612, 0, 432, 0, 0,
01648 0, 477, 256, 263, 270, 277, 284, 0, 305, 0,
01649 0, 0, 294, 295, 296, 297, 291, 0, 325, 0,
01650 0, 0, 314, 315, 316, 317, 311, 0, 345, 0,
01651 0, 0, 334, 335, 336, 337, 331, 0, 365, 0,
01652 0, 0, 354, 355, 356, 357, 351, 371, 378, 385,
01653 0, 0, 212, 0, 0, 0, 202, 203, 204, 205,
01654 200, 177, 170, 172, 174, 0, 0, 0, 0, 0,
01655 662, 0, 0, 0, 700, 0, 580, 0, 0, 0,
01656 0, 0, 0, 448, 0, 0, 0, 493, 0, 0,
01657 0, 0, 0, 304, 298, 300, 302, 324, 318, 320,
01658 322, 344, 338, 340, 342, 364, 358, 360, 362, 0,
01659 0, 0, 0, 406, 0, 0, 0, 396, 397, 398,
01660 399, 394, 213, 206, 208, 210, 0, 0, 0, 105,
01661 107, 109, 749, 747, 752, 751, 0, 668, 0, 0,
01662 0, 0, 0, 0, 596, 615, 575, 613, 616, 431,
01663 430, 435, 433, 436, 0, 0, 0, 464, 0, 0,
01664 0, 524, 257, 264, 271, 278, 285, 0, 0, 0,
01665 0, 0, 0, 0, 0, 0, 0, 0, 0, 372,
01666 379, 386, 407, 400, 402, 404, 0, 0, 0, 171,
01667 173, 175, 754, 0, 0, 0, 684, 703, 663, 701,
01668 704, 579, 578, 583, 581, 584, 0, 0, 0, 0,
01669 447, 451, 446, 449, 452, 0, 0, 0, 480, 0,
01670 0, 0, 299, 301, 303, 319, 321, 323, 339, 341,
01671 343, 359, 361, 363, 0, 0, 0, 207, 209, 211,
01672 0, 667, 666, 671, 669, 672, 0, 0, 0, 0,
01673 595, 599, 594, 597, 600, 639, 0, 0, 0, 0,
01674 0, 0, 0, 617, 618, 619, 620, 621, 622, 623,
01675 624, 614, 0, 444, 0, 0, 437, 438, 439, 434,
01676 0, 463, 467, 462, 465, 468, 0, 0, 0, 496,
01677 527, 427, 525, 528, 401, 403, 405, 0, 775, 0,
01678 0, 0, 0, 0, 0, 755, 756, 757, 758, 759,
01679 760, 761, 753, 0, 683, 687, 682, 685, 688, 727,
01680 0, 0, 0, 0, 0, 0, 0, 705, 706, 707,
01681 708, 709, 710, 711, 712, 702, 0, 592, 0, 0,
01682 585, 586, 587, 582, 0, 0, 630, 632, 634, 0,
01683 626, 628, 636, 443, 0, 441, 0, 460, 0, 0,
01684 453, 454, 455, 450, 0, 479, 483, 478, 481, 484,
01685 0, 0, 0, 774, 766, 768, 770, 762, 764, 772,
01686 0, 680, 0, 0, 673, 674, 675, 670, 0, 0,
01687 718, 720, 722, 0, 714, 716, 724, 591, 0, 589,
01688 0, 611, 0, 0, 0, 601, 602, 603, 604, 598,
01689 638, 642, 640, 643, 0, 0, 0, 0, 0, 0,
01690 0, 0, 0, 459, 0, 457, 0, 476, 0, 0,
01691 469, 470, 471, 466, 0, 495, 494, 499, 497, 500,
01692 551, 0, 0, 0, 0, 0, 0, 0, 529, 530,
01693 531, 532, 533, 534, 535, 536, 526, 0, 0, 0,
01694 0, 0, 0, 679, 0, 677, 0, 699, 0, 0,
01695 0, 689, 690, 691, 692, 686, 726, 730, 728, 731,
01696 0, 0, 0, 0, 0, 0, 0, 0, 0, 610,
01697 0, 606, 608, 0, 631, 633, 635, 625, 627, 629,
01698 637, 440, 442, 0, 0, 475, 0, 473, 0, 492,
01699 0, 0, 485, 486, 487, 482, 0, 0, 542, 544,
01700 546, 0, 538, 540, 548, 767, 769, 771, 763, 765,
01701 773, 0, 0, 698, 0, 694, 696, 0, 719, 721,
01702 723, 713, 715, 717, 725, 588, 590, 0, 0, 0,
01703 0, 657, 0, 0, 0, 0, 644, 645, 646, 647,
01704 648, 641, 456, 458, 0, 0, 491, 0, 489, 511,
01705 510, 0, 0, 0, 501, 502, 504, 503, 498, 550,
01706 554, 552, 555, 0, 0, 0, 0, 0, 0, 0,
01707 676, 678, 0, 0, 0, 0, 745, 0, 0, 0,
01708 0, 732, 733, 734, 735, 736, 729, 605, 607, 609,
01709 656, 0, 650, 652, 654, 472, 474, 0, 0, 0,
01710 0, 0, 0, 0, 543, 545, 547, 537, 539, 541,
01711 549, 693, 695, 697, 744, 0, 738, 740, 742, 0,
01712 0, 0, 0, 488, 490, 514, 509, 512, 515, 0,
01713 0, 0, 0, 0, 569, 0, 0, 0, 0, 556,
01714 557, 558, 559, 560, 553, 0, 0, 0, 0, 649,
01715 651, 653, 655, 0, 507, 506, 508, 505, 568, 0,
01716 562, 564, 566, 737, 739, 741, 743, 0, 523, 0,
01717 0, 516, 517, 518, 513, 0, 0, 0, 0, 522,
01718 0, 520, 561, 563, 565, 567, 0, 0, 519, 521
01719 };
01720
01721
01722 static const yytype_int16 yydefgoto[] =
01723 {
01724 -1, 3, 4, 9, 10, 11, 19, 26, 46, 47,
01725 48, 95, 248, 49, 50, 98, 249, 51, 52, 101,
01726 250, 53, 54, 103, 251, 153, 253, 55, 56, 106,
01727 254, 57, 58, 109, 255, 59, 60, 112, 256, 61,
01728 62, 115, 257, 63, 64, 118, 258, 65, 66, 120,
01729 259, 167, 261, 67, 68, 122, 263, 264, 338, 398,
01730 449, 529, 530, 655, 531, 656, 532, 657, 533, 15,
01731 16, 25, 33, 82, 83, 84, 134, 307, 235, 85,
01732 86, 136, 311, 239, 87, 88, 138, 315, 243, 89,
01733 90, 141, 319, 91, 92, 143, 321, 322, 397, 448,
01734 523, 567, 568, 716, 569, 717, 570, 718, 571, 21,
01735 22, 32, 75, 128, 129, 130, 229, 380, 131, 132,
01736 231, 382, 383, 447, 522, 561, 646, 647, 776, 648,
01737 777, 649, 778, 650, 28, 29, 74, 124, 196, 197,
01738 198, 273, 411, 351, 199, 200, 276, 415, 201, 202,
01739 278, 417, 469, 678, 203, 204, 280, 419, 473, 679,
01740 205, 206, 282, 421, 477, 680, 207, 208, 284, 423,
01741 481, 681, 209, 210, 286, 425, 485, 682, 211, 212,
01742 288, 427, 489, 490, 553, 602, 603, 757, 604, 758,
01743 605, 759, 606, 213, 214, 290, 429, 494, 495, 554,
01744 612, 613, 760, 614, 761, 615, 762, 616, 215, 216,
01745 292, 431, 499, 500, 555, 622, 623, 763, 624, 764,
01746 625, 765, 626, 217, 218, 294, 433, 504, 505, 556,
01747 632, 633, 766, 634, 767, 635, 768, 636, 219, 220,
01748 296, 435, 509, 699, 221, 222, 298, 437, 513, 700,
01749 223, 224, 300, 439, 517, 701, 225, 226, 302, 441,
01750 442, 521, 560, 640, 707, 708, 824, 709, 825, 710,
01751 826, 711, 70, 71, 123, 175, 176, 177, 178, 179,
01752 266, 267, 268, 344, 407, 461, 545, 671, 742, 743,
01753 799, 866, 867, 868, 1012, 869, 547, 589, 745, 803,
01754 804, 870, 950, 951, 952, 1094, 953, 591, 675, 806,
01755 874, 875, 954, 1020, 1021, 1022, 1155, 1023, 677, 749,
01756 877, 958, 959, 1024, 1102, 1103, 1104, 1208, 1105, 751,
01757 810, 961, 1028, 1029, 1106, 1164, 1165, 1166, 1167, 1168,
01758 1209, 1237, 1238, 1263, 1281, 1282, 1283, 1297, 1284, 811,
01759 882, 883, 962, 1038, 1039, 1040, 1177, 1041, 1178, 1042,
01760 1173, 1043, 1174, 1044, 1175, 1045, 1179, 1046, 1107, 1171,
01761 1172, 1213, 1249, 1250, 1251, 1286, 1252, 1287, 1253, 1288,
01762 1254, 341, 342, 403, 458, 542, 583, 732, 794, 795,
01763 839, 930, 931, 932, 1078, 933, 585, 668, 797, 843,
01764 844, 934, 995, 996, 997, 1138, 998, 1139, 999, 669,
01765 737, 738, 798, 853, 854, 855, 1008, 856, 1009, 857,
01766 1004, 858, 1005, 859, 1006, 860, 1010, 861, 935, 1002,
01767 1003, 1083, 1146, 1147, 1148, 1230, 1149, 1231, 1150, 1232,
01768 1151, 400, 401, 454, 539, 580, 662, 784, 834, 835,
01769 903, 974, 975, 976, 1122, 977, 664, 729, 837, 907,
01770 908, 978, 1061, 1062, 1063, 1183, 1064, 1184, 1065, 730,
01771 789, 790, 838, 917, 918, 919, 1074, 920, 1075, 921,
01772 1070, 922, 1071, 923, 1072, 924, 1076, 925, 979, 1068,
01773 1069, 1127, 1191, 1192, 1193, 1256, 1194, 1257, 1195, 1258,
01774 1196, 451, 452, 535, 659, 725, 782, 830, 895, 896,
01775 1050, 897, 1051, 898, 1047, 899, 1048, 900, 1049, 901,
01776 1052, 902
01777 };
01778
01779
01780
01781 #define YYPACT_NINF -103
01782 static const yytype_int16 yypact[] =
01783 {
01784 138, 27, -103, 42, 18, 54, -103, -103, -103, 62,
01785 44, 174, -103, -103, -103, 46, 233, -103, -103, -103,
01786 -103, 48, 260, -103, -103, -103, 211, -103, 40, 291,
01787 -103, -103, -103, -31, -103, -103, -103, -103, -103, -103,
01788 -103, -103, -103, -103, -103, -103, -103, -103, 293, -103,
01789 304, -103, 306, -103, 87, -103, 308, -103, 310, -103,
01790 312, -103, 314, -103, 316, -103, 92, -103, 95, -103,
01791 -103, -103, -103, -103, -103, -19, -103, -103, -103, -103,
01792 -103, -103, -103, -103, 70, -103, 72, -103, 74, -103,
01793 318, -103, 103, 20, -103, -103, 15, -103, -103, 14,
01794 -103, -103, 131, 320, 13, -103, -103, 16, -103, -103,
01795 12, -103, -103, 11, -103, -103, 7, -103, -103, 152,
01796 322, 115, 168, 121, 3, -103, -103, -103, -103, -103,
01797 324, -103, 107, 158, 326, 195, 328, 213, 330, -1,
01798 -103, -103, 189, 196, -103, -103, -103, -103, -103, -103,
01799 -103, 223, -103, -103, -103, -103, -103, -103, -103, -103,
01800 -103, -103, -103, -103, -103, 244, -103, -103, 246, -103,
01801 111, -103, 247, 250, 253, -103, -103, -103, -103, -103,
01802 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01803 -103, -103, -103, -103, -103, -103, -103, -103, 228, -103,
01804 332, -103, 249, -103, 255, -103, 257, -103, 259, -103,
01805 261, -103, 245, -103, 264, -103, 268, -103, 274, -103,
01806 263, -103, 267, -103, 269, -103, 273, 1, -103, -103,
01807 360, 361, -103, 4, -103, -103, -103, 8, -103, -103,
01808 -103, 2, -103, -103, -103, -103, 370, -103, 317, 319,
01809 315, 372, -103, 321, 323, 313, 325, 311, 327, 374,
01810 -103, 329, 376, -103, 262, -103, 331, 241, 353, 384,
01811 386, 388, 391, 336, -4, -103, -103, 389, 390, 393,
01812 392, 395, 394, 398, 397, 400, 401, 402, 403, 404,
01813 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
01814 415, 416, 417, -103, -103, 420, -103, 421, 342, 345,
01815 -103, 422, 346, 347, -103, 424, 343, 348, -103, 349,
01816 428, -103, 266, -103, -103, -103, -103, -103, -103, -103,
01817 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01818 -103, 243, 362, 429, 340, 431, 432, 434, -103, -3,
01819 -103, -103, -103, -103, 437, -103, 438, -103, 439, -103,
01820 440, -103, 441, -103, 442, -103, 443, -103, 444, -103,
01821 445, -103, 446, -103, 447, -103, 448, -103, 449, -103,
01822 363, 450, -103, 270, -103, -103, -103, -103, -103, -103,
01823 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01824 295, 423, 451, 344, 455, 333, -103, -103, -103, -103,
01825 -103, 454, 367, 369, -103, 371, 458, -37, 459, 38,
01826 460, 252, 462, 28, 463, -67, 464, -63, 465, -71,
01827 466, -74, 467, -77, 468, -59, 469, -33, 470, 232,
01828 471, -103, 278, -103, -103, -103, -103, -103, -103, 24,
01829 -103, -103, 452, 472, 352, 475, 337, -103, -103, 477,
01830 453, 351, -103, -103, -103, -103, -103, 473, -103, -103,
01831 -103, -103, 478, -103, -103, -103, 479, -103, -103, 480,
01832 -103, -103, -103, 482, -103, -103, -103, -103, -103, -103,
01833 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01834 -103, -103, -103, -103, -103, -103, -103, 483, -103, -103,
01835 -103, 484, -103, -103, -103, -103, 485, -103, -103, -103,
01836 -103, -103, -103, 172, 418, -103, 492, 493, 494, -103,
01837 -103, -103, -103, -103, 491, 490, 481, 350, -103, -103,
01838 495, 474, 355, -103, 496, 497, 476, 364, 503, 504,
01839 505, 506, 507, 29, 283, 286, 289, 510, 511, 512,
01840 -103, 193, 435, -103, 514, 516, 517, -103, -103, -103,
01841 -103, -103, -103, -103, -103, -103, 518, -103, 515, 486,
01842 366, -103, 519, 520, 489, -103, 523, -103, 524, 521,
01843 498, 383, -103, -103, -103, -103, -103, 425, -103, 530,
01844 531, 533, -103, -103, -103, -103, -103, 430, -103, 535,
01845 536, 537, -103, -103, -103, -103, -103, 436, -103, 538,
01846 539, 541, -103, -103, -103, -103, -103, 456, -103, 542,
01847 543, 544, -103, -103, -103, -103, -103, -103, -103, -103,
01848 201, 487, -103, 545, 546, 547, -103, -103, -103, -103,
01849 -103, -103, -103, -103, -103, 548, 549, 550, 551, 202,
01850 -103, 552, 553, 513, -103, 555, -103, 554, 556, -70,
01851 557, 234, 561, -103, 560, 559, 532, 433, 502, 488,
01852 499, 500, 501, -103, -103, -103, -103, -103, -103, -103,
01853 -103, -103, -103, -103, -103, -103, -103, -103, -103, 508,
01854 509, 426, 525, -103, 569, 571, 572, -103, -103, -103,
01855 -103, -103, -103, -103, -103, -103, 570, 573, 574, -103,
01856 -103, -103, -103, -103, -103, -103, 577, -103, 576, 567,
01857 -76, 578, 221, 579, -103, -103, -103, -103, -103, -103,
01858 -103, -103, -103, -103, 580, 36, 581, -103, 582, 583,
01859 558, -103, -103, -103, -103, -103, -103, 584, 587, 588,
01860 589, 590, 591, 592, 593, 594, 595, 596, 600, -103,
01861 -103, -103, -103, -103, -103, -103, 602, 603, 604, -103,
01862 -103, -103, -103, 605, 216, 585, -103, -103, -103, -103,
01863 -103, -103, -103, -103, -103, -103, 608, 89, 150, 148,
01864 -103, -103, -103, -103, -103, 609, 19, 612, -103, 611,
01865 610, -57, -103, -103, -103, -103, -103, -103, -103, -103,
01866 -103, -103, -103, -103, 613, 614, 615, -103, -103, -103,
01867 154, -103, -103, -103, -103, -103, 616, -11, 161, 204,
01868 -103, -103, -103, -103, -103, -103, 575, 621, 622, 619,
01869 624, 625, 626, -103, -103, -103, -103, -103, -103, -103,
01870 -103, -103, 522, -103, 623, 628, -103, -103, -103, -103,
01871 209, -103, -103, -103, -103, -103, 627, -6, 630, -103,
01872 -103, -103, -103, -103, -103, -103, -103, 526, -103, 629,
01873 633, 634, 635, 636, 637, -103, -103, -103, -103, -103,
01874 -103, -103, -103, 212, -103, -103, -103, -103, -103, -103,
01875 638, 639, 640, 641, 642, 643, 644, -103, -103, -103,
01876 -103, -103, -103, -103, -103, -103, 527, -103, 645, 646,
01877 -103, -103, -103, -103, 100, -60, -103, -103, -103, 648,
01878 -103, -103, -103, -103, 649, -103, 528, -103, 650, 647,
01879 -103, -103, -103, -103, 215, -103, -103, -103, -103, -103,
01880 651, 235, 183, -103, -103, -103, -103, -103, -103, -103,
01881 529, -103, 652, 653, -103, -103, -103, -103, 17, -82,
01882 -103, -103, -103, 655, -103, -103, -103, -103, 657, -103,
01883 534, -103, 656, 661, 662, -103, -103, -103, -103, -103,
01884 -103, -103, -103, -103, 659, 660, 663, 664, 665, 666,
01885 667, 668, 670, -103, 673, -103, 562, -103, 672, 677,
01886 -103, -103, -103, -103, 220, -103, -103, -103, -103, -103,
01887 -103, 678, 679, 681, 680, 682, 685, 687, -103, -103,
01888 -103, -103, -103, -103, -103, -103, -103, 684, 686, 689,
01889 690, 691, 692, -103, 695, -103, 563, -103, 694, 699,
01890 700, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01891 697, 698, 701, 702, 703, 704, 705, 706, 707, -103,
01892 710, -103, -103, 97, -103, -103, -103, -103, -103, -103,
01893 -103, -103, -103, 709, 711, -103, 712, -103, 586, -103,
01894 714, 719, -103, -103, -103, -103, 222, -62, -103, -103,
01895 -103, 718, -103, -103, -103, -103, -103, -103, -103, -103,
01896 -103, 717, 720, -103, 721, -103, -103, 119, -103, -103,
01897 -103, -103, -103, -103, -103, -103, -103, 722, 723, 724,
01898 599, -103, 726, 725, 731, 732, -103, -103, -103, -103,
01899 -103, -103, -103, -103, 729, 730, -103, 733, -103, -103,
01900 -103, 734, 735, 736, -103, -103, -103, -103, -103, -103,
01901 -103, -103, -103, 737, 738, 739, 740, 741, 742, 743,
01902 -103, -103, 744, 745, 746, 568, -103, 747, 752, 753,
01903 754, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01904 -103, 755, -103, -103, -103, -103, -103, 751, 756, -102,
01905 368, 757, 759, 126, -103, -103, -103, -103, -103, -103,
01906 -103, -103, -103, -103, -103, 760, -103, -103, -103, 761,
01907 762, 763, 764, -103, -103, -103, -103, -103, -103, 765,
01908 766, 767, 768, 606, -103, 769, 758, 774, 775, -103,
01909 -103, -103, -103, -103, -103, 772, 773, 776, 777, -103,
01910 -103, -103, -103, 225, -103, -103, -103, -103, -103, 780,
01911 -103, -103, -103, -103, -103, -103, -103, 607, -103, 779,
01912 778, -103, -103, -103, -103, 781, 782, 783, 784, -103,
01913 787, -103, -103, -103, -103, -103, 786, 788, -103, -103
01914 };
01915
01916
01917 static const yytype_int8 yypgoto[] =
01918 {
01919 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01920 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01921 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01922 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01923 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01924 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01925 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01926 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01927 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01928 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01929 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01930 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01931 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01932 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01933 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01934 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01935 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01936 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01937 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01938 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01939 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01940 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01941 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01942 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01943 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01944 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01945 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01946 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01947 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01948 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01949 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01950 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01951 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01952 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01953 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01954 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01955 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01956 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01957 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01958 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01959 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01960 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01961 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01962 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01963 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01964 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01965 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01966 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01967 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01968 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01969 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01970 -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
01971 -103, -103
01972 };
01973
01974
01975
01976
01977
01978 #define YYTABLE_NINF -1
01979 static const yytype_uint16 yytable[] =
01980 {
01981 352, 1066, 412, 413, 244, 303, 787, 316, 317, 308,
01982 309, 162, 735, 312, 313, 160, 158, 154, 148, 146,
01983 156, 1169, 76, 1000, 144, 880, 1056, 1057, 7, 502,
01984 1235, 467, 497, 524, 525, 492, 125, 483, 597, 598,
01985 5, 1236, 6, 487, 484, 507, 503, 498, 493, 77,
01986 599, 600, 601, 78, 488, 79, 508, 80, 1058, 81,
01987 180, 126, 468, 12, 526, 1059, 1060, 527, 8, 528,
01988 1170, 511, 881, 127, 1067, 736, 13, 788, 147, 149,
01989 512, 145, 155, 181, 163, 159, 161, 157, 1001, 310,
01990 245, 318, 414, 353, 304, 314, 14, 182, 69, 183,
01991 20, 184, 102, 185, 27, 186, 1140, 1141, 119, 990,
01992 991, 187, 121, 188, 133, 189, 135, 190, 137, 191,
01993 142, 192, 168, 193, 230, 194, 956, 195, 1185, 1186,
01994 170, 171, 479, 957, 150, 1243, 1244, 480, 1142, 471,
01995 1143, 992, 472, 1144, 1145, 905, 993, 994, 906, 1,
01996 2, 872, 172, 173, 174, 164, 873, 862, 863, 845,
01997 1187, 232, 1188, 887, 888, 1189, 1190, 1245, 801, 1246,
01998 909, 802, 1247, 1248, 846, 847, 848, 169, 889, 890,
01999 891, 562, 563, 17, 18, 910, 911, 912, 849, 864,
02000 850, 865, 1030, 851, 892, 852, 246, 893, 236, 894,
02001 913, 914, 641, 642, 915, 247, 916, 1031, 1032, 1033,
02002 702, 703, 564, 926, 927, 565, 240, 566, 946, 947,
02003 1034, 970, 971, 1035, 1016, 1017, 1036, 252, 1037, 1098,
02004 1099, 1159, 1160, 643, 1277, 1278, 644, 841, 645, 265,
02005 842, 704, 23, 24, 705, 928, 706, 929, 260, 1161,
02006 948, 262, 949, 972, 269, 973, 1018, 270, 1019, 1162,
02007 271, 1100, 34, 1101, 1163, 287, 1279, 277, 1280, 30,
02008 31, 35, 272, 36, 279, 37, 281, 38, 283, 39,
02009 285, 40, 295, 41, 289, 42, 297, 43, 291, 44,
02010 301, 45, 607, 608, 293, 617, 618, 299, 627, 628,
02011 72, 73, 93, 94, 609, 610, 611, 619, 620, 621,
02012 629, 630, 631, 96, 97, 99, 100, 104, 105, 107,
02013 108, 110, 111, 113, 114, 116, 117, 139, 140, 151,
02014 152, 165, 166, 227, 228, 233, 234, 237, 238, 241,
02015 242, 274, 275, 336, 337, 349, 350, 395, 396, 405,
02016 406, 445, 446, 456, 457, 475, 476, 515, 516, 519,
02017 520, 537, 538, 723, 724, 740, 741, 305, 792, 793,
02018 306, 832, 833, 1239, 1240, 320, 1026, 1027, 323, 326,
02019 325, 333, 324, 335, 329, 340, 331, 343, 327, 345,
02020 339, 346, 328, 347, 348, 399, 354, 402, 330, 355,
02021 356, 357, 358, 359, 332, 360, 361, 362, 334, 364,
02022 363, 366, 365, 368, 367, 370, 369, 372, 371, 374,
02023 373, 376, 375, 378, 377, 381, 379, 385, 384, 387,
02024 386, 390, 391, 388, 389, 394, 404, 392, 408, 409,
02025 393, 410, 416, 418, 420, 422, 424, 426, 428, 430,
02026 432, 434, 436, 438, 440, 450, 443, 444, 455, 453,
02027 459, 462, 463, 460, 464, 466, 470, 474, 465, 478,
02028 482, 486, 491, 496, 501, 506, 510, 514, 518, 536,
02029 540, 534, 548, 541, 543, 546, 578, 549, 550, 551,
02030 544, 552, 557, 558, 559, 573, 574, 575, 576, 577,
02031 590, 572, 581, 586, 579, 584, 587, 592, 593, 594,
02032 595, 596, 582, 588, 637, 638, 639, 652, 651, 653,
02033 654, 676, 660, 658, 663, 661, 665, 667, 670, 666,
02034 673, 672, 683, 684, 685, 674, 686, 687, 688, 689,
02035 690, 692, 693, 691, 694, 696, 697, 698, 713, 714,
02036 715, 0, 728, 771, 0, 719, 720, 721, 722, 726,
02037 731, 733, 727, 695, 739, 734, 744, 746, 747, 748,
02038 712, 752, 773, 750, 774, 775, 786, 779, 936, 0,
02039 780, 781, 783, 785, 796, 791, 805, 800, 809, 807,
02040 836, 812, 808, 753, 813, 814, 815, 816, 817, 818,
02041 819, 820, 821, 822, 754, 755, 756, 823, 772, 827,
02042 828, 829, 831, 769, 770, 840, 871, 876, 878, 879,
02043 884, 885, 886, 904, 937, 938, 939, 940, 941, 942,
02044 944, 945, 964, 0, 955, 960, 965, 966, 967, 968,
02045 969, 980, 981, 982, 0, 984, 985, 986, 983, 989,
02046 1015, 0, 988, 1007, 1011, 943, 1055, 1014, 1025, 1054,
02047 1073, 1013, 1077, 1080, 1081, 1082, 1084, 1085, 0, 0,
02048 1086, 1087, 1088, 1089, 1090, 1091, 987, 1092, 1093, 1096,
02049 1097, 1108, 1109, 1079, 1110, 1112, 1053, 1111, 1113, 963,
02050 1114, 1115, 0, 1116, 0, 1095, 1117, 1118, 1119, 1120,
02051 1121, 1124, 1125, 1126, 1128, 1129, 0, 0, 1130, 1131,
02052 1132, 1133, 1134, 1135, 1136, 1137, 1152, 1154, 1153, 1156,
02053 1123, 1157, 1158, 1176, 1180, 1224, 1182, 1181, 1202, 1197,
02054 1198, 1199, 1200, 1201, 1203, 1204, 1205, 1206, 1207, 1268,
02055 1289, 1210, 1211, 1212, 1214, 1215, 1216, 1217, 1218, 1219,
02056 1220, 1221, 1222, 1223, 1225, 1226, 1227, 1228, 1233, 0,
02057 1229, 1270, 1241, 1234, 1242, 1255, 0, 0, 1259, 1260,
02058 1261, 1262, 1264, 1265, 1266, 1267, 1269, 1271, 1272, 1273,
02059 1274, 1291, 0, 1275, 1276, 1285, 1290, 0, 1292, 1293,
02060 1294, 1295, 1296, 1298, 0, 1299
02061 };
02062
02063 static const yytype_int16 yycheck[] =
02064 {
02065 4, 83, 5, 6, 5, 4, 82, 5, 6, 5,
02066 6, 4, 82, 5, 6, 4, 4, 4, 4, 4,
02067 4, 83, 53, 83, 4, 82, 9, 10, 10, 106,
02068 132, 68, 106, 9, 10, 106, 55, 104, 9, 10,
02069 13, 143, 0, 106, 111, 104, 123, 121, 119, 80,
02070 21, 22, 23, 84, 117, 86, 115, 88, 41, 90,
02071 57, 80, 99, 9, 40, 48, 49, 43, 50, 45,
02072 132, 104, 129, 92, 156, 145, 14, 153, 63, 65,
02073 113, 61, 69, 80, 77, 73, 75, 71, 148, 85,
02074 91, 89, 95, 97, 93, 87, 52, 94, 58, 96,
02075 54, 98, 15, 100, 56, 102, 9, 10, 16, 9,
02076 10, 108, 17, 110, 44, 112, 44, 114, 44, 116,
02077 17, 118, 7, 120, 17, 122, 132, 124, 9, 10,
02078 9, 10, 104, 139, 3, 9, 10, 109, 41, 101,
02079 43, 41, 104, 46, 47, 156, 46, 47, 159, 11,
02080 12, 132, 31, 32, 33, 3, 137, 9, 10, 9,
02081 41, 3, 43, 9, 10, 46, 47, 41, 132, 43,
02082 9, 135, 46, 47, 24, 25, 26, 9, 24, 25,
02083 26, 9, 10, 9, 10, 24, 25, 26, 38, 41,
02084 40, 43, 9, 43, 40, 45, 7, 43, 3, 45,
02085 39, 40, 9, 10, 43, 9, 45, 24, 25, 26,
02086 9, 10, 40, 9, 10, 43, 3, 45, 9, 10,
02087 37, 9, 10, 40, 9, 10, 43, 4, 45, 9,
02088 10, 9, 10, 40, 9, 10, 43, 148, 45, 128,
02089 151, 40, 9, 10, 43, 41, 45, 43, 4, 27,
02090 41, 5, 43, 41, 7, 43, 41, 7, 43, 37,
02091 7, 41, 51, 43, 42, 20, 41, 18, 43, 9,
02092 10, 60, 44, 62, 19, 64, 19, 66, 19, 68,
02093 19, 70, 19, 72, 20, 74, 19, 76, 20, 78,
02094 17, 80, 9, 10, 20, 9, 10, 28, 9, 10,
02095 9, 10, 9, 10, 21, 22, 23, 21, 22, 23,
02096 21, 22, 23, 9, 10, 9, 10, 9, 10, 9,
02097 10, 9, 10, 9, 10, 9, 10, 9, 10, 9,
02098 10, 9, 10, 9, 10, 9, 10, 9, 10, 9,
02099 10, 9, 10, 81, 82, 9, 10, 81, 82, 9,
02100 10, 81, 82, 9, 10, 103, 104, 125, 126, 81,
02101 82, 9, 10, 161, 162, 131, 132, 7, 147, 148,
02102 9, 155, 156, 5, 6, 5, 141, 142, 61, 7,
02103 65, 7, 63, 7, 71, 144, 75, 34, 67, 5,
02104 59, 5, 69, 5, 3, 152, 7, 35, 73, 9,
02105 7, 9, 7, 9, 77, 7, 9, 7, 79, 7,
02106 9, 7, 9, 7, 9, 7, 9, 7, 9, 7,
02107 9, 7, 9, 7, 9, 5, 9, 85, 7, 7,
02108 85, 7, 89, 87, 87, 7, 7, 89, 7, 7,
02109 91, 7, 5, 5, 5, 5, 5, 5, 5, 5,
02110 5, 5, 5, 5, 5, 160, 93, 7, 7, 36,
02111 5, 7, 95, 130, 95, 7, 7, 7, 97, 7,
02112 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
02113 5, 29, 9, 146, 7, 134, 5, 9, 9, 9,
02114 37, 9, 9, 9, 9, 3, 3, 3, 7, 9,
02115 136, 83, 7, 7, 154, 150, 9, 4, 4, 4,
02116 4, 4, 38, 37, 4, 4, 4, 3, 83, 3,
02117 3, 138, 7, 5, 158, 39, 7, 38, 5, 9,
02118 9, 7, 107, 3, 3, 37, 3, 107, 3, 3,
02119 3, 3, 3, 107, 3, 3, 3, 3, 3, 3,
02120 3, -1, 39, 127, -1, 7, 7, 7, 7, 7,
02121 5, 7, 9, 107, 7, 9, 5, 7, 9, 37,
02122 83, 69, 3, 140, 3, 3, 9, 7, 3, -1,
02123 7, 7, 5, 7, 5, 7, 5, 7, 30, 7,
02124 5, 7, 9, 105, 7, 7, 7, 7, 7, 7,
02125 7, 7, 7, 7, 105, 105, 105, 7, 83, 7,
02126 7, 7, 7, 105, 105, 7, 7, 5, 7, 9,
02127 7, 7, 7, 7, 3, 3, 7, 3, 3, 3,
02128 7, 3, 3, -1, 7, 5, 3, 3, 3, 3,
02129 3, 3, 3, 3, -1, 3, 3, 3, 7, 3,
02130 3, -1, 7, 5, 5, 133, 3, 7, 7, 7,
02131 5, 133, 5, 7, 3, 3, 7, 7, -1, -1,
02132 7, 7, 7, 7, 7, 7, 149, 7, 5, 7,
02133 3, 3, 3, 149, 3, 3, 157, 7, 3, 163,
02134 3, 7, -1, 7, -1, 133, 7, 7, 7, 7,
02135 5, 7, 3, 3, 7, 7, -1, -1, 7, 7,
02136 7, 7, 7, 7, 7, 5, 7, 5, 7, 133,
02137 157, 7, 3, 5, 7, 157, 5, 7, 3, 7,
02138 7, 7, 133, 7, 3, 3, 7, 7, 5, 133,
02139 133, 7, 7, 7, 7, 7, 7, 7, 7, 7,
02140 7, 7, 7, 7, 7, 3, 3, 3, 7, -1,
02141 5, 3, 5, 7, 5, 5, -1, -1, 7, 7,
02142 7, 7, 7, 7, 7, 7, 7, 3, 3, 7,
02143 7, 3, -1, 7, 7, 5, 7, -1, 7, 7,
02144 7, 7, 5, 7, -1, 7
02145 };
02146
02147
02148
02149 static const yytype_uint16 yystos[] =
02150 {
02151 0, 11, 12, 166, 167, 13, 0, 10, 50, 168,
02152 169, 170, 9, 14, 52, 234, 235, 9, 10, 171,
02153 54, 274, 275, 9, 10, 236, 172, 56, 299, 300,
02154 9, 10, 276, 237, 51, 60, 62, 64, 66, 68,
02155 70, 72, 74, 76, 78, 80, 173, 174, 175, 178,
02156 179, 182, 183, 186, 187, 192, 193, 196, 197, 200,
02157 201, 204, 205, 208, 209, 212, 213, 218, 219, 58,
02158 437, 438, 9, 10, 301, 277, 53, 80, 84, 86,
02159 88, 90, 238, 239, 240, 244, 245, 249, 250, 254,
02160 255, 258, 259, 9, 10, 176, 9, 10, 180, 9,
02161 10, 184, 15, 188, 9, 10, 194, 9, 10, 198,
02162 9, 10, 202, 9, 10, 206, 9, 10, 210, 16,
02163 214, 17, 220, 439, 302, 55, 80, 92, 278, 279,
02164 280, 283, 284, 44, 241, 44, 246, 44, 251, 9,
02165 10, 256, 17, 260, 4, 61, 4, 63, 4, 65,
02166 3, 9, 10, 190, 4, 69, 4, 71, 4, 73,
02167 4, 75, 4, 77, 3, 9, 10, 216, 7, 9,
02168 9, 10, 31, 32, 33, 440, 441, 442, 443, 444,
02169 57, 80, 94, 96, 98, 100, 102, 108, 110, 112,
02170 114, 116, 118, 120, 122, 124, 303, 304, 305, 309,
02171 310, 313, 314, 319, 320, 325, 326, 331, 332, 337,
02172 338, 343, 344, 358, 359, 373, 374, 388, 389, 403,
02173 404, 409, 410, 415, 416, 421, 422, 9, 10, 281,
02174 17, 285, 3, 9, 10, 243, 3, 9, 10, 248,
02175 3, 9, 10, 253, 5, 91, 7, 9, 177, 181,
02176 185, 189, 4, 191, 195, 199, 203, 207, 211, 215,
02177 4, 217, 5, 221, 222, 128, 445, 446, 447, 7,
02178 7, 7, 44, 306, 9, 10, 311, 18, 315, 19,
02179 321, 19, 327, 19, 333, 19, 339, 20, 345, 20,
02180 360, 20, 375, 20, 390, 19, 405, 19, 411, 28,
02181 417, 17, 423, 4, 93, 7, 9, 242, 5, 6,
02182 85, 247, 5, 6, 87, 252, 5, 6, 89, 257,
02183 5, 261, 262, 61, 63, 65, 7, 67, 69, 71,
02184 73, 75, 77, 7, 79, 7, 81, 82, 223, 59,
02185 144, 546, 547, 34, 448, 5, 5, 5, 3, 9,
02186 10, 308, 4, 97, 7, 9, 7, 9, 7, 9,
02187 7, 9, 7, 9, 7, 9, 7, 9, 7, 9,
02188 7, 9, 7, 9, 7, 9, 7, 9, 7, 9,
02189 282, 5, 286, 287, 7, 85, 85, 7, 87, 87,
02190 7, 89, 89, 91, 7, 81, 82, 263, 224, 152,
02191 606, 607, 35, 548, 7, 9, 10, 449, 7, 7,
02192 7, 307, 5, 6, 95, 312, 5, 316, 5, 322,
02193 5, 328, 5, 334, 5, 340, 5, 346, 5, 361,
02194 5, 376, 5, 391, 5, 406, 5, 412, 5, 418,
02195 5, 424, 425, 93, 7, 81, 82, 288, 264, 225,
02196 160, 666, 667, 36, 608, 7, 9, 10, 549, 5,
02197 130, 450, 7, 95, 95, 97, 7, 68, 99, 317,
02198 7, 101, 104, 323, 7, 103, 104, 329, 7, 104,
02199 109, 335, 7, 104, 111, 341, 7, 106, 117, 347,
02200 348, 7, 106, 119, 362, 363, 7, 106, 121, 377,
02201 378, 7, 106, 123, 392, 393, 7, 104, 115, 407,
02202 7, 104, 113, 413, 7, 125, 126, 419, 7, 81,
02203 82, 426, 289, 265, 9, 10, 40, 43, 45, 226,
02204 227, 229, 231, 233, 29, 668, 7, 9, 10, 609,
02205 5, 146, 550, 7, 37, 451, 134, 461, 9, 9,
02206 9, 9, 9, 349, 364, 379, 394, 9, 9, 9,
02207 427, 290, 9, 10, 40, 43, 45, 266, 267, 269,
02208 271, 273, 83, 3, 3, 3, 7, 9, 5, 154,
02209 610, 7, 38, 551, 150, 561, 7, 9, 37, 462,
02210 136, 472, 4, 4, 4, 4, 4, 9, 10, 21,
02211 22, 23, 350, 351, 353, 355, 357, 9, 10, 21,
02212 22, 23, 365, 366, 368, 370, 372, 9, 10, 21,
02213 22, 23, 380, 381, 383, 385, 387, 9, 10, 21,
02214 22, 23, 395, 396, 398, 400, 402, 4, 4, 4,
02215 428, 9, 10, 40, 43, 45, 291, 292, 294, 296,
02216 298, 83, 3, 3, 3, 228, 230, 232, 5, 669,
02217 7, 39, 611, 158, 621, 7, 9, 38, 562, 574,
02218 5, 452, 7, 9, 37, 473, 138, 483, 318, 324,
02219 330, 336, 342, 107, 3, 3, 3, 107, 3, 3,
02220 3, 107, 3, 3, 3, 107, 3, 3, 3, 408,
02221 414, 420, 9, 10, 40, 43, 45, 429, 430, 432,
02222 434, 436, 83, 3, 3, 3, 268, 270, 272, 7,
02223 7, 7, 7, 161, 162, 670, 7, 9, 39, 622,
02224 634, 5, 552, 7, 9, 82, 145, 575, 576, 7,
02225 131, 132, 453, 454, 5, 463, 7, 9, 37, 484,
02226 140, 494, 69, 105, 105, 105, 105, 352, 354, 356,
02227 367, 369, 371, 382, 384, 386, 397, 399, 401, 105,
02228 105, 127, 83, 3, 3, 3, 293, 295, 297, 7,
02229 7, 7, 671, 5, 612, 7, 9, 82, 153, 635,
02230 636, 7, 147, 148, 553, 554, 5, 563, 577, 455,
02231 7, 132, 135, 464, 465, 5, 474, 7, 9, 30,
02232 495, 514, 7, 7, 7, 7, 7, 7, 7, 7,
02233 7, 7, 7, 7, 431, 433, 435, 7, 7, 7,
02234 672, 7, 155, 156, 613, 614, 5, 623, 637, 555,
02235 7, 148, 151, 564, 565, 9, 24, 25, 26, 38,
02236 40, 43, 45, 578, 579, 580, 582, 584, 586, 588,
02237 590, 592, 9, 10, 41, 43, 456, 457, 458, 460,
02238 466, 7, 132, 137, 475, 476, 5, 485, 7, 9,
02239 82, 129, 515, 516, 7, 7, 7, 9, 10, 24,
02240 25, 26, 40, 43, 45, 673, 674, 676, 678, 680,
02241 682, 684, 686, 615, 7, 156, 159, 624, 625, 9,
02242 24, 25, 26, 39, 40, 43, 45, 638, 639, 640,
02243 642, 644, 646, 648, 650, 652, 9, 10, 41, 43,
02244 556, 557, 558, 560, 566, 593, 3, 3, 3, 7,
02245 3, 3, 3, 133, 7, 3, 9, 10, 41, 43,
02246 467, 468, 469, 471, 477, 7, 132, 139, 486, 487,
02247 5, 496, 517, 163, 3, 3, 3, 3, 3, 3,
02248 9, 10, 41, 43, 616, 617, 618, 620, 626, 653,
02249 3, 3, 3, 7, 3, 3, 3, 149, 7, 3,
02250 9, 10, 41, 46, 47, 567, 568, 569, 571, 573,
02251 83, 148, 594, 595, 585, 587, 589, 5, 581, 583,
02252 591, 5, 459, 133, 7, 3, 9, 10, 41, 43,
02253 478, 479, 480, 482, 488, 7, 141, 142, 497, 498,
02254 9, 24, 25, 26, 37, 40, 43, 45, 518, 519,
02255 520, 522, 524, 526, 528, 530, 532, 679, 681, 683,
02256 675, 677, 685, 157, 7, 3, 9, 10, 41, 48,
02257 49, 627, 628, 629, 631, 633, 83, 156, 654, 655,
02258 645, 647, 649, 5, 641, 643, 651, 5, 559, 149,
02259 7, 3, 3, 596, 7, 7, 7, 7, 7, 7,
02260 7, 7, 7, 5, 470, 133, 7, 3, 9, 10,
02261 41, 43, 489, 490, 491, 493, 499, 533, 3, 3,
02262 3, 7, 3, 3, 3, 7, 7, 7, 7, 7,
02263 7, 5, 619, 157, 7, 3, 3, 656, 7, 7,
02264 7, 7, 7, 7, 7, 7, 7, 5, 570, 572,
02265 9, 10, 41, 43, 46, 47, 597, 598, 599, 601,
02266 603, 605, 7, 7, 5, 481, 133, 7, 3, 9,
02267 10, 27, 37, 42, 500, 501, 502, 503, 504, 83,
02268 132, 534, 535, 525, 527, 529, 5, 521, 523, 531,
02269 7, 7, 5, 630, 632, 9, 10, 41, 43, 46,
02270 47, 657, 658, 659, 661, 663, 665, 7, 7, 7,
02271 133, 7, 3, 3, 3, 7, 7, 5, 492, 505,
02272 7, 7, 7, 536, 7, 7, 7, 7, 7, 7,
02273 7, 7, 7, 7, 157, 7, 3, 3, 3, 5,
02274 600, 602, 604, 7, 7, 132, 143, 506, 507, 5,
02275 6, 5, 5, 9, 10, 41, 43, 46, 47, 537,
02276 538, 539, 541, 543, 545, 5, 660, 662, 664, 7,
02277 7, 7, 7, 508, 7, 7, 7, 7, 133, 7,
02278 3, 3, 3, 7, 7, 7, 7, 9, 10, 41,
02279 43, 509, 510, 511, 513, 5, 540, 542, 544, 133,
02280 7, 3, 7, 7, 7, 7, 5, 512, 7, 7
02281 };
02282
02283 #define yyerrok (yyerrstatus = 0)
02284 #define yyclearin (yychar = YYEMPTY)
02285 #define YYEMPTY (-2)
02286 #define YYEOF 0
02287
02288 #define YYACCEPT goto yyacceptlab
02289 #define YYABORT goto yyabortlab
02290 #define YYERROR goto yyerrorlab
02291
02292
02293
02294
02295
02296
02297 #define YYFAIL goto yyerrlab
02298
02299 #define YYRECOVERING() (!!yyerrstatus)
02300
02301 #define YYBACKUP(Token, Value) \
02302 do \
02303 if (yychar == YYEMPTY && yylen == 1) \
02304 { \
02305 yychar = (Token); \
02306 yylval = (Value); \
02307 yytoken = YYTRANSLATE (yychar); \
02308 YYPOPSTACK (1); \
02309 goto yybackup; \
02310 } \
02311 else \
02312 { \
02313 yyerror (&yylloc, osoption, parserData, YY_("syntax error: cannot back up")); \
02314 YYERROR; \
02315 } \
02316 while (YYID (0))
02317
02318
02319 #define YYTERROR 1
02320 #define YYERRCODE 256
02321
02322
02323
02324
02325
02326
02327 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
02328 #ifndef YYLLOC_DEFAULT
02329 # define YYLLOC_DEFAULT(Current, Rhs, N) \
02330 do \
02331 if (YYID (N)) \
02332 { \
02333 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
02334 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
02335 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
02336 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
02337 } \
02338 else \
02339 { \
02340 (Current).first_line = (Current).last_line = \
02341 YYRHSLOC (Rhs, 0).last_line; \
02342 (Current).first_column = (Current).last_column = \
02343 YYRHSLOC (Rhs, 0).last_column; \
02344 } \
02345 while (YYID (0))
02346 #endif
02347
02348
02349
02350
02351
02352
02353 #ifndef YY_LOCATION_PRINT
02354 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
02355 # define YY_LOCATION_PRINT(File, Loc) \
02356 fprintf (File, "%d.%d-%d.%d", \
02357 (Loc).first_line, (Loc).first_column, \
02358 (Loc).last_line, (Loc).last_column)
02359 # else
02360 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
02361 # endif
02362 #endif
02363
02364
02365
02366
02367 #ifdef YYLEX_PARAM
02368 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
02369 #else
02370 # define YYLEX yylex (&yylval, &yylloc, scanner)
02371 #endif
02372
02373
02374 #if YYDEBUG
02375
02376 # ifndef YYFPRINTF
02377 # include <stdio.h>
02378 # define YYFPRINTF fprintf
02379 # endif
02380
02381 # define YYDPRINTF(Args) \
02382 do { \
02383 if (yydebug) \
02384 YYFPRINTF Args; \
02385 } while (YYID (0))
02386
02387 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
02388 do { \
02389 if (yydebug) \
02390 { \
02391 YYFPRINTF (stderr, "%s ", Title); \
02392 yy_symbol_print (stderr, \
02393 Type, Value, Location, osoption, parserData); \
02394 YYFPRINTF (stderr, "\n"); \
02395 } \
02396 } while (YYID (0))
02397
02398
02399
02400
02401
02402
02403
02404 #if (defined __STDC__ || defined __C99__FUNC__ \
02405 || defined __cplusplus || defined _MSC_VER)
02406 static void
02407 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, OSOption *osoption, OSoLParserData *parserData)
02408 #else
02409 static void
02410 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, osoption, parserData)
02411 FILE *yyoutput;
02412 int yytype;
02413 YYSTYPE const * const yyvaluep;
02414 YYLTYPE const * const yylocationp;
02415 OSOption *osoption;
02416 OSoLParserData *parserData;
02417 #endif
02418 {
02419 if (!yyvaluep)
02420 return;
02421 YYUSE (yylocationp);
02422 YYUSE (osoption);
02423 YYUSE (parserData);
02424 # ifdef YYPRINT
02425 if (yytype < YYNTOKENS)
02426 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
02427 # else
02428 YYUSE (yyoutput);
02429 # endif
02430 switch (yytype)
02431 {
02432 default:
02433 break;
02434 }
02435 }
02436
02437
02438
02439
02440
02441
02442 #if (defined __STDC__ || defined __C99__FUNC__ \
02443 || defined __cplusplus || defined _MSC_VER)
02444 static void
02445 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, OSOption *osoption, OSoLParserData *parserData)
02446 #else
02447 static void
02448 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, osoption, parserData)
02449 FILE *yyoutput;
02450 int yytype;
02451 YYSTYPE const * const yyvaluep;
02452 YYLTYPE const * const yylocationp;
02453 OSOption *osoption;
02454 OSoLParserData *parserData;
02455 #endif
02456 {
02457 if (yytype < YYNTOKENS)
02458 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
02459 else
02460 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
02461
02462 YY_LOCATION_PRINT (yyoutput, *yylocationp);
02463 YYFPRINTF (yyoutput, ": ");
02464 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, osoption, parserData);
02465 YYFPRINTF (yyoutput, ")");
02466 }
02467
02468
02469
02470
02471
02472
02473 #if (defined __STDC__ || defined __C99__FUNC__ \
02474 || defined __cplusplus || defined _MSC_VER)
02475 static void
02476 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
02477 #else
02478 static void
02479 yy_stack_print (bottom, top)
02480 yytype_int16 *bottom;
02481 yytype_int16 *top;
02482 #endif
02483 {
02484 YYFPRINTF (stderr, "Stack now");
02485 for (; bottom <= top; ++bottom)
02486 YYFPRINTF (stderr, " %d", *bottom);
02487 YYFPRINTF (stderr, "\n");
02488 }
02489
02490 # define YY_STACK_PRINT(Bottom, Top) \
02491 do { \
02492 if (yydebug) \
02493 yy_stack_print ((Bottom), (Top)); \
02494 } while (YYID (0))
02495
02496
02497
02498
02499
02500
02501 #if (defined __STDC__ || defined __C99__FUNC__ \
02502 || defined __cplusplus || defined _MSC_VER)
02503 static void
02504 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, OSOption *osoption, OSoLParserData *parserData)
02505 #else
02506 static void
02507 yy_reduce_print (yyvsp, yylsp, yyrule, osoption, parserData)
02508 YYSTYPE *yyvsp;
02509 YYLTYPE *yylsp;
02510 int yyrule;
02511 OSOption *osoption;
02512 OSoLParserData *parserData;
02513 #endif
02514 {
02515 int yynrhs = yyr2[yyrule];
02516 int yyi;
02517 unsigned long int yylno = yyrline[yyrule];
02518 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
02519 yyrule - 1, yylno);
02520
02521 for (yyi = 0; yyi < yynrhs; yyi++)
02522 {
02523 fprintf (stderr, " $%d = ", yyi + 1);
02524 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
02525 &(yyvsp[(yyi + 1) - (yynrhs)])
02526 , &(yylsp[(yyi + 1) - (yynrhs)]) , osoption, parserData);
02527 fprintf (stderr, "\n");
02528 }
02529 }
02530
02531 # define YY_REDUCE_PRINT(Rule) \
02532 do { \
02533 if (yydebug) \
02534 yy_reduce_print (yyvsp, yylsp, Rule, osoption, parserData); \
02535 } while (YYID (0))
02536
02537
02538
02539 int yydebug;
02540 #else
02541 # define YYDPRINTF(Args)
02542 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
02543 # define YY_STACK_PRINT(Bottom, Top)
02544 # define YY_REDUCE_PRINT(Rule)
02545 #endif
02546
02547
02548
02549 #ifndef YYINITDEPTH
02550 # define YYINITDEPTH 200
02551 #endif
02552
02553
02554
02555
02556
02557
02558
02559
02560 #ifndef YYMAXDEPTH
02561 # define YYMAXDEPTH 10000
02562 #endif
02563
02564
02565
02566 #if YYERROR_VERBOSE
02567
02568 # ifndef yystrlen
02569 # if defined __GLIBC__ && defined _STRING_H
02570 # define yystrlen strlen
02571 # else
02572
02573 #if (defined __STDC__ || defined __C99__FUNC__ \
02574 || defined __cplusplus || defined _MSC_VER)
02575 static YYSIZE_T
02576 yystrlen (const char *yystr)
02577 #else
02578 static YYSIZE_T
02579 yystrlen (yystr)
02580 const char *yystr;
02581 #endif
02582 {
02583 YYSIZE_T yylen;
02584 for (yylen = 0; yystr[yylen]; yylen++)
02585 continue;
02586 return yylen;
02587 }
02588 # endif
02589 # endif
02590
02591 # ifndef yystpcpy
02592 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
02593 # define yystpcpy stpcpy
02594 # else
02595
02596
02597 #if (defined __STDC__ || defined __C99__FUNC__ \
02598 || defined __cplusplus || defined _MSC_VER)
02599 static char *
02600 yystpcpy (char *yydest, const char *yysrc)
02601 #else
02602 static char *
02603 yystpcpy (yydest, yysrc)
02604 char *yydest;
02605 const char *yysrc;
02606 #endif
02607 {
02608 char *yyd = yydest;
02609 const char *yys = yysrc;
02610
02611 while ((*yyd++ = *yys++) != '\0')
02612 continue;
02613
02614 return yyd - 1;
02615 }
02616 # endif
02617 # endif
02618
02619 # ifndef yytnamerr
02620
02621
02622
02623
02624
02625
02626
02627 static YYSIZE_T
02628 yytnamerr (char *yyres, const char *yystr)
02629 {
02630 if (*yystr == '"')
02631 {
02632 YYSIZE_T yyn = 0;
02633 char const *yyp = yystr;
02634
02635 for (;;)
02636 switch (*++yyp)
02637 {
02638 case '\'':
02639 case ',':
02640 goto do_not_strip_quotes;
02641
02642 case '\\':
02643 if (*++yyp != '\\')
02644 goto do_not_strip_quotes;
02645
02646 default:
02647 if (yyres)
02648 yyres[yyn] = *yyp;
02649 yyn++;
02650 break;
02651
02652 case '"':
02653 if (yyres)
02654 yyres[yyn] = '\0';
02655 return yyn;
02656 }
02657 do_not_strip_quotes: ;
02658 }
02659
02660 if (! yyres)
02661 return yystrlen (yystr);
02662
02663 return yystpcpy (yyres, yystr) - yyres;
02664 }
02665 # endif
02666
02667
02668
02669
02670
02671
02672
02673
02674 static YYSIZE_T
02675 yysyntax_error (char *yyresult, int yystate, int yychar)
02676 {
02677 int yyn = yypact[yystate];
02678
02679 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
02680 return 0;
02681 else
02682 {
02683 int yytype = YYTRANSLATE (yychar);
02684 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
02685 YYSIZE_T yysize = yysize0;
02686 YYSIZE_T yysize1;
02687 int yysize_overflow = 0;
02688 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
02689 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
02690 int yyx;
02691
02692 # if 0
02693
02694
02695 YY_("syntax error, unexpected %s");
02696 YY_("syntax error, unexpected %s, expecting %s");
02697 YY_("syntax error, unexpected %s, expecting %s or %s");
02698 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
02699 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
02700 # endif
02701 char *yyfmt;
02702 char const *yyf;
02703 static char const yyunexpected[] = "syntax error, unexpected %s";
02704 static char const yyexpecting[] = ", expecting %s";
02705 static char const yyor[] = " or %s";
02706 char yyformat[sizeof yyunexpected
02707 + sizeof yyexpecting - 1
02708 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
02709 * (sizeof yyor - 1))];
02710 char const *yyprefix = yyexpecting;
02711
02712
02713
02714 int yyxbegin = yyn < 0 ? -yyn : 0;
02715
02716
02717 int yychecklim = YYLAST - yyn + 1;
02718 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
02719 int yycount = 1;
02720
02721 yyarg[0] = yytname[yytype];
02722 yyfmt = yystpcpy (yyformat, yyunexpected);
02723
02724 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
02725 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
02726 {
02727 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
02728 {
02729 yycount = 1;
02730 yysize = yysize0;
02731 yyformat[sizeof yyunexpected - 1] = '\0';
02732 break;
02733 }
02734 yyarg[yycount++] = yytname[yyx];
02735 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
02736 yysize_overflow |= (yysize1 < yysize);
02737 yysize = yysize1;
02738 yyfmt = yystpcpy (yyfmt, yyprefix);
02739 yyprefix = yyor;
02740 }
02741
02742 yyf = YY_(yyformat);
02743 yysize1 = yysize + yystrlen (yyf);
02744 yysize_overflow |= (yysize1 < yysize);
02745 yysize = yysize1;
02746
02747 if (yysize_overflow)
02748 return YYSIZE_MAXIMUM;
02749
02750 if (yyresult)
02751 {
02752
02753
02754
02755 char *yyp = yyresult;
02756 int yyi = 0;
02757 while ((*yyp = *yyf) != '\0')
02758 {
02759 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
02760 {
02761 yyp += yytnamerr (yyp, yyarg[yyi++]);
02762 yyf += 2;
02763 }
02764 else
02765 {
02766 yyp++;
02767 yyf++;
02768 }
02769 }
02770 }
02771 return yysize;
02772 }
02773 }
02774 #endif
02775
02776
02777
02778
02779
02780
02781
02782 #if (defined __STDC__ || defined __C99__FUNC__ \
02783 || defined __cplusplus || defined _MSC_VER)
02784 static void
02785 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, OSOption *osoption, OSoLParserData *parserData)
02786 #else
02787 static void
02788 yydestruct (yymsg, yytype, yyvaluep, yylocationp, osoption, parserData)
02789 const char *yymsg;
02790 int yytype;
02791 YYSTYPE *yyvaluep;
02792 YYLTYPE *yylocationp;
02793 OSOption *osoption;
02794 OSoLParserData *parserData;
02795 #endif
02796 {
02797 YYUSE (yyvaluep);
02798 YYUSE (yylocationp);
02799 YYUSE (osoption);
02800 YYUSE (parserData);
02801
02802 if (!yymsg)
02803 yymsg = "Deleting";
02804 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
02805
02806 switch (yytype)
02807 {
02808
02809 default:
02810 break;
02811 }
02812 }
02813
02814
02815
02816
02817 #ifdef YYPARSE_PARAM
02818 #if defined __STDC__ || defined __cplusplus
02819 int yyparse (void *YYPARSE_PARAM);
02820 #else
02821 int yyparse ();
02822 #endif
02823 #else
02824 #if defined __STDC__ || defined __cplusplus
02825 int yyparse (OSOption *osoption, OSoLParserData *parserData);
02826 #else
02827 int yyparse ();
02828 #endif
02829 #endif
02830
02831
02832
02833
02834
02835
02836
02837
02838
02839
02840 #ifdef YYPARSE_PARAM
02841 #if (defined __STDC__ || defined __C99__FUNC__ \
02842 || defined __cplusplus || defined _MSC_VER)
02843 int
02844 yyparse (void *YYPARSE_PARAM)
02845 #else
02846 int
02847 yyparse (YYPARSE_PARAM)
02848 void *YYPARSE_PARAM;
02849 #endif
02850 #else
02851 #if (defined __STDC__ || defined __C99__FUNC__ \
02852 || defined __cplusplus || defined _MSC_VER)
02853 int
02854 yyparse (OSOption *osoption, OSoLParserData *parserData)
02855 #else
02856 int
02857 yyparse (osoption, parserData)
02858 OSOption *osoption;
02859 OSoLParserData *parserData;
02860 #endif
02861 #endif
02862 {
02863
02864 int yychar;
02865
02866
02867 YYSTYPE yylval;
02868
02869
02870 int yynerrs;
02871
02872 YYLTYPE yylloc;
02873
02874 int yystate;
02875 int yyn;
02876 int yyresult;
02877
02878 int yyerrstatus;
02879
02880 int yytoken = 0;
02881 #if YYERROR_VERBOSE
02882
02883 char yymsgbuf[128];
02884 char *yymsg = yymsgbuf;
02885 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
02886 #endif
02887
02888
02889
02890
02891
02892
02893
02894
02895
02896
02897 yytype_int16 yyssa[YYINITDEPTH];
02898 yytype_int16 *yyss = yyssa;
02899 yytype_int16 *yyssp;
02900
02901
02902 YYSTYPE yyvsa[YYINITDEPTH];
02903 YYSTYPE *yyvs = yyvsa;
02904 YYSTYPE *yyvsp;
02905
02906
02907 YYLTYPE yylsa[YYINITDEPTH];
02908 YYLTYPE *yyls = yylsa;
02909 YYLTYPE *yylsp;
02910
02911 YYLTYPE yyerror_range[2];
02912
02913 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
02914
02915 YYSIZE_T yystacksize = YYINITDEPTH;
02916
02917
02918
02919 YYSTYPE yyval;
02920 YYLTYPE yyloc;
02921
02922
02923
02924 int yylen = 0;
02925
02926 YYDPRINTF ((stderr, "Starting parse\n"));
02927
02928 yystate = 0;
02929 yyerrstatus = 0;
02930 yynerrs = 0;
02931 yychar = YYEMPTY;
02932
02933
02934
02935
02936
02937
02938 yyssp = yyss;
02939 yyvsp = yyvs;
02940 yylsp = yyls;
02941 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
02942
02943 yylloc.first_line = yylloc.last_line = 1;
02944 yylloc.first_column = yylloc.last_column = 0;
02945 #endif
02946
02947 goto yysetstate;
02948
02949
02950
02951
02952 yynewstate:
02953
02954
02955 yyssp++;
02956
02957 yysetstate:
02958 *yyssp = yystate;
02959
02960 if (yyss + yystacksize - 1 <= yyssp)
02961 {
02962
02963 YYSIZE_T yysize = yyssp - yyss + 1;
02964
02965 #ifdef yyoverflow
02966 {
02967
02968
02969
02970 YYSTYPE *yyvs1 = yyvs;
02971 yytype_int16 *yyss1 = yyss;
02972 YYLTYPE *yyls1 = yyls;
02973
02974
02975
02976
02977
02978 yyoverflow (YY_("memory exhausted"),
02979 &yyss1, yysize * sizeof (*yyssp),
02980 &yyvs1, yysize * sizeof (*yyvsp),
02981 &yyls1, yysize * sizeof (*yylsp),
02982 &yystacksize);
02983 yyls = yyls1;
02984 yyss = yyss1;
02985 yyvs = yyvs1;
02986 }
02987 #else
02988 # ifndef YYSTACK_RELOCATE
02989 goto yyexhaustedlab;
02990 # else
02991
02992 if (YYMAXDEPTH <= yystacksize)
02993 goto yyexhaustedlab;
02994 yystacksize *= 2;
02995 if (YYMAXDEPTH < yystacksize)
02996 yystacksize = YYMAXDEPTH;
02997
02998 {
02999 yytype_int16 *yyss1 = yyss;
03000 union yyalloc *yyptr =
03001 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
03002 if (! yyptr)
03003 goto yyexhaustedlab;
03004 YYSTACK_RELOCATE (yyss);
03005 YYSTACK_RELOCATE (yyvs);
03006 YYSTACK_RELOCATE (yyls);
03007 # undef YYSTACK_RELOCATE
03008 if (yyss1 != yyssa)
03009 YYSTACK_FREE (yyss1);
03010 }
03011 # endif
03012 #endif
03013
03014 yyssp = yyss + yysize - 1;
03015 yyvsp = yyvs + yysize - 1;
03016 yylsp = yyls + yysize - 1;
03017
03018 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
03019 (unsigned long int) yystacksize));
03020
03021 if (yyss + yystacksize - 1 <= yyssp)
03022 YYABORT;
03023 }
03024
03025 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
03026
03027 goto yybackup;
03028
03029
03030
03031
03032 yybackup:
03033
03034
03035
03036
03037
03038 yyn = yypact[yystate];
03039 if (yyn == YYPACT_NINF)
03040 goto yydefault;
03041
03042
03043
03044
03045 if (yychar == YYEMPTY)
03046 {
03047 YYDPRINTF ((stderr, "Reading a token: "));
03048 yychar = YYLEX;
03049 }
03050
03051 if (yychar <= YYEOF)
03052 {
03053 yychar = yytoken = YYEOF;
03054 YYDPRINTF ((stderr, "Now at end of input.\n"));
03055 }
03056 else
03057 {
03058 yytoken = YYTRANSLATE (yychar);
03059 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
03060 }
03061
03062
03063
03064 yyn += yytoken;
03065 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
03066 goto yydefault;
03067 yyn = yytable[yyn];
03068 if (yyn <= 0)
03069 {
03070 if (yyn == 0 || yyn == YYTABLE_NINF)
03071 goto yyerrlab;
03072 yyn = -yyn;
03073 goto yyreduce;
03074 }
03075
03076 if (yyn == YYFINAL)
03077 YYACCEPT;
03078
03079
03080
03081 if (yyerrstatus)
03082 yyerrstatus--;
03083
03084
03085 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
03086
03087
03088 if (yychar != YYEOF)
03089 yychar = YYEMPTY;
03090
03091 yystate = yyn;
03092 *++yyvsp = yylval;
03093 *++yylsp = yylloc;
03094 goto yynewstate;
03095
03096
03097
03098
03099
03100 yydefault:
03101 yyn = yydefact[yystate];
03102 if (yyn == 0)
03103 goto yyerrlab;
03104 goto yyreduce;
03105
03106
03107
03108
03109
03110 yyreduce:
03111
03112 yylen = yyr2[yyn];
03113
03114
03115
03116
03117
03118
03119
03120
03121
03122 yyval = yyvsp[1-yylen];
03123
03124
03125 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
03126 YY_REDUCE_PRINT (yyn);
03127 switch (yyn)
03128 {
03129 case 9:
03130
03131 { if (parserData->osolgeneralPresent)
03132 { osolerror( NULL, osoption, parserData, "only one <general> element allowed");
03133 }
03134 else
03135 { parserData->osolgeneralPresent = true;
03136 osoption->general = new GeneralOption();
03137 }
03138 }
03139 break;
03140
03141 case 26:
03142
03143 { if (parserData->serviceURIPresent)
03144 { osolerror( NULL, osoption, parserData, "only one <serviceURI> element allowed");
03145 }
03146 else
03147 { parserData->serviceURIPresent = true;
03148 }
03149 }
03150 break;
03151
03152 case 29:
03153
03154 {osoption->general->serviceURI = (yyvsp[(2) - (2)].sval);}
03155 break;
03156
03157 case 32:
03158
03159 { if (parserData->serviceNamePresent)
03160 { osolerror( NULL, osoption, parserData, "only one <serviceName> element allowed");
03161 }
03162 else
03163 { parserData->serviceNamePresent = true;
03164 }
03165 }
03166 break;
03167
03168 case 35:
03169
03170 {osoption->general->serviceName = (yyvsp[(2) - (2)].sval);}
03171 break;
03172
03173 case 38:
03174
03175 { if (parserData->instanceNamePresent)
03176 { osolerror( NULL, osoption, parserData, "only one <instanceName> element allowed");
03177 }
03178 else
03179 { parserData->instanceNamePresent = true;
03180 }
03181 }
03182 break;
03183
03184 case 41:
03185
03186 {osoption->general->instanceName = (yyvsp[(2) - (2)].sval);}
03187 break;
03188
03189 case 44:
03190
03191 { if (parserData->instanceLocationPresent)
03192 { osolerror( NULL, osoption, parserData, "only one <instanceLocation> element allowed");
03193 }
03194 else
03195 { parserData->instanceLocationPresent = true;
03196 osoption->general->instanceLocation = new InstanceLocationOption();
03197 osoption->general->instanceLocation->locationType = "local";
03198 }
03199 }
03200 break;
03201
03202 case 46:
03203
03204 {
03205 if (verifyLocationType((yyvsp[(2) - (2)].sval)) == true)
03206 osoption->general->instanceLocation->locationType = (yyvsp[(2) - (2)].sval);
03207 else
03208 osolerror( NULL, osoption, parserData, "Not a valid locationType");
03209 }
03210 break;
03211
03212 case 51:
03213
03214 {osoption->general->instanceLocation->value = (yyvsp[(1) - (1)].sval);}
03215 break;
03216
03217 case 53:
03218
03219 { if (parserData->jobIDPresent)
03220 { osolerror( NULL, osoption, parserData, "only one <jobID> element allowed");
03221 }
03222 else
03223 { parserData->jobIDPresent = true;
03224 }
03225 }
03226 break;
03227
03228 case 56:
03229
03230 {osoption->general->jobID = (yyvsp[(2) - (2)].sval);}
03231 break;
03232
03233 case 59:
03234
03235 { if (parserData->solverToInvokePresent)
03236 { osolerror( NULL, osoption, parserData, "only one <solverToInvoke> element allowed");
03237 }
03238 else
03239 { parserData->solverToInvokePresent = true;
03240 }
03241 }
03242 break;
03243
03244 case 62:
03245
03246 {osoption->general->solverToInvoke = (yyvsp[(2) - (2)].sval);}
03247 break;
03248
03249 case 65:
03250
03251 { if (parserData->licensePresent)
03252 { osolerror( NULL, osoption, parserData, "only one <license> element allowed");
03253 }
03254 else
03255 { parserData->licensePresent = true;
03256 }
03257 }
03258 break;
03259
03260 case 68:
03261
03262 {osoption->general->license = (yyvsp[(2) - (2)].sval);}
03263 break;
03264
03265 case 71:
03266
03267 { if (parserData->usernamePresent)
03268 { osolerror( NULL, osoption, parserData, "only one <userName> element allowed");
03269 }
03270 else
03271 { parserData->usernamePresent = true;
03272 }
03273 }
03274 break;
03275
03276 case 74:
03277
03278 {osoption->general->userName = (yyvsp[(2) - (2)].sval);}
03279 break;
03280
03281 case 77:
03282
03283 { if (parserData->passwordPresent)
03284 { osolerror( NULL, osoption, parserData, "only one <password> element allowed");
03285 }
03286 else
03287 { parserData->passwordPresent = true;
03288 }
03289 }
03290 break;
03291
03292 case 80:
03293
03294 {osoption->general->password = (yyvsp[(2) - (2)].sval);}
03295 break;
03296
03297 case 83:
03298
03299 { if (parserData->contactPresent)
03300 { osolerror( NULL, osoption, parserData, "only one <contact> element allowed");
03301 }
03302 else
03303 { parserData->contactPresent = true;
03304 osoption->general->contact = new ContactOption();
03305 osoption->general->contact->transportType = "osp";
03306 }
03307 }
03308 break;
03309
03310 case 85:
03311
03312 {
03313 if (verifyTransportType((yyvsp[(2) - (2)].sval)) == true)
03314 osoption->general->contact->transportType = (yyvsp[(2) - (2)].sval);
03315 else
03316 osolerror( NULL, osoption, parserData, "Not a valid transport type");
03317 }
03318 break;
03319
03320 case 90:
03321
03322 {osoption->general->contact->value = (yyvsp[(1) - (1)].sval);}
03323 break;
03324
03325 case 92:
03326
03327 { if (parserData->otherGeneralOptionsPresent)
03328 { osolerror( NULL, osoption, parserData, "only one <otherOptions> element allowed");
03329 }
03330 else
03331 { parserData->otherGeneralOptionsPresent = true;
03332 osoption->general->otherOptions = new OtherOptions();
03333 }
03334 }
03335 break;
03336
03337 case 93:
03338
03339 { if ((yyvsp[(3) - (4)].ival) < 0)
03340 osolerror( NULL, osoption, parserData, "Number of <other> elements cannot be negative");
03341 osoption->general->otherOptions->numberOfOtherOptions = (yyvsp[(3) - (4)].ival);
03342 osoption->general->otherOptions->other = new OtherOption*[(yyvsp[(3) - (4)].ival)];
03343 for (int i=0; i < (yyvsp[(3) - (4)].ival); i++) osoption->general->otherOptions->other[i] = new OtherOption();
03344 }
03345 break;
03346
03347 case 94:
03348
03349 { if (parserData->numberOfOtherGeneralOptions != osoption->general->otherOptions->numberOfOtherOptions)
03350 osolerror (NULL, osoption, parserData, "wrong number of other options in <general> element");
03351 }
03352 break;
03353
03354 case 97:
03355
03356 { if (parserData->numberOfOtherGeneralOptions >= osoption->general->otherOptions->numberOfOtherOptions)
03357 { osolerror (NULL, osoption, parserData, "too many other options in <general> element");
03358 };
03359 }
03360 break;
03361
03362 case 98:
03363
03364 { if (!parserData->otherOptionNamePresent)
03365 osolerror (NULL, osoption, parserData, "name attribute must be present");
03366
03367 parserData->otherOptionNamePresent = false;
03368 parserData->otherOptionValuePresent = false;
03369 parserData->otherOptionDescriptionPresent = false;
03370 parserData->numberOfOtherGeneralOptions++;
03371 }
03372 break;
03373
03374 case 104:
03375
03376 { if (parserData->otherOptionNamePresent)
03377 { osolerror( NULL, osoption, parserData, "only one name attribute allowed");
03378 }
03379 else
03380 { parserData->otherOptionNamePresent = true;
03381 osoption->general->otherOptions->other[parserData->numberOfOtherGeneralOptions]->name = (yyvsp[(2) - (2)].sval);
03382 }
03383 }
03384 break;
03385
03386 case 106:
03387
03388 { if (parserData->otherOptionValuePresent)
03389 { osolerror( NULL, osoption, parserData, "only one value attribute allowed");
03390 }
03391 else
03392 { parserData->otherOptionValuePresent = true;
03393 osoption->general->otherOptions->other[parserData->numberOfOtherGeneralOptions]->value = (yyvsp[(2) - (2)].sval);
03394 }
03395 }
03396 break;
03397
03398 case 108:
03399
03400 { if (parserData->otherOptionDescriptionPresent)
03401 { osolerror( NULL, osoption, parserData, "only one description attribute allowed");
03402 }
03403 else
03404 { parserData->otherOptionDescriptionPresent = true;
03405 osoption->general->otherOptions->other[parserData->numberOfOtherGeneralOptions]->description = (yyvsp[(2) - (2)].sval);
03406 }
03407 }
03408 break;
03409
03410 case 114:
03411
03412 { if (parserData->osolsystemPresent)
03413 { osolerror( NULL, osoption, parserData, "only one <system> element allowed");
03414 }
03415 else
03416 { parserData->osolsystemPresent = true;
03417 osoption->system = new SystemOption();
03418 }
03419 }
03420 break;
03421
03422 case 125:
03423
03424 { if (parserData->minDiskSpacePresent)
03425 { osolerror( NULL, osoption, parserData, "only one <minDiskSpace> element allowed");
03426 }
03427 else
03428 { parserData->minDiskSpacePresent = true;
03429 osoption->system->minDiskSpace = new MinDiskSpace();
03430 osoption->system->minDiskSpace->unit = "byte";
03431 }
03432 }
03433 break;
03434
03435 case 127:
03436
03437 {
03438 if ( verifyStorageUnit((yyvsp[(2) - (2)].sval)) == true)
03439 osoption->system->minDiskSpace->unit = (yyvsp[(2) - (2)].sval);
03440 else
03441 osolerror( NULL, osoption, parserData, "Not a valid unit");
03442 }
03443 break;
03444
03445 case 131:
03446
03447 { if ((yyvsp[(2) - (3)].dval) < 0)
03448 osolerror( NULL, osoption, parserData, "minDiskSpace cannot be negative");
03449 osoption->system->minDiskSpace->value = (yyvsp[(2) - (3)].dval);
03450 }
03451 break;
03452
03453 case 132:
03454
03455 { if ((yyvsp[(2) - (3)].ival) < 0)
03456 osolerror( NULL, osoption, parserData, "minDiskSpace cannot be negative");
03457 osoption->system->minDiskSpace->value = (yyvsp[(2) - (3)].ival);
03458 }
03459 break;
03460
03461 case 134:
03462
03463 { if (parserData->minMemorySizePresent)
03464 { osolerror( NULL, osoption, parserData, "only one <minMemorySize> element allowed");
03465 }
03466 else
03467 { parserData->minMemorySizePresent = true;
03468 osoption->system->minMemorySize = new MinMemorySize();
03469 osoption->system->minMemorySize->unit = "byte";
03470 }
03471 }
03472 break;
03473
03474 case 136:
03475
03476 {
03477 if ( verifyStorageUnit((yyvsp[(2) - (2)].sval)) == true)
03478 osoption->system->minMemorySize->unit = (yyvsp[(2) - (2)].sval);
03479 else
03480 osolerror( NULL, osoption, parserData, "Not a valid unit");
03481 }
03482 break;
03483
03484 case 140:
03485
03486 { if ((yyvsp[(2) - (3)].dval) < 0)
03487 osolerror( NULL, osoption, parserData, "minMemorySize cannot be negative");
03488 osoption->system->minMemorySize->value = (yyvsp[(2) - (3)].dval);
03489 }
03490 break;
03491
03492 case 141:
03493
03494 { if ((yyvsp[(2) - (3)].ival) < 0)
03495 osolerror( NULL, osoption, parserData, "minMemorySize cannot be negative");
03496 osoption->system->minMemorySize->value = (yyvsp[(2) - (3)].ival);
03497 }
03498 break;
03499
03500 case 143:
03501
03502 { if (parserData->minCPUSpeedPresent)
03503 { osolerror( NULL, osoption, parserData, "only one <minCPUSpeed> element allowed");
03504 }
03505 else
03506 { parserData->minCPUSpeedPresent = true;
03507 osoption->system->minCPUSpeed = new MinCPUSpeed();
03508 osoption->system->minCPUSpeed->unit = "hertz";
03509 }
03510 }
03511 break;
03512
03513 case 145:
03514
03515 {
03516 if ( verifyCPUSpeedUnit((yyvsp[(2) - (2)].sval)) == true)
03517 osoption->system->minCPUSpeed->unit = (yyvsp[(2) - (2)].sval);
03518 else
03519 osolerror( NULL, osoption, parserData, "Not a valid unit");
03520 }
03521 break;
03522
03523 case 149:
03524
03525 { if ((yyvsp[(2) - (3)].dval) < 0)
03526 osolerror( NULL, osoption, parserData, "minCPUSpeed cannot be negative");
03527 osoption->system->minCPUSpeed->value = (yyvsp[(2) - (3)].dval);
03528 }
03529 break;
03530
03531 case 150:
03532
03533 { if ((yyvsp[(2) - (3)].ival) < 0)
03534 osolerror( NULL, osoption, parserData, "minCPUSpeed cannot be negative");
03535 osoption->system->minCPUSpeed->value = (yyvsp[(2) - (3)].ival);
03536 }
03537 break;
03538
03539 case 152:
03540
03541 { if (parserData->minCPUNumberPresent)
03542 { osolerror( NULL, osoption, parserData, "only one <minCPUNumber> element allowed");
03543 }
03544 else
03545 { parserData->minCPUNumberPresent = true;
03546 }
03547 }
03548 break;
03549
03550 case 155:
03551
03552 { if ((yyvsp[(2) - (2)].ival) < 0)
03553 osolerror( NULL, osoption, parserData, "minCPUNumber cannot be negative");
03554 osoption->system->minCPUNumber = (yyvsp[(2) - (2)].ival);
03555 }
03556 break;
03557
03558 case 158:
03559
03560 { if (parserData->otherSystemOptionsPresent)
03561 { osolerror( NULL, osoption, parserData, "only one <otherOptions> element allowed");
03562 }
03563 else
03564 { parserData->otherSystemOptionsPresent = true;
03565 osoption->system->otherOptions = new OtherOptions();
03566 }
03567 }
03568 break;
03569
03570 case 159:
03571
03572 { if ((yyvsp[(3) - (4)].ival) < 0)
03573 osolerror( NULL, osoption, parserData, "Number of <other> elements cannot be negative");
03574 osoption->system->otherOptions->numberOfOtherOptions = (yyvsp[(3) - (4)].ival);
03575 osoption->system->otherOptions->other = new OtherOption*[(yyvsp[(3) - (4)].ival)];
03576 for (int i=0; i < (yyvsp[(3) - (4)].ival); i++) osoption->system->otherOptions->other[i] = new OtherOption();
03577 }
03578 break;
03579
03580 case 160:
03581
03582 { if (parserData->numberOfOtherSystemOptions != osoption->system->otherOptions->numberOfOtherOptions)
03583 osolerror (NULL, osoption, parserData, "wrong number of other options in <system> element");
03584 }
03585 break;
03586
03587 case 163:
03588
03589 { if (parserData->numberOfOtherSystemOptions >= osoption->system->otherOptions->numberOfOtherOptions)
03590 { osolerror (NULL, osoption, parserData, "too many other options in <system> element");
03591 };
03592 }
03593 break;
03594
03595 case 164:
03596
03597 { if (!parserData->otherOptionNamePresent)
03598 osolerror (NULL, osoption, parserData, "name attribute must be present");
03599
03600 parserData->otherOptionNamePresent = false;
03601 parserData->otherOptionValuePresent = false;
03602 parserData->otherOptionDescriptionPresent = false;
03603 parserData->numberOfOtherSystemOptions++;
03604 }
03605 break;
03606
03607 case 170:
03608
03609 { if (parserData->otherOptionNamePresent)
03610 { osolerror( NULL, osoption, parserData, "only one name attribute allowed");
03611 }
03612 else
03613 { parserData->otherOptionNamePresent = true;
03614 osoption->system->otherOptions->other[parserData->numberOfOtherSystemOptions]->name = (yyvsp[(2) - (2)].sval);
03615 }
03616 }
03617 break;
03618
03619 case 172:
03620
03621 { if (parserData->otherOptionValuePresent)
03622 { osolerror( NULL, osoption, parserData, "only one value attribute allowed");
03623 }
03624 else
03625 { parserData->otherOptionValuePresent = true;
03626 osoption->system->otherOptions->other[parserData->numberOfOtherSystemOptions]->value = (yyvsp[(2) - (2)].sval);
03627 }
03628 }
03629 break;
03630
03631 case 174:
03632
03633 { if (parserData->otherOptionDescriptionPresent)
03634 { osolerror( NULL, osoption, parserData, "only one description attribute allowed");
03635 }
03636 else
03637 { parserData->otherOptionDescriptionPresent = true;
03638 osoption->system->otherOptions->other[parserData->numberOfOtherSystemOptions]->description = (yyvsp[(2) - (2)].sval);
03639 }
03640 }
03641 break;
03642
03643 case 180:
03644
03645 { if (parserData->osolservicePresent)
03646 { osolerror( NULL, osoption, parserData, "only one <service> element allowed");
03647 }
03648 else
03649 { parserData->osolservicePresent = true;
03650 osoption->service = new ServiceOption();
03651 }
03652 }
03653 break;
03654
03655 case 188:
03656
03657 { if (parserData->serviceTypePresent)
03658 { osolerror( NULL, osoption, parserData, "only one <type> element allowed");
03659 }
03660 else
03661 { parserData->serviceTypePresent = true;
03662 osoption->service->type = "solver";
03663 }
03664 }
03665 break;
03666
03667 case 191:
03668
03669 {
03670 if (verifyServiceType((yyvsp[(2) - (2)].sval)) == true)
03671 osoption->service->type = (yyvsp[(2) - (2)].sval);
03672 else
03673 osolerror( NULL, osoption, parserData, "Not a valid service type");
03674 }
03675 break;
03676
03677 case 194:
03678
03679 { if (parserData->otherServiceOptionsPresent)
03680 { osolerror( NULL, osoption, parserData, "only one <otherOptions> element allowed");
03681 }
03682 else
03683 { parserData->otherServiceOptionsPresent = true;
03684 osoption->service->otherOptions = new OtherOptions();
03685 }
03686 }
03687 break;
03688
03689 case 195:
03690
03691 { if ((yyvsp[(3) - (4)].ival) < 0)
03692 osolerror( NULL, osoption, parserData, "Number of <other> elements cannot be negative");
03693 osoption->service->otherOptions->numberOfOtherOptions = (yyvsp[(3) - (4)].ival);
03694 osoption->service->otherOptions->other = new OtherOption*[(yyvsp[(3) - (4)].ival)];
03695 for (int i=0; i < (yyvsp[(3) - (4)].ival); i++) osoption->service->otherOptions->other[i] = new OtherOption();
03696 }
03697 break;
03698
03699 case 196:
03700
03701 { if (parserData->numberOfOtherServiceOptions != osoption->service->otherOptions->numberOfOtherOptions)
03702 osolerror (NULL, osoption, parserData, "wrong number of other options in <service> element");
03703 }
03704 break;
03705
03706 case 199:
03707
03708 { if (parserData->numberOfOtherServiceOptions >= osoption->service->otherOptions->numberOfOtherOptions)
03709 { osolerror (NULL, osoption, parserData, "too many other options in <service> element");
03710 };
03711 }
03712 break;
03713
03714 case 200:
03715
03716 { if (!parserData->otherOptionNamePresent)
03717 osolerror (NULL, osoption, parserData, "name attribute must be present");
03718
03719 parserData->otherOptionNamePresent = false;
03720 parserData->otherOptionValuePresent = false;
03721 parserData->otherOptionDescriptionPresent = false;
03722 parserData->numberOfOtherServiceOptions++;
03723 }
03724 break;
03725
03726 case 206:
03727
03728 { if (parserData->otherOptionNamePresent)
03729 { osolerror( NULL, osoption, parserData, "only one name attribute allowed");
03730 }
03731 else
03732 { parserData->otherOptionNamePresent = true;
03733 osoption->service->otherOptions->other[parserData->numberOfOtherServiceOptions]->name = (yyvsp[(2) - (2)].sval);
03734 }
03735 }
03736 break;
03737
03738 case 208:
03739
03740 { if (parserData->otherOptionValuePresent)
03741 { osolerror( NULL, osoption, parserData, "only one value attribute allowed");
03742 }
03743 else
03744 { parserData->otherOptionValuePresent = true;
03745 osoption->service->otherOptions->other[parserData->numberOfOtherServiceOptions]->value = (yyvsp[(2) - (2)].sval);
03746 }
03747 }
03748 break;
03749
03750 case 210:
03751
03752 { if (parserData->otherOptionDescriptionPresent)
03753 { osolerror( NULL, osoption, parserData, "only one description attribute allowed");
03754 }
03755 else
03756 { parserData->otherOptionDescriptionPresent = true;
03757 osoption->service->otherOptions->other[parserData->numberOfOtherServiceOptions]->description = (yyvsp[(2) - (2)].sval);
03758 }
03759 }
03760 break;
03761
03762 case 216:
03763
03764 { if (parserData->osoljobPresent)
03765 { osolerror( NULL, osoption, parserData, "only one <job> element allowed");
03766 }
03767 else
03768 { parserData->osoljobPresent = true;
03769 osoption->job = new JobOption();
03770 }
03771 }
03772 break;
03773
03774 case 237:
03775
03776 { if (parserData->maxTimePresent)
03777 { osolerror( NULL, osoption, parserData, "only one <maxTime> element allowed");
03778 }
03779 else
03780 { parserData->maxTimePresent = true;
03781 osoption->job->maxTime = new MaxTime();
03782 osoption->job->maxTime->unit = "second";
03783 }
03784 }
03785 break;
03786
03787 case 239:
03788
03789 {
03790 if ( verifyTimeUnit((yyvsp[(2) - (2)].sval)) == true)
03791 osoption->job->maxTime->unit = (yyvsp[(2) - (2)].sval);
03792 else
03793 osolerror( NULL, osoption, parserData, "Not a valid time unit");
03794 }
03795 break;
03796
03797 case 243:
03798
03799 { if ((yyvsp[(2) - (3)].dval) < 0)
03800 osolerror( NULL, osoption, parserData, "maxTime cannot be negative");
03801 osoption->job->maxTime->value = (yyvsp[(2) - (3)].dval);
03802 }
03803 break;
03804
03805 case 244:
03806
03807 { if ((yyvsp[(2) - (3)].ival) < 0)
03808 osolerror( NULL, osoption, parserData, "maxTime cannot be negative");
03809 osoption->job->maxTime->value = (yyvsp[(2) - (3)].ival);
03810 }
03811 break;
03812
03813 case 246:
03814
03815 { if (parserData->requestedStartTimePresent)
03816 { osolerror( NULL, osoption, parserData, "only one <requestedStartTime> element allowed");
03817 }
03818 else
03819 { parserData->requestedStartTimePresent = true;
03820 osoption->job->requestedStartTime = "1970-01-01T00:00:00-00:00";
03821 }
03822 }
03823 break;
03824
03825 case 249:
03826
03827 {osoption->job->requestedStartTime = (yyvsp[(2) - (2)].sval);}
03828 break;
03829
03830 case 252:
03831
03832 { if (parserData->dependenciesPresent)
03833 { osolerror( NULL, osoption, parserData, "only one <dependencies> element allowed");
03834 }
03835 else
03836 { parserData->dependenciesPresent = true;
03837 osoption->job->dependencies = new JobDependencies();
03838 }
03839 }
03840 break;
03841
03842 case 253:
03843
03844 { if ((yyvsp[(3) - (4)].ival) < 1)
03845 osolerror( NULL, osoption, parserData, "Number of job IDs must be at least 1");
03846 osoption->job->dependencies->numberOfJobIDs = (yyvsp[(3) - (4)].ival);
03847 osoption->job->dependencies->jobID = new std::string[(yyvsp[(3) - (4)].ival)];
03848 }
03849 break;
03850
03851 case 256:
03852
03853 {
03854 if (parserData->numberOfDependencies >= osoption->job->dependencies->numberOfJobIDs)
03855 { osolerror (NULL, osoption, parserData, "too many job IDs in <dependencies> element");
03856 }
03857 else
03858 { osoption->job->dependencies->jobID[parserData->numberOfDependencies] = (yyvsp[(3) - (3)].sval);
03859 parserData->numberOfDependencies++;
03860 };
03861 }
03862 break;
03863
03864 case 259:
03865
03866 { if (parserData->requiredDirectoriesPresent)
03867 { osolerror( NULL, osoption, parserData, "only one <requiredDirectories> element allowed");
03868 }
03869 else
03870 { parserData->requiredDirectoriesPresent = true;
03871 osoption->job->requiredDirectories = new DirectoriesAndFiles();
03872 }
03873 }
03874 break;
03875
03876 case 260:
03877
03878 { if ((yyvsp[(3) - (4)].ival) < 1)
03879 osolerror( NULL, osoption, parserData, "Number of paths must be at least 1");
03880 osoption->job->requiredDirectories->numberOfPaths = (yyvsp[(3) - (4)].ival);
03881 osoption->job->requiredDirectories->path = new std::string[(yyvsp[(3) - (4)].ival)];
03882 }
03883 break;
03884
03885 case 263:
03886
03887 {
03888 if (parserData->numberOfRequiredDirectories >= osoption->job->requiredDirectories->numberOfPaths)
03889 { osolerror (NULL, osoption, parserData, "too many job IDs in <requiredDirectories> element");
03890 }
03891 else
03892 { osoption->job->requiredDirectories->path[parserData->numberOfRequiredDirectories] = (yyvsp[(3) - (3)].sval);
03893 parserData->numberOfRequiredDirectories++;
03894 };
03895 }
03896 break;
03897
03898 case 266:
03899
03900 { if (parserData->requiredFilesPresent)
03901 { osolerror( NULL, osoption, parserData, "only one <requiredFiles> element allowed");
03902 }
03903 else
03904 { parserData->requiredFilesPresent = true;
03905 osoption->job->requiredFiles = new DirectoriesAndFiles();
03906 }
03907 }
03908 break;
03909
03910 case 267:
03911
03912 { if ((yyvsp[(3) - (4)].ival) < 1)
03913 osolerror( NULL, osoption, parserData, "Number of paths must be at least 1");
03914 osoption->job->requiredFiles->numberOfPaths = (yyvsp[(3) - (4)].ival);
03915 osoption->job->requiredFiles->path = new std::string[(yyvsp[(3) - (4)].ival)];
03916 }
03917 break;
03918
03919 case 270:
03920
03921 {
03922 if (parserData->numberOfRequiredFiles >= osoption->job->requiredFiles->numberOfPaths)
03923 { osolerror (NULL, osoption, parserData, "too many job IDs in <requiredFiles> element");
03924 }
03925 else
03926 { osoption->job->requiredFiles->path[parserData->numberOfRequiredFiles] = (yyvsp[(3) - (3)].sval);
03927 parserData->numberOfRequiredFiles++;
03928 };
03929 }
03930 break;
03931
03932 case 273:
03933
03934 { if (parserData->directoriesToMakePresent)
03935 { osolerror( NULL, osoption, parserData, "only one <directoriesToMake> element allowed");
03936 }
03937 else
03938 { parserData->directoriesToMakePresent = true;
03939 osoption->job->directoriesToMake = new DirectoriesAndFiles();
03940 }
03941 }
03942 break;
03943
03944 case 274:
03945
03946 { if ((yyvsp[(3) - (4)].ival) < 1)
03947 osolerror( NULL, osoption, parserData, "Number of paths must be at least 1");
03948 osoption->job->directoriesToMake->numberOfPaths = (yyvsp[(3) - (4)].ival);
03949 osoption->job->directoriesToMake->path = new std::string[(yyvsp[(3) - (4)].ival)];
03950 }
03951 break;
03952
03953 case 277:
03954
03955 { if (parserData->numberOfDirectoriesToMake >= osoption->job->directoriesToMake->numberOfPaths)
03956 { osolerror (NULL, osoption, parserData, "too many job IDs in <directoriesToMake> element");
03957 }
03958 else
03959 { osoption->job->directoriesToMake->path[parserData->numberOfDirectoriesToMake] = (yyvsp[(3) - (3)].sval);
03960 parserData->numberOfDirectoriesToMake++;
03961 };
03962 }
03963 break;
03964
03965 case 280:
03966
03967 { if (parserData->filesToMakePresent)
03968 { osolerror( NULL, osoption, parserData, "only one <filesToMake> element allowed");
03969 }
03970 else
03971 { parserData->filesToMakePresent = true;
03972 osoption->job->filesToMake = new DirectoriesAndFiles();
03973 }
03974 }
03975 break;
03976
03977 case 281:
03978
03979 { if ((yyvsp[(3) - (4)].ival) < 0)
03980 osolerror( NULL, osoption, parserData, "Number of paths cannot be negative");
03981 osoption->job->filesToMake->numberOfPaths = (yyvsp[(3) - (4)].ival);
03982 osoption->job->filesToMake->path = new std::string[(yyvsp[(3) - (4)].ival)];
03983 }
03984 break;
03985
03986 case 284:
03987
03988 { if (parserData->numberOfFilesToMake >= osoption->job->filesToMake->numberOfPaths)
03989 { osolerror (NULL, osoption, parserData, "too many job IDs in <filesToMake> element");
03990 }
03991 else
03992 { osoption->job->filesToMake->path[parserData->numberOfFilesToMake] = (yyvsp[(3) - (3)].sval);
03993 parserData->numberOfFilesToMake++;
03994 };
03995 }
03996 break;
03997
03998 case 287:
03999
04000 { if (parserData->inputDirectoriesToMovePresent)
04001 { osolerror( NULL, osoption, parserData, "only one <inputDirectoriesToMove> element allowed");
04002 }
04003 else
04004 { parserData->inputDirectoriesToMovePresent = true;
04005 osoption->job->inputDirectoriesToMove = new PathPairs();
04006 }
04007 }
04008 break;
04009
04010 case 288:
04011
04012 { if ((yyvsp[(3) - (4)].ival) < 0)
04013 osolerror (NULL, osoption, parserData, "Require nonnegative number of directories to move");
04014 osoption->job->inputDirectoriesToMove->numberOfPathPairs = (yyvsp[(3) - (4)].ival);
04015 osoption->job->inputDirectoriesToMove->pathPair = new PathPair*[(yyvsp[(3) - (4)].ival)];
04016 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++)
04017 osoption->job->inputDirectoriesToMove->pathPair[i] = new PathPair();
04018 }
04019 break;
04020
04021 case 291:
04022
04023 { if (!parserData->pathPairFromPresent)
04024 osolerror (NULL, osoption, parserData, "\"from\" attribute must be present");
04025 if (!parserData->pathPairToPresent)
04026 osolerror (NULL, osoption, parserData, "\"to\" attribute must be present");
04027
04028 parserData->pathPairFromPresent= false;
04029 parserData->pathPairToPresent= false;
04030 parserData->pathPairMakeCopyPresent= false;
04031 parserData->numberOfInputDirectoriesToMove++;
04032 }
04033 break;
04034
04035 case 292:
04036
04037 { if (parserData->numberOfInputDirectoriesToMove >= osoption->job->inputDirectoriesToMove->numberOfPathPairs)
04038 { osolerror (NULL, osoption, parserData, "too many path pairs in <inputDirectoriesToMove> element");
04039 };
04040 }
04041 break;
04042
04043 case 298:
04044
04045 { if (parserData->pathPairFromPresent)
04046 { osolerror( NULL, osoption, parserData, "only one \"from\" attribute allowed");
04047 }
04048 else
04049 { parserData->pathPairFromPresent = true;
04050 osoption->job->inputDirectoriesToMove->pathPair[parserData->numberOfInputDirectoriesToMove]->from = (yyvsp[(2) - (2)].sval);
04051 }
04052 }
04053 break;
04054
04055 case 300:
04056
04057 { if (parserData->pathPairToPresent)
04058 { osolerror( NULL, osoption, parserData, "only one \"to\" attribute allowed");
04059 }
04060 else
04061 { parserData->pathPairToPresent = true;
04062 osoption->job->inputDirectoriesToMove->pathPair[parserData->numberOfInputDirectoriesToMove]->to = (yyvsp[(2) - (2)].sval);
04063 }
04064 }
04065 break;
04066
04067 case 302:
04068
04069 { if (parserData->pathPairMakeCopyPresent)
04070 { osolerror( NULL, osoption, parserData, "only one \"makeCopy\" attribute allowed");
04071 }
04072 else
04073 { parserData->pathPairMakeCopyPresent = true;
04074 if (strcmp((yyvsp[(2) - (2)].sval),"true") == 0)
04075 osoption->job->inputDirectoriesToMove->pathPair[parserData->numberOfInputDirectoriesToMove]->makeCopy = true;
04076 }
04077 }
04078 break;
04079
04080 case 307:
04081
04082 { if (parserData->inputFilesToMovePresent)
04083 { osolerror( NULL, osoption, parserData, "only one <inputFilesToMove> element allowed");
04084 }
04085 else
04086 { parserData->inputFilesToMovePresent = true;
04087 osoption->job->inputFilesToMove = new PathPairs();
04088 }
04089 }
04090 break;
04091
04092 case 308:
04093
04094 { if ((yyvsp[(3) - (4)].ival) < 0)
04095 osolerror (NULL, osoption, parserData, "Require nonnegative number of files to move");
04096 osoption->job->inputFilesToMove->numberOfPathPairs = (yyvsp[(3) - (4)].ival);
04097 osoption->job->inputFilesToMove->pathPair = new PathPair*[(yyvsp[(3) - (4)].ival)];
04098 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++) osoption->job->inputFilesToMove->pathPair[i] = new PathPair();
04099 }
04100 break;
04101
04102 case 311:
04103
04104 { if (!parserData->pathPairFromPresent)
04105 osolerror (NULL, osoption, parserData, "\"from\" attribute must be present");
04106 if (!parserData->pathPairToPresent)
04107 osolerror (NULL, osoption, parserData, "\"to\" attribute must be present");
04108
04109 parserData->pathPairFromPresent= false;
04110 parserData->pathPairToPresent= false;
04111 parserData->pathPairMakeCopyPresent= false;
04112 parserData->numberOfInputFilesToMove++;
04113 }
04114 break;
04115
04116 case 312:
04117
04118 { if (parserData->numberOfInputFilesToMove >= osoption->job->inputFilesToMove->numberOfPathPairs)
04119 { osolerror (NULL, osoption, parserData, "too many path pairs in <inputFilesToMove> element");
04120 };
04121 }
04122 break;
04123
04124 case 318:
04125
04126 { if (parserData->pathPairFromPresent)
04127 { osolerror( NULL, osoption, parserData, "only one \"from\" attribute allowed");
04128 }
04129 else
04130 { parserData->pathPairFromPresent = true;
04131 osoption->job->inputFilesToMove->pathPair[parserData->numberOfInputFilesToMove]->from = (yyvsp[(2) - (2)].sval);
04132 }
04133 }
04134 break;
04135
04136 case 320:
04137
04138 { if (parserData->pathPairToPresent)
04139 { osolerror( NULL, osoption, parserData, "only one \"to\" attribute allowed");
04140 }
04141 else
04142 { parserData->pathPairToPresent = true;
04143 osoption->job->inputFilesToMove->pathPair[parserData->numberOfInputFilesToMove]->to = (yyvsp[(2) - (2)].sval);
04144 }
04145 }
04146 break;
04147
04148 case 322:
04149
04150 { if (parserData->pathPairMakeCopyPresent)
04151 { osolerror( NULL, osoption, parserData, "only one \"makeCopy\" attribute allowed");
04152 }
04153 else
04154 { parserData->pathPairMakeCopyPresent = true;
04155 if (strcmp((yyvsp[(2) - (2)].sval),"true") == 0)
04156 osoption->job->inputFilesToMove->pathPair[parserData->numberOfInputFilesToMove]->makeCopy = true;
04157 }
04158 }
04159 break;
04160
04161 case 327:
04162
04163 { if (parserData->outputDirectoriesToMovePresent)
04164 { osolerror( NULL, osoption, parserData, "only one <outputDirectoriesToMove> element allowed");
04165 }
04166 else
04167 { parserData->outputDirectoriesToMovePresent = true;
04168 osoption->job->outputDirectoriesToMove = new PathPairs();
04169 }
04170 }
04171 break;
04172
04173 case 328:
04174
04175 { if ((yyvsp[(3) - (4)].ival) < 0)
04176 osolerror (NULL, osoption, parserData, "Require nonnegative number of directories to move");
04177 osoption->job->outputDirectoriesToMove->numberOfPathPairs = (yyvsp[(3) - (4)].ival);
04178 osoption->job->outputDirectoriesToMove->pathPair = new PathPair*[(yyvsp[(3) - (4)].ival)];
04179 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++)
04180 osoption->job->outputDirectoriesToMove->pathPair[i] = new PathPair();
04181 }
04182 break;
04183
04184 case 331:
04185
04186 { if (!parserData->pathPairFromPresent)
04187 osolerror (NULL, osoption, parserData, "\"from\" attribute must be present");
04188 if (!parserData->pathPairToPresent)
04189 osolerror (NULL, osoption, parserData, "\"to\" attribute must be present");
04190
04191 parserData->pathPairFromPresent= false;
04192 parserData->pathPairToPresent= false;
04193 parserData->pathPairMakeCopyPresent= false;
04194 parserData->numberOfOutputDirectoriesToMove++;
04195 }
04196 break;
04197
04198 case 332:
04199
04200 { if (parserData->numberOfOutputDirectoriesToMove >= osoption->job->outputDirectoriesToMove->numberOfPathPairs)
04201 { osolerror (NULL, osoption, parserData, "too many path pairs in <outputDirectoriesToMove> element");
04202 };
04203 }
04204 break;
04205
04206 case 338:
04207
04208 { if (parserData->pathPairFromPresent)
04209 { osolerror( NULL, osoption, parserData, "only one \"from\" attribute allowed");
04210 }
04211 else
04212 { parserData->pathPairFromPresent = true;
04213 osoption->job->outputDirectoriesToMove->pathPair[parserData->numberOfOutputDirectoriesToMove]->from = (yyvsp[(2) - (2)].sval);
04214 }
04215 }
04216 break;
04217
04218 case 340:
04219
04220 { if (parserData->pathPairToPresent)
04221 { osolerror( NULL, osoption, parserData, "only one \"to\" attribute allowed");
04222 }
04223 else
04224 { parserData->pathPairToPresent = true;
04225 osoption->job->outputDirectoriesToMove->pathPair[parserData->numberOfOutputDirectoriesToMove]->to = (yyvsp[(2) - (2)].sval);
04226 }
04227 }
04228 break;
04229
04230 case 342:
04231
04232 { if (parserData->pathPairMakeCopyPresent)
04233 { osolerror( NULL, osoption, parserData, "only one \"makeCopy\" attribute allowed");
04234 }
04235 else
04236 { parserData->pathPairMakeCopyPresent = true;
04237 if (strcmp((yyvsp[(2) - (2)].sval),"true") == 0)
04238 osoption->job->outputDirectoriesToMove->pathPair[parserData->numberOfOutputDirectoriesToMove]->makeCopy = true;
04239 }
04240 }
04241 break;
04242
04243 case 347:
04244
04245 { if (parserData->outputFilesToMovePresent)
04246 { osolerror( NULL, osoption, parserData, "only one <outputFilesToMove> element allowed");
04247 }
04248 else
04249 { parserData->outputFilesToMovePresent = true;
04250 osoption->job->outputFilesToMove = new PathPairs();
04251 }
04252 }
04253 break;
04254
04255 case 348:
04256
04257 { if ((yyvsp[(3) - (4)].ival) < 0)
04258 osolerror (NULL, osoption, parserData, "Require nonnegative number of files to move");
04259 osoption->job->outputFilesToMove->numberOfPathPairs = (yyvsp[(3) - (4)].ival);
04260 osoption->job->outputFilesToMove->pathPair = new PathPair*[(yyvsp[(3) - (4)].ival)];
04261 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++)
04262 osoption->job->outputFilesToMove->pathPair[i] = new PathPair();}
04263 break;
04264
04265 case 351:
04266
04267 { if (!parserData->pathPairFromPresent)
04268 osolerror (NULL, osoption, parserData, "\"from\" attribute must be present");
04269 if (!parserData->pathPairToPresent)
04270 osolerror (NULL, osoption, parserData, "\"to\" attribute must be present");
04271
04272 parserData->pathPairFromPresent= false;
04273 parserData->pathPairToPresent= false;
04274 parserData->pathPairMakeCopyPresent= false;
04275 parserData->numberOfOutputFilesToMove++;
04276 }
04277 break;
04278
04279 case 352:
04280
04281 { if (parserData->numberOfOutputFilesToMove >= osoption->job->outputFilesToMove->numberOfPathPairs)
04282 { osolerror (NULL, osoption, parserData, "too many path pairs in <outputFilesToMove> element");
04283 };
04284 }
04285 break;
04286
04287 case 358:
04288
04289 { if (parserData->pathPairFromPresent)
04290 { osolerror( NULL, osoption, parserData, "only one \"from\" attribute allowed");
04291 }
04292 else
04293 { parserData->pathPairFromPresent = true;
04294 osoption->job->outputFilesToMove->pathPair[parserData->numberOfOutputFilesToMove]->from = (yyvsp[(2) - (2)].sval);
04295 }
04296 }
04297 break;
04298
04299 case 360:
04300
04301 { if (parserData->pathPairToPresent)
04302 { osolerror( NULL, osoption, parserData, "only one \"to\" attribute allowed");
04303 }
04304 else
04305 { parserData->pathPairToPresent = true;
04306 osoption->job->outputFilesToMove->pathPair[parserData->numberOfOutputFilesToMove]->to = (yyvsp[(2) - (2)].sval);
04307 }
04308 }
04309 break;
04310
04311 case 362:
04312
04313 { if (parserData->pathPairMakeCopyPresent)
04314 { osolerror( NULL, osoption, parserData, "only one \"makeCopy\" attribute allowed");
04315 }
04316 else
04317 { parserData->pathPairMakeCopyPresent = true;
04318 if (strcmp((yyvsp[(2) - (2)].sval),"true") == 0)
04319 osoption->job->outputFilesToMove->pathPair[parserData->numberOfOutputFilesToMove]->makeCopy = true;
04320 }
04321 }
04322 break;
04323
04324 case 367:
04325
04326 { if (parserData->filesToDeletePresent)
04327 { osolerror( NULL, osoption, parserData, "only one <filesToDelete> element allowed");
04328 }
04329 else
04330 { parserData->filesToDeletePresent = true;
04331 osoption->job->filesToDelete = new DirectoriesAndFiles();
04332 }
04333 }
04334 break;
04335
04336 case 368:
04337
04338 { if ((yyvsp[(3) - (4)].ival) < 1)
04339 osolerror( NULL, osoption, parserData, "Number of paths must be at least 1");
04340 osoption->job->filesToDelete->numberOfPaths = (yyvsp[(3) - (4)].ival);
04341 osoption->job->filesToDelete->path = new std::string[(yyvsp[(3) - (4)].ival)];
04342 }
04343 break;
04344
04345 case 371:
04346
04347 { if (parserData->numberOfFilesToDelete >= osoption->job->filesToDelete->numberOfPaths)
04348 { osolerror (NULL, osoption, parserData, "too many job IDs in <filesToDelete> element");
04349 }
04350 else
04351 { osoption->job->filesToDelete->path[parserData->numberOfFilesToDelete] = (yyvsp[(3) - (3)].sval);
04352 parserData->numberOfFilesToDelete++;
04353 };
04354 }
04355 break;
04356
04357 case 374:
04358
04359 { if (parserData->directoriesToDeletePresent)
04360 { osolerror( NULL, osoption, parserData, "only one <directoriesToDelete> element allowed");
04361 }
04362 else
04363 { parserData->directoriesToDeletePresent = true;
04364 osoption->job->directoriesToDelete = new DirectoriesAndFiles();
04365 }
04366 }
04367 break;
04368
04369 case 375:
04370
04371 { if ((yyvsp[(3) - (4)].ival) < 1)
04372 osolerror( NULL, osoption, parserData, "Number of paths must be at least 1");
04373 osoption->job->directoriesToDelete->numberOfPaths = (yyvsp[(3) - (4)].ival);
04374 osoption->job->directoriesToDelete->path = new std::string[(yyvsp[(3) - (4)].ival)];
04375 }
04376 break;
04377
04378 case 378:
04379
04380 { if (parserData->numberOfDirectoriesToDelete >= osoption->job->directoriesToDelete->numberOfPaths)
04381 { osolerror (NULL, osoption, parserData, "too many job IDs in <directoriesToDelete> element");
04382 }
04383 else
04384 { osoption->job->directoriesToDelete->path[parserData->numberOfDirectoriesToDelete] = (yyvsp[(3) - (3)].sval);
04385 parserData->numberOfDirectoriesToDelete++;
04386 };
04387 }
04388 break;
04389
04390 case 381:
04391
04392 { if (parserData->processesToKillPresent)
04393 { osolerror( NULL, osoption, parserData, "only one <processesToKill> element allowed");
04394 }
04395 else
04396 { parserData->processesToKillPresent = true;
04397 osoption->job->processesToKill = new Processes();
04398 }
04399 }
04400 break;
04401
04402 case 382:
04403
04404 { if ((yyvsp[(3) - (4)].ival) < 1)
04405 osolerror( NULL, osoption, parserData, "Number of job IDs must be at least 1");
04406 osoption->job->processesToKill->numberOfProcesses = (yyvsp[(3) - (4)].ival);
04407 osoption->job->processesToKill->process = new std::string[(yyvsp[(3) - (4)].ival)];
04408 }
04409 break;
04410
04411 case 385:
04412
04413 { if (parserData->numberOfProcessesToKill >= osoption->job->processesToKill->numberOfProcesses)
04414 { osolerror (NULL, osoption, parserData, "too many job IDs in <processesToKill> element");
04415 }
04416 else
04417 { osoption->job->processesToKill->process[parserData->numberOfProcessesToKill] = (yyvsp[(3) - (3)].sval);
04418 parserData->numberOfProcessesToKill++;
04419 };
04420 }
04421 break;
04422
04423 case 388:
04424
04425 { if (parserData->otherJobOptionsPresent)
04426 { osolerror( NULL, osoption, parserData, "only one <otherOptions> element allowed");
04427 }
04428 else
04429 { parserData->otherJobOptionsPresent = true;
04430 osoption->job->otherOptions = new OtherOptions();
04431 }
04432 }
04433 break;
04434
04435 case 389:
04436
04437 { if ((yyvsp[(3) - (4)].ival) < 0)
04438 osolerror( NULL, osoption, parserData, "Number of <other> elements cannot be negative");
04439 osoption->job->otherOptions->numberOfOtherOptions = (yyvsp[(3) - (4)].ival);
04440 osoption->job->otherOptions->other = new OtherOption*[(yyvsp[(3) - (4)].ival)];
04441 for (int i=0; i < (yyvsp[(3) - (4)].ival); i++) osoption->job->otherOptions->other[i] = new OtherOption();
04442 }
04443 break;
04444
04445 case 390:
04446
04447 { if (parserData->numberOfOtherJobOptions != osoption->job->otherOptions->numberOfOtherOptions)
04448 osolerror (NULL, osoption, parserData, "wrong number of other options in <job> element");
04449 }
04450 break;
04451
04452 case 393:
04453
04454 { if (parserData->numberOfOtherJobOptions >= osoption->job->otherOptions->numberOfOtherOptions)
04455 { osolerror (NULL, osoption, parserData, "too many other options in <job> element");
04456 };
04457 }
04458 break;
04459
04460 case 394:
04461
04462 { if (!parserData->otherOptionNamePresent)
04463 osolerror (NULL, osoption, parserData, "name attribute must be present");
04464
04465 parserData->otherOptionNamePresent = false;
04466 parserData->otherOptionValuePresent = false;
04467 parserData->otherOptionDescriptionPresent = false;
04468 parserData->numberOfOtherJobOptions++;
04469 }
04470 break;
04471
04472 case 400:
04473
04474 { if (parserData->otherOptionNamePresent)
04475 { osolerror( NULL, osoption, parserData, "only one name attribute allowed");
04476 }
04477 else
04478 { parserData->otherOptionNamePresent = true;
04479 osoption->job->otherOptions->other[parserData->numberOfOtherJobOptions]->name = (yyvsp[(2) - (2)].sval);
04480 }
04481 }
04482 break;
04483
04484 case 402:
04485
04486 { if (parserData->otherOptionValuePresent)
04487 { osolerror( NULL, osoption, parserData, "only one value attribute allowed");
04488 }
04489 else
04490 { parserData->otherOptionValuePresent = true;
04491 osoption->job->otherOptions->other[parserData->numberOfOtherJobOptions]->value = (yyvsp[(2) - (2)].sval);
04492 }
04493 }
04494 break;
04495
04496 case 404:
04497
04498 { if (parserData->otherOptionDescriptionPresent)
04499 { osolerror( NULL, osoption, parserData, "only one description attribute allowed");
04500 }
04501 else
04502 { parserData->otherOptionDescriptionPresent = true;
04503 osoption->job->otherOptions->other[parserData->numberOfOtherJobOptions]->description = (yyvsp[(2) - (2)].sval);
04504 }
04505 }
04506 break;
04507
04508 case 410:
04509
04510 { if (parserData->osoloptimizationPresent)
04511 { osolerror( NULL, osoption, parserData, "only one <optimization> element allowed");
04512 }
04513 else
04514 { parserData->osoloptimizationPresent = true;
04515 osoption->optimization = new OptimizationOption();
04516 }
04517 }
04518 break;
04519
04520 case 416:
04521
04522 { if ((yyvsp[(3) - (4)].ival) < -1)
04523 osolerror( NULL, osoption, parserData, "Illegal number of variables specified");
04524 osoption->optimization->numberOfVariables = (yyvsp[(3) - (4)].ival);
04525 }
04526 break;
04527
04528 case 417:
04529
04530 { if ((yyvsp[(3) - (4)].ival) < 0)
04531 osolerror( NULL, osoption, parserData, "Illegal number of constraints specified");
04532 osoption->optimization->numberOfConstraints = (yyvsp[(3) - (4)].ival);
04533 }
04534 break;
04535
04536 case 418:
04537
04538 { if ((yyvsp[(3) - (4)].ival) < 0)
04539 osolerror( NULL, osoption, parserData, "Illegal number of objectives specified");
04540 osoption->optimization->numberOfObjectives = (yyvsp[(3) - (4)].ival);
04541 }
04542 break;
04543
04544 case 424:
04545
04546 { osoption->optimization->variables = new VariableOption();
04547 }
04548 break;
04549
04550 case 426:
04551
04552 { if ((yyvsp[(3) - (4)].ival) < 0)
04553 osolerror (NULL, osoption, parserData, "number of <other> variable options cannot be negative");
04554 osoption->optimization->variables->numberOfOtherVariableOptions = (yyvsp[(3) - (4)].ival);
04555 osoption->optimization->variables->other = new OtherVariableOption*[(yyvsp[(3) - (4)].ival)];
04556 for (int i= 0; i < (yyvsp[(3) - (4)].ival); i++)
04557 osoption->optimization->variables->other[i] = new OtherVariableOption();
04558 }
04559 break;
04560
04561 case 431:
04562
04563 { if ((yyvsp[(3) - (4)].ival) < 0)
04564 osolerror (NULL, osoption, parserData, "number of <var> elements must be nonnegative");
04565 osoption->optimization->variables->initialVariableValues = new InitVariableValues();
04566 osoption->optimization->variables->initialVariableValues->numberOfVar = (yyvsp[(3) - (4)].ival);
04567 osoption->optimization->variables->initialVariableValues->var = new InitVarValue*[(yyvsp[(3) - (4)].ival)];
04568 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++)
04569 osoption->optimization->variables->initialVariableValues->var[i] = new InitVarValue();
04570 }
04571 break;
04572
04573 case 434:
04574
04575 { if (!parserData->idxAttributePresent)
04576 osolerror (NULL, osoption, parserData, "variable index required");
04577 parserData->idxAttributePresent = false;
04578 parserData->valAttributePresent = false;
04579 parserData->numberOfVar++;
04580 }
04581 break;
04582
04583 case 435:
04584
04585 { if (parserData->numberOfVar >= osoption->optimization->variables->initialVariableValues->numberOfVar)
04586 osolerror(NULL, osoption, parserData, "too many initial variable values");
04587 }
04588 break;
04589
04590 case 440:
04591
04592 { if (parserData->idxAttributePresent)
04593 osolerror (NULL, osoption, parserData, "only one variable index allowed");
04594 parserData->idxAttributePresent = true;
04595 if ((yyvsp[(3) - (4)].ival) < 0)
04596 osolerror (NULL, osoption, parserData, "variable index must be nonnegative");
04597 if (osoption->optimization->numberOfVariables >= 0)
04598 { if ((yyvsp[(3) - (4)].ival) >= osoption->optimization->numberOfVariables)
04599 osolerror (NULL, osoption, parserData, "variable index exceeds upper limit");
04600 };
04601 osoption->optimization->variables->initialVariableValues->var[parserData->numberOfVar]->idx = (yyvsp[(3) - (4)].ival);
04602 }
04603 break;
04604
04605 case 441:
04606
04607 { if (parserData->valAttributePresent)
04608 osolerror (NULL, osoption, parserData, "only one variable value allowed");
04609 parserData->valAttributePresent = true;
04610 if (strcmp((yyvsp[(2) - (2)].sval),"INF") == 0)
04611 osoption->optimization->variables->initialVariableValues->var[parserData->numberOfVar]->value = OSDBL_MAX;
04612 else if (strcmp((yyvsp[(2) - (2)].sval),"-INF") == 0)
04613 osoption->optimization->variables->initialVariableValues->var[parserData->numberOfVar]->value = -OSDBL_MAX;
04614 else
04615 osoption->optimization->variables->initialVariableValues->var[parserData->numberOfVar]->value = os_strtod((yyvsp[(2) - (2)].sval), NULL);
04616 }
04617 break;
04618
04619 case 447:
04620
04621 { if ((yyvsp[(3) - (4)].ival) < 0)
04622 osolerror (NULL, osoption, parserData, "number of <var> elements must be nonnegative");
04623 osoption->optimization->variables->initialVariableValuesString = new InitVariableValuesString();
04624 osoption->optimization->variables->initialVariableValuesString->numberOfVar = (yyvsp[(3) - (4)].ival);
04625 osoption->optimization->variables->initialVariableValuesString->var = new InitVarValueString*[(yyvsp[(3) - (4)].ival)];
04626 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++)
04627 osoption->optimization->variables->initialVariableValuesString->var[i] = new InitVarValueString ();
04628 }
04629 break;
04630
04631 case 450:
04632
04633 { if (!parserData->idxAttributePresent)
04634 osolerror (NULL, osoption, parserData, "variable index required");
04635 parserData->idxAttributePresent = false;
04636 parserData->valAttributePresent = false;
04637 parserData->numberOfVarStr++;
04638 }
04639 break;
04640
04641 case 451:
04642
04643 { if (parserData->numberOfVarStr >= osoption->optimization->variables->initialVariableValuesString->numberOfVar)
04644 osolerror(NULL, osoption, parserData, "too many initial variable strings");
04645 }
04646 break;
04647
04648 case 456:
04649
04650 { if (parserData->idxAttributePresent)
04651 osolerror (NULL, osoption, parserData, "only one variable index allowed");
04652 parserData->idxAttributePresent = true;
04653 if ((yyvsp[(3) - (4)].ival) < 0)
04654 osolerror (NULL, osoption, parserData, "variable index must be nonnegative");
04655 if (osoption->optimization->numberOfVariables >= 0)
04656 { if ((yyvsp[(3) - (4)].ival) >= osoption->optimization->numberOfVariables)
04657 osolerror (NULL, osoption, parserData, "variable index exceeds upper limit");
04658 };
04659 osoption->optimization->variables->initialVariableValuesString->var[parserData->numberOfVarStr]->idx = (yyvsp[(3) - (4)].ival);
04660 }
04661 break;
04662
04663 case 457:
04664
04665 { if (parserData->valAttributePresent)
04666 osolerror (NULL, osoption, parserData, "only one variable string value allowed");
04667 parserData->valAttributePresent = true;
04668 osoption->optimization->variables->initialVariableValuesString->var[parserData->numberOfVarStr]->value = (yyvsp[(2) - (2)].sval);
04669 }
04670 break;
04671
04672 case 463:
04673
04674 { if ((yyvsp[(3) - (4)].ival) < 0)
04675 osolerror (NULL, osoption, parserData, "number of <var> elements must be nonnegative");
04676 osoption->optimization->variables->initialBasisStatus = new InitialBasisStatus();
04677 osoption->optimization->variables->initialBasisStatus->numberOfVar = (yyvsp[(3) - (4)].ival);
04678 osoption->optimization->variables->initialBasisStatus->var = new InitBasStatus*[(yyvsp[(3) - (4)].ival)];
04679 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++)
04680 osoption->optimization->variables->initialBasisStatus->var[i] = new InitBasStatus();
04681 }
04682 break;
04683
04684 case 466:
04685
04686 { if (!parserData->idxAttributePresent)
04687 osolerror (NULL, osoption, parserData, "variable index required");
04688 parserData->idxAttributePresent = false;
04689 parserData->valAttributePresent = false;
04690 parserData->numberOfBasVar++;
04691 }
04692 break;
04693
04694 case 467:
04695
04696 { if (parserData->numberOfBasVar >= osoption->optimization->variables->initialBasisStatus->numberOfVar)
04697 osolerror(NULL, osoption, parserData, "too many initial basis variables");
04698 }
04699 break;
04700
04701 case 472:
04702
04703 { if (parserData->idxAttributePresent)
04704 osolerror (NULL, osoption, parserData, "only one variable index allowed");
04705 parserData->idxAttributePresent = true;
04706 if ((yyvsp[(3) - (4)].ival) < 0)
04707 osolerror (NULL, osoption, parserData, "variable index must be nonnegative");
04708 if (osoption->optimization->numberOfVariables >= 0)
04709 { if ((yyvsp[(3) - (4)].ival) >= osoption->optimization->numberOfVariables)
04710 osolerror (NULL, osoption, parserData, "variable index exceeds upper limit");
04711 };
04712 osoption->optimization->variables->initialBasisStatus->var[parserData->numberOfBasVar]->idx = (yyvsp[(3) - (4)].ival);
04713 }
04714 break;
04715
04716 case 473:
04717
04718 { if (parserData->valAttributePresent)
04719 osolerror (NULL, osoption, parserData, "only one variable value allowed");
04720 parserData->valAttributePresent = true;
04721 osoption->optimization->variables->initialBasisStatus->var[parserData->numberOfBasVar]->value = (yyvsp[(2) - (2)].sval);
04722 }
04723 break;
04724
04725 case 479:
04726
04727 { if ((yyvsp[(3) - (4)].ival) < 0)
04728 osolerror (NULL, osoption, parserData, "number of <var> elements must be nonnegative");
04729 osoption->optimization->variables->integerVariableBranchingWeights = new IntegerVariableBranchingWeights();
04730 osoption->optimization->variables->integerVariableBranchingWeights->numberOfVar = (yyvsp[(3) - (4)].ival);
04731 osoption->optimization->variables->integerVariableBranchingWeights->var = new BranchingWeight*[(yyvsp[(3) - (4)].ival)];
04732 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++)
04733 osoption->optimization->variables->integerVariableBranchingWeights->var[i] = new BranchingWeight();
04734 }
04735 break;
04736
04737 case 482:
04738
04739 { if (!parserData->idxAttributePresent)
04740 osolerror (NULL, osoption, parserData, "variable index required");
04741 parserData->idxAttributePresent = false;
04742 parserData->valAttributePresent = false;
04743 parserData->numberOfIntWt++;
04744 }
04745 break;
04746
04747 case 483:
04748
04749 { if (parserData->numberOfIntWt >= osoption->optimization->variables->integerVariableBranchingWeights->numberOfVar)
04750 osolerror(NULL, osoption, parserData, "too many integer branching weights");
04751 }
04752 break;
04753
04754 case 488:
04755
04756 { if (parserData->idxAttributePresent)
04757 osolerror (NULL, osoption, parserData, "only one variable index allowed");
04758 parserData->idxAttributePresent = true;
04759 if ((yyvsp[(3) - (4)].ival) < 0)
04760 osolerror (NULL, osoption, parserData, "variable index must be nonnegative");
04761 if (osoption->optimization->numberOfVariables >= 0)
04762 { if ((yyvsp[(3) - (4)].ival) >= osoption->optimization->numberOfVariables)
04763 osolerror (NULL, osoption, parserData, "variable index exceeds upper limit");
04764 };
04765 osoption->optimization->variables->integerVariableBranchingWeights->var[parserData->numberOfIntWt]->idx = (yyvsp[(3) - (4)].ival);
04766 }
04767 break;
04768
04769 case 489:
04770
04771 { if (parserData->valAttributePresent)
04772 osolerror (NULL, osoption, parserData, "only one branching weight allowed");
04773 parserData->valAttributePresent = true;
04774 if (strcmp((yyvsp[(2) - (2)].sval),"INF") == 0)
04775 osoption->optimization->variables->integerVariableBranchingWeights->var[parserData->numberOfIntWt]->value = OSDBL_MAX;
04776 else if (strcmp((yyvsp[(2) - (2)].sval),"-INF") == 0)
04777 osoption->optimization->variables->integerVariableBranchingWeights->var[parserData->numberOfIntWt]->value = -OSDBL_MAX;
04778 else
04779 osoption->optimization->variables->integerVariableBranchingWeights->var[parserData->numberOfIntWt]->value = os_strtod((yyvsp[(2) - (2)].sval), NULL);
04780 }
04781 break;
04782
04783 case 495:
04784
04785 { if ((yyvsp[(3) - (4)].ival) < 0)
04786 osolerror (NULL, osoption, parserData, "number of <sos> elements must be nonnegative");
04787 osoption->optimization->variables->sosVariableBranchingWeights = new SOSVariableBranchingWeights();
04788 osoption->optimization->variables->sosVariableBranchingWeights->numberOfSOS = (yyvsp[(3) - (4)].ival);
04789 osoption->optimization->variables->sosVariableBranchingWeights->sos = new SOSWeights*[(yyvsp[(3) - (4)].ival)];
04790 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++)
04791 osoption->optimization->variables->sosVariableBranchingWeights->sos[i] = new SOSWeights();
04792 }
04793 break;
04794
04795 case 498:
04796
04797 { if (!parserData->sosIdxAttributePresent)
04798 osolerror (NULL, osoption, parserData, "SOS index required");
04799 if (!parserData->sosIdxAttributePresent)
04800 osolerror (NULL, osoption, parserData, "numberOfVar required");
04801 parserData->sosIdxAttributePresent = false;
04802 parserData->grpWgtAttributePresent = false;
04803 parserData->nOfVarAttributePresent = false;
04804 parserData->numberOfSOS++;
04805 }
04806 break;
04807
04808 case 499:
04809
04810 { if (parserData->numberOfSOS >= osoption->optimization->variables->sosVariableBranchingWeights->numberOfSOS)
04811 osolerror(NULL, osoption, parserData, "too many SOS branching weights");
04812 parserData->numberOfSOSVar = 0;
04813 }
04814 break;
04815
04816 case 505:
04817
04818 { if (parserData->sosIdxAttributePresent)
04819 osolerror (NULL, osoption, parserData, "only one SOS index allowed");
04820 parserData->sosIdxAttributePresent = true;
04821 if ((yyvsp[(3) - (4)].ival) < 0)
04822 osolerror (NULL, osoption, parserData, "SOS index must be nonnegative");
04823 osoption->optimization->variables->sosVariableBranchingWeights->sos[parserData->numberOfSOS]->sosIdx = (yyvsp[(3) - (4)].ival);
04824 }
04825 break;
04826
04827 case 506:
04828
04829 { if (parserData->grpWgtAttributePresent)
04830 osolerror (NULL, osoption, parserData, "only one group weight allowed");
04831 parserData->grpWgtAttributePresent = true;
04832 osoption->optimization->variables->sosVariableBranchingWeights->sos[parserData->numberOfSOS]->groupWeight = (yyvsp[(3) - (4)].dval);
04833 }
04834 break;
04835
04836 case 507:
04837
04838 { if (parserData->grpWgtAttributePresent)
04839 osolerror (NULL, osoption, parserData, "only one group weight allowed");
04840 parserData->grpWgtAttributePresent = true;
04841 osoption->optimization->variables->sosVariableBranchingWeights->sos[parserData->numberOfSOS]->groupWeight = (yyvsp[(3) - (4)].ival);
04842 }
04843 break;
04844
04845 case 508:
04846
04847 { if ((yyvsp[(3) - (4)].ival) < 0)
04848 osolerror (NULL, osoption, parserData, "number of <var> elements must be nonnegative");
04849
04850 osoption->optimization->variables->sosVariableBranchingWeights->sos[parserData->numberOfSOS]->numberOfVar = (yyvsp[(3) - (4)].ival);
04851 osoption->optimization->variables->sosVariableBranchingWeights->sos[parserData->numberOfSOS]->var = new BranchingWeight*[(yyvsp[(3) - (4)].ival)];
04852 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++)
04853 osoption->optimization->variables->sosVariableBranchingWeights->sos[parserData->numberOfSOS]->var[i] = new BranchingWeight();
04854 }
04855 break;
04856
04857 case 513:
04858
04859 { if (!parserData->idxAttributePresent)
04860 osolerror (NULL, osoption, parserData, "variable index required");
04861 parserData->idxAttributePresent = false;
04862 parserData->valAttributePresent = false;
04863 parserData->numberOfSOSVar++;
04864 }
04865 break;
04866
04867 case 514:
04868
04869 { if (parserData->numberOfSOSVar >= osoption->optimization->variables->sosVariableBranchingWeights->sos[parserData->numberOfSOS]->numberOfVar)
04870 osolerror(NULL, osoption, parserData, "too many variable branching weights");
04871 }
04872 break;
04873
04874 case 519:
04875
04876 { if (parserData->idxAttributePresent)
04877 osolerror (NULL, osoption, parserData, "only one variable index allowed");
04878 parserData->idxAttributePresent = true;
04879 if ((yyvsp[(3) - (4)].ival) < 0)
04880 osolerror (NULL, osoption, parserData, "variable index must be nonnegative");
04881 if (osoption->optimization->numberOfVariables >= 0)
04882 { if ((yyvsp[(3) - (4)].ival) >= osoption->optimization->numberOfVariables)
04883 osolerror (NULL, osoption, parserData, "variable index exceeds upper limit");
04884 };
04885 osoption->optimization->variables->sosVariableBranchingWeights->sos[parserData->numberOfSOS]->var[parserData->numberOfSOSVar]->idx = (yyvsp[(3) - (4)].ival);
04886 }
04887 break;
04888
04889 case 520:
04890
04891 { if (parserData->valAttributePresent)
04892 osolerror (NULL, osoption, parserData, "only one variable weight allowed");
04893 parserData->valAttributePresent = true;
04894 if (strcmp((yyvsp[(2) - (2)].sval),"INF") == 0)
04895 osoption->optimization->variables->sosVariableBranchingWeights->sos[parserData->numberOfSOS]->var[parserData->numberOfSOSVar]->value = OSDBL_MAX;
04896 else if (strcmp((yyvsp[(2) - (2)].sval),"-INF") == 0)
04897 osoption->optimization->variables->sosVariableBranchingWeights->sos[parserData->numberOfSOS]->var[parserData->numberOfSOSVar]->value = -OSDBL_MAX;
04898 else
04899 osoption->optimization->variables->sosVariableBranchingWeights->sos[parserData->numberOfSOS]->var[parserData->numberOfSOSVar]->value = os_strtod((yyvsp[(2) - (2)].sval), NULL);
04900 }
04901 break;
04902
04903 case 527:
04904
04905 { if (parserData->numberOfOtherVariableOptions >= osoption->optimization->variables->numberOfOtherVariableOptions)
04906 osolerror(NULL, osoption, parserData, "too many <other> variable options");
04907 }
04908 break;
04909
04910 case 537:
04911
04912 { if (parserData->otherOptionNumberPresent)
04913 osolerror (NULL, osoption, parserData, "only one numberOfVar attribute allowed");
04914 parserData->otherOptionNumberPresent = true;
04915 parserData->numberOfVar = 0;
04916 if ((yyvsp[(3) - (4)].ival) < 0)
04917 osolerror (NULL, osoption, parserData, "number of <other> variable options must be nonnegative");
04918 osoption->optimization->variables->other[parserData->numberOfOtherVariableOptions]->numberOfVar = (yyvsp[(3) - (4)].ival);
04919 osoption->optimization->variables->other[parserData->numberOfOtherVariableOptions]->var = new OtherVarOption*[(yyvsp[(3) - (4)].ival)];
04920 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++)
04921 osoption->optimization->variables->other[parserData->numberOfOtherVariableOptions]->var[i] = new OtherVarOption();
04922 }
04923 break;
04924
04925 case 538:
04926
04927 { if (parserData->otherOptionNamePresent)
04928 osolerror (NULL, osoption, parserData, "only one name attribute allowed");
04929 parserData->otherOptionNamePresent = true;
04930 osoption->optimization->variables->other[parserData->numberOfOtherVariableOptions]->name = (yyvsp[(2) - (2)].sval);
04931 }
04932 break;
04933
04934 case 540:
04935
04936 { if (parserData->otherOptionValuePresent)
04937 osolerror (NULL, osoption, parserData, "only one value attribute allowed");
04938 parserData->otherOptionValuePresent = true;
04939 osoption->optimization->variables->other[parserData->numberOfOtherVariableOptions]->value = (yyvsp[(2) - (2)].sval);
04940 }
04941 break;
04942
04943 case 542:
04944
04945 { if (parserData->otherOptionSolverPresent)
04946 osolerror (NULL, osoption, parserData, "only one solver attribute allowed");
04947 parserData->otherOptionSolverPresent = true;
04948 osoption->optimization->variables->other[parserData->numberOfOtherVariableOptions]->solver = (yyvsp[(2) - (2)].sval);
04949 }
04950 break;
04951
04952 case 544:
04953
04954 { if (parserData->otherOptionCategoryPresent)
04955 osolerror (NULL, osoption, parserData, "only one category attribute allowed");
04956 parserData->otherOptionCategoryPresent = true;
04957 osoption->optimization->variables->other[parserData->numberOfOtherVariableOptions]->category = (yyvsp[(2) - (2)].sval);
04958 }
04959 break;
04960
04961 case 546:
04962
04963 { if (parserData->otherOptionTypePresent)
04964 osolerror (NULL, osoption, parserData, "only one type attribute allowed");
04965 parserData->otherOptionTypePresent = true;
04966 osoption->optimization->variables->other[parserData->numberOfOtherVariableOptions]->type = (yyvsp[(2) - (2)].sval);
04967 }
04968 break;
04969
04970 case 548:
04971
04972 { if (parserData->otherOptionDescriptionPresent)
04973 osolerror (NULL, osoption, parserData, "only one description attribute allowed");
04974 parserData->otherOptionDescriptionPresent = true;
04975 osoption->optimization->variables->other[parserData->numberOfOtherVariableOptions]->description = (yyvsp[(2) - (2)].sval);
04976 }
04977 break;
04978
04979 case 550:
04980
04981 { if (parserData->numberOfVar < osoption->optimization->variables->other[parserData->numberOfOtherVariableOptions]->numberOfVar)
04982 osolerror(NULL, osoption, parserData, "not enough <var> entries in <other> variable element");
04983 if (!parserData->otherOptionNumberPresent)
04984 osolerror (NULL, osoption, parserData, "number attribute required");
04985 if (!parserData->otherOptionNamePresent)
04986 osolerror (NULL, osoption, parserData, "name attribute required");
04987 parserData->otherOptionNumberPresent = false;
04988 parserData->otherOptionNamePresent = false;
04989 parserData->otherOptionValuePresent = false;
04990 parserData->otherOptionSolverPresent = false;
04991 parserData->otherOptionCategoryPresent = false;
04992 parserData->otherOptionTypePresent = false;
04993 parserData->otherOptionDescriptionPresent = false;
04994 parserData->numberOfOtherVariableOptions++;
04995 }
04996 break;
04997
04998 case 553:
04999
05000 { if (!parserData->idxAttributePresent)
05001 osolerror(NULL, osoption, parserData, "required idx attribute was not found");
05002 parserData->idxAttributePresent = false;
05003 parserData->valAttributePresent = false;
05004 parserData->lbvalAttributePresent = false;
05005 parserData->ubvalAttributePresent = false;
05006 parserData->numberOfVar++;
05007 }
05008 break;
05009
05010 case 554:
05011
05012 { if (parserData->numberOfVar >= osoption->optimization->variables->other[parserData->numberOfOtherVariableOptions]->numberOfVar)
05013 osolerror(NULL, osoption, parserData, "too many <var> entries in <other> variable element");
05014 }
05015 break;
05016
05017 case 561:
05018
05019 { if (parserData->idxAttributePresent)
05020 osolerror (NULL, osoption, parserData, "only one variable index allowed");
05021 parserData->idxAttributePresent = true;
05022 if ((yyvsp[(3) - (4)].ival) < 0)
05023 osolerror (NULL, osoption, parserData, "variable index must be nonnegative");
05024 if (osoption->optimization->numberOfVariables >= 0)
05025 { if ((yyvsp[(3) - (4)].ival) >= osoption->optimization->numberOfVariables)
05026 osolerror (NULL, osoption, parserData, "variable index exceeds upper limit");
05027 };
05028 osoption->optimization->variables->other[parserData->numberOfOtherVariableOptions]->var[parserData->numberOfVar]->idx = (yyvsp[(3) - (4)].ival);
05029 }
05030 break;
05031
05032 case 562:
05033
05034 { if (parserData->valAttributePresent)
05035 osolerror (NULL, osoption, parserData, "only one variable value allowed");
05036 parserData->valAttributePresent = true;
05037 osoption->optimization->variables->other[parserData->numberOfOtherVariableOptions]->var[parserData->numberOfVar]->value = (yyvsp[(2) - (2)].sval);
05038 }
05039 break;
05040
05041 case 564:
05042
05043 { if (parserData->lbvalAttributePresent)
05044 osolerror (NULL, osoption, parserData, "only one lower bound value allowed");
05045 parserData->lbvalAttributePresent = true;
05046 osoption->optimization->variables->other[parserData->numberOfOtherVariableOptions]->var[parserData->numberOfVar]->lbValue = (yyvsp[(2) - (2)].sval);
05047 }
05048 break;
05049
05050 case 566:
05051
05052 { if (parserData->ubvalAttributePresent)
05053 osolerror (NULL, osoption, parserData, "only one upper bound value allowed");
05054 parserData->ubvalAttributePresent = true;
05055 osoption->optimization->variables->other[parserData->numberOfOtherVariableOptions]->var[parserData->numberOfVar]->ubValue = (yyvsp[(2) - (2)].sval);
05056 }
05057 break;
05058
05059 case 572:
05060
05061 { osoption->optimization->objectives = new ObjectiveOption();
05062 }
05063 break;
05064
05065 case 574:
05066
05067 { if ((yyvsp[(3) - (4)].ival) < 0)
05068 osolerror (NULL, osoption, parserData, "number of <other> objective options cannot be negative");
05069 osoption->optimization->objectives->numberOfOtherObjectiveOptions = (yyvsp[(3) - (4)].ival);
05070 osoption->optimization->objectives->other = new OtherObjectiveOption*[(yyvsp[(3) - (4)].ival)];
05071 for (int i= 0; i < (yyvsp[(3) - (4)].ival); i++)
05072 osoption->optimization->objectives->other[i] = new OtherObjectiveOption();
05073 }
05074 break;
05075
05076 case 579:
05077
05078 { if ((yyvsp[(3) - (4)].ival) < 0)
05079 osolerror (NULL, osoption, parserData, "number of <obj> elements must be nonnegative");
05080 osoption->optimization->objectives->initialObjectiveValues = new InitObjectiveValues();
05081 osoption->optimization->objectives->initialObjectiveValues->numberOfObj = (yyvsp[(3) - (4)].ival);
05082 osoption->optimization->objectives->initialObjectiveValues->obj = new InitObjValue*[(yyvsp[(3) - (4)].ival)];
05083 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++)
05084 osoption->optimization->objectives->initialObjectiveValues->obj[i] = new InitObjValue();
05085 }
05086 break;
05087
05088 case 582:
05089
05090 { if (!parserData->idxAttributePresent)
05091 osolerror (NULL, osoption, parserData, "objective index required");
05092 parserData->idxAttributePresent = false;
05093 parserData->valAttributePresent = false;
05094 parserData->numberOfObjValues++;
05095 }
05096 break;
05097
05098 case 583:
05099
05100 { if (parserData->numberOfObjValues >= osoption->optimization->objectives->initialObjectiveValues->numberOfObj)
05101 osolerror(NULL, osoption, parserData, "too many initial objective values");
05102 }
05103 break;
05104
05105 case 588:
05106
05107 { if (parserData->idxAttributePresent)
05108 osolerror (NULL, osoption, parserData, "only one objective index allowed");
05109 parserData->idxAttributePresent = true;
05110 if ((yyvsp[(3) - (4)].ival) >= 0)
05111 osolerror (NULL, osoption, parserData, "objective index must be negative");
05112 if (osoption->optimization->numberOfObjectives >= 0)
05113 { if (-(yyvsp[(3) - (4)].ival) > osoption->optimization->numberOfObjectives)
05114 osolerror (NULL, osoption, parserData, "objective index out of range");
05115 };
05116 osoption->optimization->objectives->initialObjectiveValues->obj[parserData->numberOfObjValues]->idx = (yyvsp[(3) - (4)].ival);
05117 }
05118 break;
05119
05120 case 589:
05121
05122 { if (parserData->valAttributePresent)
05123 osolerror (NULL, osoption, parserData, "only one objective value allowed");
05124 parserData->valAttributePresent = true;
05125 if (strcmp((yyvsp[(2) - (2)].sval),"INF") == 0)
05126 osoption->optimization->objectives->initialObjectiveValues->obj[parserData->numberOfObjValues]->value = OSDBL_MAX;
05127 else if (strcmp((yyvsp[(2) - (2)].sval),"-INF") == 0)
05128 osoption->optimization->objectives->initialObjectiveValues->obj[parserData->numberOfObjValues]->value = -OSDBL_MAX;
05129 else
05130 osoption->optimization->objectives->initialObjectiveValues->obj[parserData->numberOfObjValues]->value = os_strtod((yyvsp[(2) - (2)].sval), NULL);
05131 }
05132 break;
05133
05134 case 595:
05135
05136 { if ((yyvsp[(3) - (4)].ival) < 0)
05137 osolerror (NULL, osoption, parserData, "number of <obj> elements must be nonnegative");
05138 osoption->optimization->objectives->initialObjectiveBounds = new InitObjectiveBounds();
05139 osoption->optimization->objectives->initialObjectiveBounds->numberOfObj = (yyvsp[(3) - (4)].ival);
05140 osoption->optimization->objectives->initialObjectiveBounds->obj = new InitObjBound*[(yyvsp[(3) - (4)].ival)];
05141 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++)
05142 osoption->optimization->objectives->initialObjectiveBounds->obj[i] = new InitObjBound ();
05143 }
05144 break;
05145
05146 case 598:
05147
05148 { if (!parserData->idxAttributePresent)
05149 osolerror (NULL, osoption, parserData, "objective index required");
05150 parserData->idxAttributePresent = false;
05151 parserData->lbvalAttributePresent = false;
05152 parserData->ubvalAttributePresent = false;
05153 parserData->numberOfObjBounds++;
05154 }
05155 break;
05156
05157 case 599:
05158
05159 { if (parserData->numberOfObjBounds >= osoption->optimization->objectives->initialObjectiveBounds->numberOfObj)
05160 osolerror(NULL, osoption, parserData, "too many initial objective bounds");
05161 }
05162 break;
05163
05164 case 605:
05165
05166 { if (parserData->idxAttributePresent)
05167 osolerror (NULL, osoption, parserData, "only one objective index allowed");
05168 parserData->idxAttributePresent = true;
05169 if ((yyvsp[(3) - (4)].ival) >= 0)
05170 osolerror (NULL, osoption, parserData, "objective index must be negative");
05171 if (osoption->optimization->numberOfObjectives >= 0)
05172 { if (-(yyvsp[(3) - (4)].ival) > osoption->optimization->numberOfObjectives)
05173 osolerror (NULL, osoption, parserData, "objective index out of range");
05174 };
05175 osoption->optimization->objectives->initialObjectiveBounds->obj[parserData->numberOfObjBounds]->idx = (yyvsp[(3) - (4)].ival);
05176 }
05177 break;
05178
05179 case 606:
05180
05181 { if (parserData->lbvalAttributePresent)
05182 osolerror (NULL, osoption, parserData, "only one objective lower bound allowed");
05183 parserData->lbvalAttributePresent = true;
05184 if (strcmp((yyvsp[(2) - (2)].sval),"INF") == 0)
05185 osoption->optimization->objectives->initialObjectiveBounds->obj[parserData->numberOfObjBounds]->lbValue = OSDBL_MAX;
05186 else if (strcmp((yyvsp[(2) - (2)].sval),"-INF") == 0)
05187 osoption->optimization->objectives->initialObjectiveBounds->obj[parserData->numberOfObjBounds]->lbValue = -OSDBL_MAX;
05188 else
05189 osoption->optimization->objectives->initialObjectiveBounds->obj[parserData->numberOfObjBounds]->lbValue = os_strtod((yyvsp[(2) - (2)].sval), NULL);
05190 }
05191 break;
05192
05193 case 608:
05194
05195 { if (parserData->ubvalAttributePresent)
05196 osolerror (NULL, osoption, parserData, "only one objective upper bound allowed");
05197 parserData->ubvalAttributePresent = true;
05198 if (strcmp((yyvsp[(2) - (2)].sval),"INF") == 0)
05199 osoption->optimization->objectives->initialObjectiveBounds->obj[parserData->numberOfObjBounds]->ubValue = OSDBL_MAX;
05200 else if (strcmp((yyvsp[(2) - (2)].sval),"-INF") == 0)
05201 osoption->optimization->objectives->initialObjectiveBounds->obj[parserData->numberOfObjBounds]->ubValue = -OSDBL_MAX;
05202 else
05203 osoption->optimization->objectives->initialObjectiveBounds->obj[parserData->numberOfObjBounds]->ubValue = os_strtod((yyvsp[(2) - (2)].sval), NULL);
05204 }
05205 break;
05206
05207 case 615:
05208
05209 { if (parserData->numberOfOtherObjectiveOptions >= osoption->optimization->objectives->numberOfOtherObjectiveOptions)
05210 osolerror(NULL, osoption, parserData, "too many <other> objective options");
05211 }
05212 break;
05213
05214 case 625:
05215
05216 { if (parserData->otherOptionNumberPresent)
05217 osolerror (NULL, osoption, parserData, "only one numberOfObj attribute allowed");
05218 parserData->otherOptionNumberPresent = true;
05219 parserData->numberOfObj = 0;
05220 if ((yyvsp[(3) - (4)].ival) < 0)
05221 osolerror (NULL, osoption, parserData, "number of <other> objective options must be nonnegative");
05222 osoption->optimization->objectives->other[parserData->numberOfOtherObjectiveOptions]->numberOfObj = (yyvsp[(3) - (4)].ival);
05223 osoption->optimization->objectives->other[parserData->numberOfOtherObjectiveOptions]->obj = new OtherObjOption*[(yyvsp[(3) - (4)].ival)];
05224 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++)
05225 osoption->optimization->objectives->other[parserData->numberOfOtherObjectiveOptions]->obj[i] = new OtherObjOption();
05226 }
05227 break;
05228
05229 case 626:
05230
05231 { if (parserData->otherOptionNamePresent)
05232 osolerror (NULL, osoption, parserData, "only one name attribute allowed");
05233 parserData->otherOptionNamePresent = true;
05234 osoption->optimization->objectives->other[parserData->numberOfOtherObjectiveOptions]->name = (yyvsp[(2) - (2)].sval);
05235 }
05236 break;
05237
05238 case 628:
05239
05240 { if (parserData->otherOptionValuePresent)
05241 osolerror (NULL, osoption, parserData, "only one value attribute allowed");
05242 parserData->otherOptionValuePresent = true;
05243 osoption->optimization->objectives->other[parserData->numberOfOtherObjectiveOptions]->value = (yyvsp[(2) - (2)].sval);
05244 }
05245 break;
05246
05247 case 630:
05248
05249 { if (parserData->otherOptionSolverPresent)
05250 osolerror (NULL, osoption, parserData, "only one solver attribute allowed");
05251 parserData->otherOptionSolverPresent = true;
05252 osoption->optimization->objectives->other[parserData->numberOfOtherObjectiveOptions]->solver = (yyvsp[(2) - (2)].sval);
05253 }
05254 break;
05255
05256 case 632:
05257
05258 { if (parserData->otherOptionCategoryPresent)
05259 osolerror (NULL, osoption, parserData, "only one category attribute allowed");
05260 parserData->otherOptionCategoryPresent = true;
05261 osoption->optimization->objectives->other[parserData->numberOfOtherObjectiveOptions]->category = (yyvsp[(2) - (2)].sval);
05262 }
05263 break;
05264
05265 case 634:
05266
05267 { if (parserData->otherOptionTypePresent)
05268 osolerror (NULL, osoption, parserData, "only one type attribute allowed");
05269 parserData->otherOptionTypePresent = true;
05270 osoption->optimization->objectives->other[parserData->numberOfOtherObjectiveOptions]->type = (yyvsp[(2) - (2)].sval);
05271 }
05272 break;
05273
05274 case 636:
05275
05276 { if (parserData->otherOptionDescriptionPresent)
05277 osolerror (NULL, osoption, parserData, "only one description attribute allowed");
05278 parserData->otherOptionDescriptionPresent = true;
05279 osoption->optimization->objectives->other[parserData->numberOfOtherObjectiveOptions]->description = (yyvsp[(2) - (2)].sval);
05280 }
05281 break;
05282
05283 case 638:
05284
05285 { if (parserData->numberOfObj < osoption->optimization->objectives->other[parserData->numberOfOtherObjectiveOptions]->numberOfObj)
05286 osolerror(NULL, osoption, parserData, "not enough <obj> entries in <other> variable element");
05287 if (!parserData->otherOptionNumberPresent)
05288 osolerror (NULL, osoption, parserData, "number attribute required");
05289 if (!parserData->otherOptionNamePresent)
05290 osolerror (NULL, osoption, parserData, "name attribute required");
05291 parserData->otherOptionNumberPresent = false;
05292 parserData->otherOptionNamePresent = false;
05293 parserData->otherOptionValuePresent = false;
05294 parserData->otherOptionSolverPresent = false;
05295 parserData->otherOptionCategoryPresent = false;
05296 parserData->otherOptionTypePresent = false;
05297 parserData->otherOptionDescriptionPresent = false;
05298 parserData->numberOfOtherObjectiveOptions++;
05299 }
05300 break;
05301
05302 case 641:
05303
05304 { if (!parserData->idxAttributePresent)
05305 osolerror(NULL, osoption, parserData, "required idx attribute was not found");
05306 parserData->idxAttributePresent = false;
05307 parserData->valAttributePresent = false;
05308 parserData->lbvalAttributePresent = false;
05309 parserData->ubvalAttributePresent = false;
05310 parserData->numberOfObj++;
05311 }
05312 break;
05313
05314 case 642:
05315
05316 { if (parserData->numberOfObj >= osoption->optimization->objectives->other[parserData->numberOfOtherObjectiveOptions]->numberOfObj)
05317 osolerror(NULL, osoption, parserData, "too many <obj> entries in <other> objective element");
05318 }
05319 break;
05320
05321 case 649:
05322
05323 { if (parserData->idxAttributePresent)
05324 osolerror (NULL, osoption, parserData, "only one objective index allowed");
05325 parserData->idxAttributePresent = true;
05326 if ((yyvsp[(3) - (4)].ival) >= 0)
05327 osolerror (NULL, osoption, parserData, "objective index must be negative");
05328 if (parserData->numberOfObjectivesPresent)
05329 { if (-(yyvsp[(3) - (4)].ival) > parserData->numberOfObjectives)
05330 osolerror (NULL, osoption, parserData, "objective index exceeds upper limit");
05331 };
05332 osoption->optimization->objectives->other[parserData->numberOfOtherObjectiveOptions]->obj[parserData->numberOfObj]->idx = (yyvsp[(3) - (4)].ival);
05333 }
05334 break;
05335
05336 case 650:
05337
05338 { if (parserData->valAttributePresent)
05339 osolerror (NULL, osoption, parserData, "only one variable value allowed");
05340 parserData->valAttributePresent = true;
05341 osoption->optimization->objectives->other[parserData->numberOfOtherObjectiveOptions]->obj[parserData->numberOfObj]->value = (yyvsp[(2) - (2)].sval);
05342 }
05343 break;
05344
05345 case 652:
05346
05347 { if (parserData->lbvalAttributePresent)
05348 osolerror (NULL, osoption, parserData, "only one lower bound value allowed");
05349 parserData->lbvalAttributePresent = true;
05350 osoption->optimization->objectives->other[parserData->numberOfOtherObjectiveOptions]->obj[parserData->numberOfObj]->lbValue = (yyvsp[(2) - (2)].sval);
05351 }
05352 break;
05353
05354 case 654:
05355
05356 { if (parserData->ubvalAttributePresent)
05357 osolerror (NULL, osoption, parserData, "only one upper bound value allowed");
05358 parserData->ubvalAttributePresent = true;
05359 osoption->optimization->objectives->other[parserData->numberOfOtherObjectiveOptions]->obj[parserData->numberOfObj]->ubValue = (yyvsp[(2) - (2)].sval);
05360 }
05361 break;
05362
05363 case 660:
05364
05365 { osoption->optimization->constraints = new ConstraintOption();
05366 }
05367 break;
05368
05369 case 662:
05370
05371 { if ((yyvsp[(3) - (4)].ival) < 0)
05372 osolerror (NULL, osoption, parserData, "number of <other> constraint options cannot be negative");
05373 osoption->optimization->constraints->numberOfOtherConstraintOptions = (yyvsp[(3) - (4)].ival);
05374 osoption->optimization->constraints->other = new OtherConstraintOption*[(yyvsp[(3) - (4)].ival)];
05375 for (int i= 0; i < (yyvsp[(3) - (4)].ival); i++)
05376 osoption->optimization->constraints->other[i] = new OtherConstraintOption();
05377 }
05378 break;
05379
05380 case 667:
05381
05382 { if ((yyvsp[(3) - (4)].ival) < 0)
05383 osolerror (NULL, osoption, parserData, "number of <con> elements must be nonnegative");
05384 osoption->optimization->constraints->initialConstraintValues = new InitConstraintValues();
05385 osoption->optimization->constraints->initialConstraintValues->numberOfCon = (yyvsp[(3) - (4)].ival);
05386 osoption->optimization->constraints->initialConstraintValues->con = new InitConValue*[(yyvsp[(3) - (4)].ival)];
05387 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++)
05388 osoption->optimization->constraints->initialConstraintValues->con[i] = new InitConValue();
05389 }
05390 break;
05391
05392 case 670:
05393
05394 { if (!parserData->idxAttributePresent)
05395 osolerror (NULL, osoption, parserData, "variable index required");
05396 parserData->idxAttributePresent = false;
05397 parserData->valAttributePresent = false;
05398 parserData->numberOfCon++;
05399 }
05400 break;
05401
05402 case 671:
05403
05404 { if (parserData->numberOfCon >= osoption->optimization->constraints->initialConstraintValues->numberOfCon)
05405 osolerror(NULL, osoption, parserData, "too many initial constraint values");
05406 }
05407 break;
05408
05409 case 676:
05410
05411 { if (parserData->idxAttributePresent)
05412 osolerror (NULL, osoption, parserData, "only one constraint index allowed");
05413 parserData->idxAttributePresent = true;
05414 if ((yyvsp[(3) - (4)].ival) < 0)
05415 osolerror (NULL, osoption, parserData, "constraint index must be nonnegative");
05416 if (osoption->optimization->numberOfConstraints >= 0)
05417 { if ((yyvsp[(3) - (4)].ival) > osoption->optimization->numberOfConstraints)
05418 osolerror (NULL, osoption, parserData, "constraint index out of range");
05419 };
05420 osoption->optimization->constraints->initialConstraintValues->con[parserData->numberOfCon]->idx = (yyvsp[(3) - (4)].ival);
05421 }
05422 break;
05423
05424 case 677:
05425
05426 { if (parserData->valAttributePresent)
05427 osolerror (NULL, osoption, parserData, "only one constraint value allowed");
05428 parserData->valAttributePresent = true;
05429 if (strcmp((yyvsp[(2) - (2)].sval),"INF") == 0)
05430 osoption->optimization->constraints->initialConstraintValues->con[parserData->numberOfCon]->value = OSDBL_MAX;
05431 else if (strcmp((yyvsp[(2) - (2)].sval),"-INF") == 0)
05432 osoption->optimization->constraints->initialConstraintValues->con[parserData->numberOfCon]->value = -OSDBL_MAX;
05433 else
05434 osoption->optimization->constraints->initialConstraintValues->con[parserData->numberOfCon]->value = os_strtod((yyvsp[(2) - (2)].sval), NULL);
05435 }
05436 break;
05437
05438 case 683:
05439
05440 { if ((yyvsp[(3) - (4)].ival) < 0)
05441 osolerror (NULL, osoption, parserData, "number of <con> elements must be nonnegative");
05442 osoption->optimization->constraints->initialDualValues = new InitDualVariableValues();
05443 osoption->optimization->constraints->initialDualValues->numberOfCon = (yyvsp[(3) - (4)].ival);
05444 osoption->optimization->constraints->initialDualValues->con = new InitDualVarValue*[(yyvsp[(3) - (4)].ival)];
05445 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++)
05446 osoption->optimization->constraints->initialDualValues->con[i] = new InitDualVarValue ();
05447 }
05448 break;
05449
05450 case 686:
05451
05452 { if (!parserData->idxAttributePresent)
05453 osolerror (NULL, osoption, parserData, "constraint index required");
05454 parserData->idxAttributePresent = false;
05455 parserData->lbvalAttributePresent = false;
05456 parserData->ubvalAttributePresent = false;
05457 parserData->numberOfDuals++;
05458 }
05459 break;
05460
05461 case 687:
05462
05463 { if (parserData->numberOfDuals >= osoption->optimization->constraints->initialDualValues->numberOfCon)
05464 osolerror(NULL, osoption, parserData, "too many initial dual variable bounds");
05465 }
05466 break;
05467
05468 case 693:
05469
05470 { if (parserData->idxAttributePresent)
05471 osolerror (NULL, osoption, parserData, "only one constraint index allowed");
05472 parserData->idxAttributePresent = true;
05473 if ((yyvsp[(3) - (4)].ival) < 0)
05474 osolerror (NULL, osoption, parserData, "constraint index must be nonnegative");
05475 if (parserData->numberOfConstraintsPresent)
05476 { if ((yyvsp[(3) - (4)].ival) > parserData->numberOfConstraints)
05477 osolerror (NULL, osoption, parserData, "constraint index out of range");
05478 };
05479 osoption->optimization->constraints->initialDualValues->con[parserData->numberOfDuals]->idx = (yyvsp[(3) - (4)].ival);
05480 }
05481 break;
05482
05483 case 694:
05484
05485 { if (parserData->lbvalAttributePresent)
05486 osolerror (NULL, osoption, parserData, "only one dual variable lower bound allowed");
05487 parserData->lbvalAttributePresent = true;
05488 if (strcmp((yyvsp[(2) - (2)].sval),"INF") == 0)
05489 osoption->optimization->constraints->initialDualValues->con[parserData->numberOfDuals]->lbDualValue = OSDBL_MAX;
05490 else if (strcmp((yyvsp[(2) - (2)].sval),"-INF") == 0)
05491 osoption->optimization->constraints->initialDualValues->con[parserData->numberOfDuals]->lbDualValue = -OSDBL_MAX;
05492 else
05493 osoption->optimization->constraints->initialDualValues->con[parserData->numberOfDuals]->lbDualValue = os_strtod((yyvsp[(2) - (2)].sval), NULL);
05494 }
05495 break;
05496
05497 case 696:
05498
05499 { if (parserData->ubvalAttributePresent)
05500 osolerror (NULL, osoption, parserData, "only one dual variable upper bound allowed");
05501 parserData->ubvalAttributePresent = true;
05502 if (strcmp((yyvsp[(2) - (2)].sval),"INF") == 0)
05503 osoption->optimization->constraints->initialDualValues->con[parserData->numberOfDuals]->ubDualValue = OSDBL_MAX;
05504 else if (strcmp((yyvsp[(2) - (2)].sval),"-INF") == 0)
05505 osoption->optimization->constraints->initialDualValues->con[parserData->numberOfDuals]->ubDualValue = -OSDBL_MAX;
05506 else
05507 osoption->optimization->constraints->initialDualValues->con[parserData->numberOfDuals]->ubDualValue = os_strtod((yyvsp[(2) - (2)].sval), NULL);
05508 }
05509 break;
05510
05511 case 703:
05512
05513 { if (parserData->numberOfOtherConstraintOptions >= osoption->optimization->constraints->numberOfOtherConstraintOptions)
05514 osolerror(NULL, osoption, parserData, "too many <other> constraint options");
05515 }
05516 break;
05517
05518 case 713:
05519
05520 { if (parserData->otherOptionNumberPresent)
05521 osolerror (NULL, osoption, parserData, "only one numberOfCon attribute allowed");
05522 parserData->otherOptionNumberPresent = true;
05523 parserData->numberOfCon = 0;
05524 if ((yyvsp[(3) - (4)].ival) < 0)
05525 osolerror (NULL, osoption, parserData, "number of <other> constraint options must be nonnegative");
05526 osoption->optimization->constraints->other[parserData->numberOfOtherConstraintOptions]->numberOfCon = (yyvsp[(3) - (4)].ival);
05527 osoption->optimization->constraints->other[parserData->numberOfOtherConstraintOptions]->con = new OtherConOption*[(yyvsp[(3) - (4)].ival)];
05528 for (int i = 0; i < (yyvsp[(3) - (4)].ival); i++)
05529 osoption->optimization->constraints->other[parserData->numberOfOtherConstraintOptions]->con[i] = new OtherConOption();
05530 }
05531 break;
05532
05533 case 714:
05534
05535 { if (parserData->otherOptionNamePresent)
05536 osolerror (NULL, osoption, parserData, "only one name attribute allowed");
05537 parserData->otherOptionNamePresent = true;
05538 osoption->optimization->constraints->other[parserData->numberOfOtherConstraintOptions]->name = (yyvsp[(2) - (2)].sval);
05539 }
05540 break;
05541
05542 case 716:
05543
05544 { if (parserData->otherOptionValuePresent)
05545 osolerror (NULL, osoption, parserData, "only one value attribute allowed");
05546 parserData->otherOptionValuePresent = true;
05547 osoption->optimization->constraints->other[parserData->numberOfOtherConstraintOptions]->value = (yyvsp[(2) - (2)].sval);
05548 }
05549 break;
05550
05551 case 718:
05552
05553 { if (parserData->otherOptionSolverPresent)
05554 osolerror (NULL, osoption, parserData, "only one solver attribute allowed");
05555 parserData->otherOptionSolverPresent = true;
05556 osoption->optimization->constraints->other[parserData->numberOfOtherConstraintOptions]->solver = (yyvsp[(2) - (2)].sval);
05557 }
05558 break;
05559
05560 case 720:
05561
05562 { if (parserData->otherOptionCategoryPresent)
05563 osolerror (NULL, osoption, parserData, "only one category attribute allowed");
05564 parserData->otherOptionCategoryPresent = true;
05565 osoption->optimization->constraints->other[parserData->numberOfOtherConstraintOptions]->category = (yyvsp[(2) - (2)].sval);
05566 }
05567 break;
05568
05569 case 722:
05570
05571 { if (parserData->otherOptionTypePresent)
05572 osolerror (NULL, osoption, parserData, "only one type attribute allowed");
05573 parserData->otherOptionTypePresent = true;
05574 osoption->optimization->constraints->other[parserData->numberOfOtherConstraintOptions]->type = (yyvsp[(2) - (2)].sval);
05575 }
05576 break;
05577
05578 case 724:
05579
05580 { if (parserData->otherOptionDescriptionPresent)
05581 osolerror (NULL, osoption, parserData, "only one description attribute allowed");
05582 parserData->otherOptionDescriptionPresent = true;
05583 osoption->optimization->constraints->other[parserData->numberOfOtherConstraintOptions]->description = (yyvsp[(2) - (2)].sval);
05584 }
05585 break;
05586
05587 case 726:
05588
05589 { if (parserData->numberOfCon < osoption->optimization->constraints->other[parserData->numberOfOtherConstraintOptions]->numberOfCon)
05590 osolerror(NULL, osoption, parserData, "not enough <con> entries in <other> constraint element");
05591 if (!parserData->otherOptionNumberPresent)
05592 osolerror (NULL, osoption, parserData, "number attribute required");
05593 if (!parserData->otherOptionNamePresent)
05594 osolerror (NULL, osoption, parserData, "name attribute required");
05595 parserData->otherOptionNumberPresent = false;
05596 parserData->otherOptionNamePresent = false;
05597 parserData->otherOptionValuePresent = false;
05598 parserData->otherOptionSolverPresent = false;
05599 parserData->otherOptionCategoryPresent = false;
05600 parserData->otherOptionTypePresent = false;
05601 parserData->otherOptionDescriptionPresent = false;
05602 parserData->numberOfOtherConstraintOptions++;
05603 }
05604 break;
05605
05606 case 729:
05607
05608 { if (!parserData->idxAttributePresent)
05609 osolerror(NULL, osoption, parserData, "required idx attribute was not found");
05610 parserData->idxAttributePresent = false;
05611 parserData->valAttributePresent = false;
05612 parserData->lbvalAttributePresent = false;
05613 parserData->ubvalAttributePresent = false;
05614 parserData->numberOfCon++;
05615 }
05616 break;
05617
05618 case 730:
05619
05620 { if (parserData->numberOfCon >= osoption->optimization->constraints->other[parserData->numberOfOtherConstraintOptions]->numberOfCon)
05621 osolerror(NULL, osoption, parserData, "too many <con> entries in <other> constraint element");
05622 }
05623 break;
05624
05625 case 737:
05626
05627 { if (parserData->idxAttributePresent)
05628 osolerror (NULL, osoption, parserData, "only one constraint index allowed");
05629 parserData->idxAttributePresent = true;
05630 if ((yyvsp[(3) - (4)].ival) < 0)
05631 osolerror (NULL, osoption, parserData, "constraint index must be nonnegative");
05632 if (parserData->numberOfConstraintsPresent)
05633 { if ((yyvsp[(3) - (4)].ival) > parserData->numberOfConstraints)
05634 osolerror (NULL, osoption, parserData, "constraint index exceeds upper limit");
05635 };
05636 osoption->optimization->constraints->other[parserData->numberOfOtherConstraintOptions]->con[parserData->numberOfCon]->idx = (yyvsp[(3) - (4)].ival);
05637 }
05638 break;
05639
05640 case 738:
05641
05642 { if (parserData->valAttributePresent)
05643 osolerror (NULL, osoption, parserData, "only one constraint value allowed");
05644 parserData->valAttributePresent = true;
05645 osoption->optimization->constraints->other[parserData->numberOfOtherConstraintOptions]->con[parserData->numberOfCon]->value = (yyvsp[(2) - (2)].sval);
05646 }
05647 break;
05648
05649 case 740:
05650
05651 { if (parserData->lbvalAttributePresent)
05652 osolerror (NULL, osoption, parserData, "only one lower bound value allowed");
05653 parserData->lbvalAttributePresent = true;
05654 osoption->optimization->constraints->other[parserData->numberOfOtherConstraintOptions]->con[parserData->numberOfCon]->lbValue = (yyvsp[(2) - (2)].sval);
05655 }
05656 break;
05657
05658 case 742:
05659
05660 { if (parserData->ubvalAttributePresent)
05661 osolerror (NULL, osoption, parserData, "only one upper bound value allowed");
05662 parserData->ubvalAttributePresent = true;
05663 osoption->optimization->constraints->other[parserData->numberOfOtherConstraintOptions]->con[parserData->numberOfCon]->ubValue = (yyvsp[(2) - (2)].sval);
05664 }
05665 break;
05666
05667 case 747:
05668
05669 { if (parserData->numberOfSolverOptions != osoption->optimization->solverOptions->numberOfSolverOptions)
05670 osolerror (NULL, osoption, parserData, "wrong number of solver options in <optimization> element");
05671 }
05672 break;
05673
05674 case 748:
05675
05676 { if (parserData->solverOptionsPresent)
05677 { osolerror( NULL, osoption, parserData, "only one <solverOptions> element allowed");
05678 }
05679 else
05680 { parserData->solverOptionsPresent = true;
05681 osoption->optimization->solverOptions = new SolverOptions();
05682 }
05683 }
05684 break;
05685
05686 case 749:
05687
05688 { if ((yyvsp[(3) - (4)].ival) < 0)
05689 osolerror (NULL, osoption, parserData, "number of solver options cannot be negative");
05690 osoption->optimization->solverOptions->numberOfSolverOptions = (yyvsp[(3) - (4)].ival);
05691 osoption->optimization->solverOptions->solverOption = new SolverOption*[(yyvsp[(3) - (4)].ival)];
05692 for (int i=0; i < (yyvsp[(3) - (4)].ival); i++) osoption->optimization->solverOptions->solverOption[i] = new SolverOption();
05693 }
05694 break;
05695
05696 case 752:
05697
05698 { if (parserData->numberOfSolverOptions >= osoption->optimization->solverOptions->numberOfSolverOptions)
05699 { osolerror (NULL, osoption, parserData, "too many solver options in <optimization> element");
05700 };
05701 }
05702 break;
05703
05704 case 753:
05705
05706 { if (!parserData->solverOptionNamePresent)
05707 osolerror (NULL, osoption, parserData, "name attribute must be present");
05708
05709 parserData->solverOptionNamePresent = false;
05710 parserData->solverOptionValuePresent = false;
05711 parserData->solverOptionSolverPresent = false;
05712 parserData->solverOptionCategoryPresent = false;
05713 parserData->solverOptionTypePresent = false;
05714 parserData->solverOptionDescriptionPresent = false;
05715 parserData->numberOfSolverOptions++;
05716 }
05717 break;
05718
05719 case 762:
05720
05721 { if (parserData->solverOptionNamePresent)
05722 { osolerror( NULL, osoption, parserData, "only one name attribute allowed");
05723 }
05724 else
05725 { parserData->solverOptionNamePresent = true;
05726 osoption->optimization->solverOptions->solverOption[parserData->numberOfSolverOptions]->name = (yyvsp[(2) - (2)].sval);
05727 }
05728 }
05729 break;
05730
05731 case 764:
05732
05733 { if (parserData->solverOptionValuePresent)
05734 { osolerror( NULL, osoption, parserData, "only one value attribute allowed");
05735 }
05736 else
05737 { parserData->solverOptionValuePresent = true;
05738 osoption->optimization->solverOptions->solverOption[parserData->numberOfSolverOptions]->value = (yyvsp[(2) - (2)].sval);
05739 }
05740 }
05741 break;
05742
05743 case 766:
05744
05745 { if (parserData->solverOptionSolverPresent)
05746 { osolerror( NULL, osoption, parserData, "only one solver attribute allowed");
05747 }
05748 else
05749 { parserData->solverOptionSolverPresent = true;
05750 osoption->optimization->solverOptions->solverOption[parserData->numberOfSolverOptions]->solver = (yyvsp[(2) - (2)].sval);
05751 }
05752 }
05753 break;
05754
05755 case 768:
05756
05757 { if (parserData->solverOptionCategoryPresent)
05758 { osolerror( NULL, osoption, parserData, "only one category attribute allowed");
05759 }
05760 else
05761 { parserData->solverOptionCategoryPresent = true;
05762 osoption->optimization->solverOptions->solverOption[parserData->numberOfSolverOptions]->category = (yyvsp[(2) - (2)].sval);
05763 }
05764 }
05765 break;
05766
05767 case 770:
05768
05769 { if (parserData->solverOptionTypePresent)
05770 { osolerror( NULL, osoption, parserData, "only one type attribute allowed");
05771 }
05772 else
05773 { parserData->solverOptionTypePresent = true;
05774 osoption->optimization->solverOptions->solverOption[parserData->numberOfSolverOptions]->type = (yyvsp[(2) - (2)].sval);
05775 }
05776 }
05777 break;
05778
05779 case 772:
05780
05781 { if (parserData->solverOptionDescriptionPresent)
05782 { osolerror( NULL, osoption, parserData, "only one description attribute allowed");
05783 }
05784 else
05785 { parserData->solverOptionDescriptionPresent = true;
05786 osoption->optimization->solverOptions->solverOption[parserData->numberOfSolverOptions]->description = (yyvsp[(2) - (2)].sval);
05787 }
05788 }
05789 break;
05790
05791
05792
05793
05794 default: break;
05795 }
05796 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
05797
05798 YYPOPSTACK (yylen);
05799 yylen = 0;
05800 YY_STACK_PRINT (yyss, yyssp);
05801
05802 *++yyvsp = yyval;
05803 *++yylsp = yyloc;
05804
05805
05806
05807
05808
05809 yyn = yyr1[yyn];
05810
05811 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
05812 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
05813 yystate = yytable[yystate];
05814 else
05815 yystate = yydefgoto[yyn - YYNTOKENS];
05816
05817 goto yynewstate;
05818
05819
05820
05821
05822
05823 yyerrlab:
05824
05825 if (!yyerrstatus)
05826 {
05827 ++yynerrs;
05828 #if ! YYERROR_VERBOSE
05829 yyerror (&yylloc, osoption, parserData, YY_("syntax error"));
05830 #else
05831 {
05832 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
05833 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
05834 {
05835 YYSIZE_T yyalloc = 2 * yysize;
05836 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
05837 yyalloc = YYSTACK_ALLOC_MAXIMUM;
05838 if (yymsg != yymsgbuf)
05839 YYSTACK_FREE (yymsg);
05840 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
05841 if (yymsg)
05842 yymsg_alloc = yyalloc;
05843 else
05844 {
05845 yymsg = yymsgbuf;
05846 yymsg_alloc = sizeof yymsgbuf;
05847 }
05848 }
05849
05850 if (0 < yysize && yysize <= yymsg_alloc)
05851 {
05852 (void) yysyntax_error (yymsg, yystate, yychar);
05853 yyerror (&yylloc, osoption, parserData, yymsg);
05854 }
05855 else
05856 {
05857 yyerror (&yylloc, osoption, parserData, YY_("syntax error"));
05858 if (yysize != 0)
05859 goto yyexhaustedlab;
05860 }
05861 }
05862 #endif
05863 }
05864
05865 yyerror_range[0] = yylloc;
05866
05867 if (yyerrstatus == 3)
05868 {
05869
05870
05871
05872 if (yychar <= YYEOF)
05873 {
05874
05875 if (yychar == YYEOF)
05876 YYABORT;
05877 }
05878 else
05879 {
05880 yydestruct ("Error: discarding",
05881 yytoken, &yylval, &yylloc, osoption, parserData);
05882 yychar = YYEMPTY;
05883 }
05884 }
05885
05886
05887
05888 goto yyerrlab1;
05889
05890
05891
05892
05893
05894 yyerrorlab:
05895
05896
05897
05898
05899 if ( 0)
05900 goto yyerrorlab;
05901
05902 yyerror_range[0] = yylsp[1-yylen];
05903
05904
05905 YYPOPSTACK (yylen);
05906 yylen = 0;
05907 YY_STACK_PRINT (yyss, yyssp);
05908 yystate = *yyssp;
05909 goto yyerrlab1;
05910
05911
05912
05913
05914
05915 yyerrlab1:
05916 yyerrstatus = 3;
05917
05918 for (;;)
05919 {
05920 yyn = yypact[yystate];
05921 if (yyn != YYPACT_NINF)
05922 {
05923 yyn += YYTERROR;
05924 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
05925 {
05926 yyn = yytable[yyn];
05927 if (0 < yyn)
05928 break;
05929 }
05930 }
05931
05932
05933 if (yyssp == yyss)
05934 YYABORT;
05935
05936 yyerror_range[0] = *yylsp;
05937 yydestruct ("Error: popping",
05938 yystos[yystate], yyvsp, yylsp, osoption, parserData);
05939 YYPOPSTACK (1);
05940 yystate = *yyssp;
05941 YY_STACK_PRINT (yyss, yyssp);
05942 }
05943
05944 if (yyn == YYFINAL)
05945 YYACCEPT;
05946
05947 *++yyvsp = yylval;
05948
05949 yyerror_range[1] = yylloc;
05950
05951
05952 YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
05953 *++yylsp = yyloc;
05954
05955
05956 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
05957
05958 yystate = yyn;
05959 goto yynewstate;
05960
05961
05962
05963
05964
05965 yyacceptlab:
05966 yyresult = 0;
05967 goto yyreturn;
05968
05969
05970
05971
05972 yyabortlab:
05973 yyresult = 1;
05974 goto yyreturn;
05975
05976 #ifndef yyoverflow
05977
05978
05979
05980 yyexhaustedlab:
05981 yyerror (&yylloc, osoption, parserData, YY_("memory exhausted"));
05982 yyresult = 2;
05983
05984 #endif
05985
05986 yyreturn:
05987 if (yychar != YYEOF && yychar != YYEMPTY)
05988 yydestruct ("Cleanup: discarding lookahead",
05989 yytoken, &yylval, &yylloc, osoption, parserData);
05990
05991
05992 YYPOPSTACK (yylen);
05993 YY_STACK_PRINT (yyss, yyssp);
05994 while (yyssp != yyss)
05995 {
05996 yydestruct ("Cleanup: popping",
05997 yystos[*yyssp], yyvsp, yylsp, osoption, parserData);
05998 YYPOPSTACK (1);
05999 }
06000 #ifndef yyoverflow
06001 if (yyss != yyssa)
06002 YYSTACK_FREE (yyss);
06003 #endif
06004 #if YYERROR_VERBOSE
06005 if (yymsg != yymsgbuf)
06006 YYSTACK_FREE (yymsg);
06007 #endif
06008
06009 return YYID (yyresult);
06010 }
06011
06012
06013
06014
06015
06016 void osolerror(YYLTYPE* mytype, OSOption *osoption, OSoLParserData* parserData, const char* errormsg )
06017 {
06018 std::ostringstream outStr;
06019 std::string error = errormsg;
06020 error = "Input is either not valid or well formed: " + error;
06021 outStr << error << std::endl;
06022 outStr << "See line number: " << osolget_lineno( scanner) << std::endl;
06023 outStr << "The offending text is: " << osolget_text ( scanner ) << std::endl;
06024 error = outStr.str();
06025
06026
06027
06028 throw ErrorClass( error);
06029 }
06030
06031 void yygetOSOption(const char *parsestring, OSOption *osoption, OSoLParserData *parserData) throw(ErrorClass){
06032 try{
06033 osol_scan_string( parsestring, scanner);
06034 osolset_lineno (1 , scanner );
06035
06036
06037
06038 if( osolparse( osoption, parserData) != 0) {
06039
06040 throw ErrorClass( "Error parsing the OSoL file");
06041 }
06042 }
06043 catch(const ErrorClass& eclass){
06044 throw ErrorClass( eclass.errormsg);
06045 }
06046 }
06047
06048