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