/home/coin/SVN-release/OS-2.2.0/OS/src/OSParsers/OSParseosrl.tab.cpp

Go to the documentation of this file.
00001 /* A Bison parser, made by GNU Bison 2.3.  */
00002 
00003 /* Skeleton implementation for Bison's Yacc-like parsers in C
00004 
00005    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
00006    Free Software Foundation, Inc.
00007 
00008    This program is free software; you can redistribute it and/or modify
00009    it under the terms of the GNU General Public License as published by
00010    the Free Software Foundation; either version 2, or (at your option)
00011    any later version.
00012 
00013    This program is distributed in the hope that it will be useful,
00014    but WITHOUT ANY WARRANTY; without even the implied warranty of
00015    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016    GNU General Public License for more details.
00017 
00018    You should have received a copy of the GNU General Public License
00019    along with this program; if not, write to the Free Software
00020    Foundation, Inc., 51 Franklin Street, Fifth Floor,
00021    Boston, MA 02110-1301, USA.  */
00022 
00023 /* As a special exception, you may create a larger work that contains
00024    part or all of the Bison parser skeleton and distribute that work
00025    under terms of your choice, so long as that work isn't itself a
00026    parser generator using the skeleton or a modified version thereof
00027    as a parser skeleton.  Alternatively, if you modify or redistribute
00028    the parser skeleton itself, you may (at your option) remove this
00029    special exception, which will cause the skeleton and the resulting
00030    Bison output files to be licensed under the GNU General Public
00031    License without this special exception.
00032 
00033    This special exception was added by the Free Software Foundation in
00034    version 2.2 of Bison.  */
00035 
00036 /* C LALR(1) parser skeleton written by Richard Stallman, by
00037    simplifying the original so-called "semantic" parser.  */
00038 
00039 /* All symbols defined below should begin with yy or YY, to avoid
00040    infringing on user name space.  This should be done even for local
00041    variables, as they might otherwise be expanded by user macros.
00042    There are some unavoidable exceptions within include files to
00043    define necessary library symbols; they are noted "INFRINGES ON
00044    USER NAME SPACE" below.  */
00045 
00046 /* Identify Bison output.  */
00047 #define YYBISON 1
00048 
00049 /* Bison version.  */
00050 #define YYBISON_VERSION "2.3"
00051 
00052 /* Skeleton name.  */
00053 #define YYSKELETON_NAME "yacc.c"
00054 
00055 /* Pure parsers.  */
00056 #define YYPURE 1
00057 
00058 /* Using locations.  */
00059 #define YYLSP_NEEDED 1
00060 
00061 /* Substitute the variable and function names.  */
00062 #define yyparse osrlparse
00063 #define yylex   osrllex
00064 #define yyerror osrlerror
00065 #define yylval  osrllval
00066 #define yychar  osrlchar
00067 #define yydebug osrldebug
00068 #define yynerrs osrlnerrs
00069 #define yylloc osrllloc
00070 
00071 /* Tokens.  */
00072 #ifndef YYTOKENTYPE
00073 # define YYTOKENTYPE
00074    /* Put the tokens into the symbol table, so that GDB and other debuggers
00075       know about them.  */
00076    enum yytokentype {
00077      ATTRIBUTETEXT = 258,
00078      ELEMENTTEXT = 259,
00079      ITEMTEXT = 260,
00080      INTEGER = 261,
00081      DOUBLE = 262,
00082      QUOTE = 263,
00083      TWOQUOTES = 264,
00084      GREATERTHAN = 265,
00085      ENDOFELEMENT = 266,
00086      NUMBEROFCONATT = 267,
00087      NUMBEROFCONSTRAINTSATT = 268,
00088      NUMBEROFITEMSATT = 269,
00089      NUMBEROFOBJATT = 270,
00090      NUMBEROFOBJECTIVESATT = 271,
00091      NUMBEROFOTHERCONSTRAINTRESULTSATT = 272,
00092      NUMBEROFOTHEROBJECTIVERESULTSATT = 273,
00093      NUMBEROFOTHERRESULTSATT = 274,
00094      NUMBEROFOTHERSOLUTIONRESULTSATT = 275,
00095      NUMBEROFOTHERVARIABLERESULTSATT = 276,
00096      NUMBEROFSOLUTIONSATT = 277,
00097      NUMBEROFSOLVEROUTPUTSATT = 278,
00098      NUMBEROFSUBSTATUSESATT = 279,
00099      NUMBEROFTIMESATT = 280,
00100      NUMBEROFVARATT = 281,
00101      NUMBEROFVARIABLESATT = 282,
00102      TARGETOBJECTIVEIDXATT = 283,
00103      IDXATT = 284,
00104      CATEGORYATT = 285,
00105      EMPTYCATEGORYATT = 286,
00106      DESCRIPTIONATT = 287,
00107      EMPTYDESCRIPTIONATT = 288,
00108      NAMEATT = 289,
00109      EMPTYNAMEATT = 290,
00110      TYPEATT = 291,
00111      EMPTYTYPEATT = 292,
00112      UNITATT = 293,
00113      EMPTYUNITATT = 294,
00114      VALUEATT = 295,
00115      EMPTYVALUEATT = 296,
00116      WEIGHTEDOBJECTIVESATT = 297,
00117      EMPTYWEIGHTEDOBJECTIVESATT = 298,
00118      OSRLSTART = 299,
00119      OSRLSTARTEMPTY = 300,
00120      OSRLATTRIBUTETEXT = 301,
00121      OSRLEND = 302,
00122      GENERALSTART = 303,
00123      GENERALEND = 304,
00124      SYSTEMSTART = 305,
00125      SYSTEMEND = 306,
00126      SERVICESTART = 307,
00127      SERVICEEND = 308,
00128      JOBSTART = 309,
00129      JOBEND = 310,
00130      OPTIMIZATIONSTART = 311,
00131      OPTIMIZATIONEND = 312,
00132      ITEMSTART = 313,
00133      ITEMEND = 314,
00134      ITEMSTARTANDEND = 315,
00135      ITEMEMPTY = 316,
00136      ACTUALSTARTTIMESTART = 317,
00137      ACTUALSTARTTIMEEND = 318,
00138      AVAILABLECPUNUMBERSTART = 319,
00139      AVAILABLECPUNUMBEREND = 320,
00140      AVAILABLECPUSPEEDSTART = 321,
00141      AVAILABLECPUSPEEDEND = 322,
00142      AVAILABLEDISKSPACESTART = 323,
00143      AVAILABLEDISKSPACEEND = 324,
00144      AVAILABLEMEMORYSTART = 325,
00145      AVAILABLEMEMORYEND = 326,
00146      BASISSTATUSSTART = 327,
00147      BASISSTATUSEND = 328,
00148      BASSTATUSSTART = 329,
00149      BASSTATUSEND = 330,
00150      CONSTART = 331,
00151      CONEND = 332,
00152      CONSTRAINTSSTART = 333,
00153      CONSTRAINTSEND = 334,
00154      CURRENTJOBCOUNTSTART = 335,
00155      CURRENTJOBCOUNTEND = 336,
00156      CURRENTSTATESTART = 337,
00157      CURRENTSTATEEND = 338,
00158      DUALVALUESSTART = 339,
00159      DUALVALUESEND = 340,
00160      ENDTIMESTART = 341,
00161      ENDTIMEEND = 342,
00162      GENERALSTATUSSTART = 343,
00163      GENERALSTATUSEND = 344,
00164      GENERALSUBSTATUSSTART = 345,
00165      GENERALSUBSTATUSEND = 346,
00166      INSTANCENAMESTART = 347,
00167      INSTANCENAMEEND = 348,
00168      JOBIDSTART = 349,
00169      JOBIDEND = 350,
00170      MESSAGESTART = 351,
00171      MESSAGEEND = 352,
00172      OBJSTART = 353,
00173      OBJEND = 354,
00174      OBJECTIVESSTART = 355,
00175      OBJECTIVESEND = 356,
00176      OPTIMIZATIONSOLUTIONSTATUSSTART = 357,
00177      OPTIMIZATIONSOLUTIONSTATUSEND = 358,
00178      OPTIMIZATIONSOLUTIONSUBSTATUSSTART = 359,
00179      OPTIMIZATIONSOLUTIONSUBSTATUSEND = 360,
00180      OTHERSTART = 361,
00181      OTHEREND = 362,
00182      OTHERRESULTSSTART = 363,
00183      OTHERRESULTSEND = 364,
00184      OTHERSOLUTIONRESULTSTART = 365,
00185      OTHERSOLUTIONRESULTEND = 366,
00186      OTHERSOLUTIONRESULTSSTART = 367,
00187      OTHERSOLUTIONRESULTSEND = 368,
00188      OTHERSOLVEROUTPUTSTART = 369,
00189      OTHERSOLVEROUTPUTEND = 370,
00190      SCHEDULEDSTARTTIMESTART = 371,
00191      SCHEDULEDSTARTTIMEEND = 372,
00192      SERVICENAMESTART = 373,
00193      SERVICENAMEEND = 374,
00194      SERVICEURISTART = 375,
00195      SERVICEURIEND = 376,
00196      SERVICEUTILIZATIONSTART = 377,
00197      SERVICEUTILIZATIONEND = 378,
00198      SOLUTIONSTART = 379,
00199      SOLUTIONEND = 380,
00200      SOLVERINVOKEDSTART = 381,
00201      SOLVERINVOKEDEND = 382,
00202      SOLVEROUTPUTSTART = 383,
00203      SOLVEROUTPUTEND = 384,
00204      STATUSSTART = 385,
00205      STATUSEND = 386,
00206      SUBMITTIMESTART = 387,
00207      SUBMITTIMEEND = 388,
00208      SUBSTATUSSTART = 389,
00209      SUBSTATUSEND = 390,
00210      SYSTEMINFORMATIONSTART = 391,
00211      SYSTEMINFORMATIONEND = 392,
00212      TIMESTART = 393,
00213      TIMEEND = 394,
00214      TIMESERVICESTARTEDSTART = 395,
00215      TIMESERVICESTARTEDEND = 396,
00216      TIMESTAMPSTART = 397,
00217      TIMESTAMPEND = 398,
00218      TIMINGINFORMATIONSTART = 399,
00219      TIMINGINFORMATIONEND = 400,
00220      TOTALJOBSSOFARSTART = 401,
00221      TOTALJOBSSOFAREND = 402,
00222      USEDCPUNUMBERSTART = 403,
00223      USEDCPUNUMBEREND = 404,
00224      USEDCPUSPEEDSTART = 405,
00225      USEDCPUSPEEDEND = 406,
00226      USEDDISKSPACESTART = 407,
00227      USEDDISKSPACEEND = 408,
00228      USEDMEMORYSTART = 409,
00229      USEDMEMORYEND = 410,
00230      VALUESSTART = 411,
00231      VALUESEND = 412,
00232      VALUESSTRINGSTART = 413,
00233      VALUESSTRINGEND = 414,
00234      VARSTART = 415,
00235      VAREND = 416,
00236      VARIABLESSTART = 417,
00237      VARIABLESEND = 418,
00238      DUMMY = 419
00239    };
00240 #endif
00241 /* Tokens.  */
00242 #define ATTRIBUTETEXT 258
00243 #define ELEMENTTEXT 259
00244 #define ITEMTEXT 260
00245 #define INTEGER 261
00246 #define DOUBLE 262
00247 #define QUOTE 263
00248 #define TWOQUOTES 264
00249 #define GREATERTHAN 265
00250 #define ENDOFELEMENT 266
00251 #define NUMBEROFCONATT 267
00252 #define NUMBEROFCONSTRAINTSATT 268
00253 #define NUMBEROFITEMSATT 269
00254 #define NUMBEROFOBJATT 270
00255 #define NUMBEROFOBJECTIVESATT 271
00256 #define NUMBEROFOTHERCONSTRAINTRESULTSATT 272
00257 #define NUMBEROFOTHEROBJECTIVERESULTSATT 273
00258 #define NUMBEROFOTHERRESULTSATT 274
00259 #define NUMBEROFOTHERSOLUTIONRESULTSATT 275
00260 #define NUMBEROFOTHERVARIABLERESULTSATT 276
00261 #define NUMBEROFSOLUTIONSATT 277
00262 #define NUMBEROFSOLVEROUTPUTSATT 278
00263 #define NUMBEROFSUBSTATUSESATT 279
00264 #define NUMBEROFTIMESATT 280
00265 #define NUMBEROFVARATT 281
00266 #define NUMBEROFVARIABLESATT 282
00267 #define TARGETOBJECTIVEIDXATT 283
00268 #define IDXATT 284
00269 #define CATEGORYATT 285
00270 #define EMPTYCATEGORYATT 286
00271 #define DESCRIPTIONATT 287
00272 #define EMPTYDESCRIPTIONATT 288
00273 #define NAMEATT 289
00274 #define EMPTYNAMEATT 290
00275 #define TYPEATT 291
00276 #define EMPTYTYPEATT 292
00277 #define UNITATT 293
00278 #define EMPTYUNITATT 294
00279 #define VALUEATT 295
00280 #define EMPTYVALUEATT 296
00281 #define WEIGHTEDOBJECTIVESATT 297
00282 #define EMPTYWEIGHTEDOBJECTIVESATT 298
00283 #define OSRLSTART 299
00284 #define OSRLSTARTEMPTY 300
00285 #define OSRLATTRIBUTETEXT 301
00286 #define OSRLEND 302
00287 #define GENERALSTART 303
00288 #define GENERALEND 304
00289 #define SYSTEMSTART 305
00290 #define SYSTEMEND 306
00291 #define SERVICESTART 307
00292 #define SERVICEEND 308
00293 #define JOBSTART 309
00294 #define JOBEND 310
00295 #define OPTIMIZATIONSTART 311
00296 #define OPTIMIZATIONEND 312
00297 #define ITEMSTART 313
00298 #define ITEMEND 314
00299 #define ITEMSTARTANDEND 315
00300 #define ITEMEMPTY 316
00301 #define ACTUALSTARTTIMESTART 317
00302 #define ACTUALSTARTTIMEEND 318
00303 #define AVAILABLECPUNUMBERSTART 319
00304 #define AVAILABLECPUNUMBEREND 320
00305 #define AVAILABLECPUSPEEDSTART 321
00306 #define AVAILABLECPUSPEEDEND 322
00307 #define AVAILABLEDISKSPACESTART 323
00308 #define AVAILABLEDISKSPACEEND 324
00309 #define AVAILABLEMEMORYSTART 325
00310 #define AVAILABLEMEMORYEND 326
00311 #define BASISSTATUSSTART 327
00312 #define BASISSTATUSEND 328
00313 #define BASSTATUSSTART 329
00314 #define BASSTATUSEND 330
00315 #define CONSTART 331
00316 #define CONEND 332
00317 #define CONSTRAINTSSTART 333
00318 #define CONSTRAINTSEND 334
00319 #define CURRENTJOBCOUNTSTART 335
00320 #define CURRENTJOBCOUNTEND 336
00321 #define CURRENTSTATESTART 337
00322 #define CURRENTSTATEEND 338
00323 #define DUALVALUESSTART 339
00324 #define DUALVALUESEND 340
00325 #define ENDTIMESTART 341
00326 #define ENDTIMEEND 342
00327 #define GENERALSTATUSSTART 343
00328 #define GENERALSTATUSEND 344
00329 #define GENERALSUBSTATUSSTART 345
00330 #define GENERALSUBSTATUSEND 346
00331 #define INSTANCENAMESTART 347
00332 #define INSTANCENAMEEND 348
00333 #define JOBIDSTART 349
00334 #define JOBIDEND 350
00335 #define MESSAGESTART 351
00336 #define MESSAGEEND 352
00337 #define OBJSTART 353
00338 #define OBJEND 354
00339 #define OBJECTIVESSTART 355
00340 #define OBJECTIVESEND 356
00341 #define OPTIMIZATIONSOLUTIONSTATUSSTART 357
00342 #define OPTIMIZATIONSOLUTIONSTATUSEND 358
00343 #define OPTIMIZATIONSOLUTIONSUBSTATUSSTART 359
00344 #define OPTIMIZATIONSOLUTIONSUBSTATUSEND 360
00345 #define OTHERSTART 361
00346 #define OTHEREND 362
00347 #define OTHERRESULTSSTART 363
00348 #define OTHERRESULTSEND 364
00349 #define OTHERSOLUTIONRESULTSTART 365
00350 #define OTHERSOLUTIONRESULTEND 366
00351 #define OTHERSOLUTIONRESULTSSTART 367
00352 #define OTHERSOLUTIONRESULTSEND 368
00353 #define OTHERSOLVEROUTPUTSTART 369
00354 #define OTHERSOLVEROUTPUTEND 370
00355 #define SCHEDULEDSTARTTIMESTART 371
00356 #define SCHEDULEDSTARTTIMEEND 372
00357 #define SERVICENAMESTART 373
00358 #define SERVICENAMEEND 374
00359 #define SERVICEURISTART 375
00360 #define SERVICEURIEND 376
00361 #define SERVICEUTILIZATIONSTART 377
00362 #define SERVICEUTILIZATIONEND 378
00363 #define SOLUTIONSTART 379
00364 #define SOLUTIONEND 380
00365 #define SOLVERINVOKEDSTART 381
00366 #define SOLVERINVOKEDEND 382
00367 #define SOLVEROUTPUTSTART 383
00368 #define SOLVEROUTPUTEND 384
00369 #define STATUSSTART 385
00370 #define STATUSEND 386
00371 #define SUBMITTIMESTART 387
00372 #define SUBMITTIMEEND 388
00373 #define SUBSTATUSSTART 389
00374 #define SUBSTATUSEND 390
00375 #define SYSTEMINFORMATIONSTART 391
00376 #define SYSTEMINFORMATIONEND 392
00377 #define TIMESTART 393
00378 #define TIMEEND 394
00379 #define TIMESERVICESTARTEDSTART 395
00380 #define TIMESERVICESTARTEDEND 396
00381 #define TIMESTAMPSTART 397
00382 #define TIMESTAMPEND 398
00383 #define TIMINGINFORMATIONSTART 399
00384 #define TIMINGINFORMATIONEND 400
00385 #define TOTALJOBSSOFARSTART 401
00386 #define TOTALJOBSSOFAREND 402
00387 #define USEDCPUNUMBERSTART 403
00388 #define USEDCPUNUMBEREND 404
00389 #define USEDCPUSPEEDSTART 405
00390 #define USEDCPUSPEEDEND 406
00391 #define USEDDISKSPACESTART 407
00392 #define USEDDISKSPACEEND 408
00393 #define USEDMEMORYSTART 409
00394 #define USEDMEMORYEND 410
00395 #define VALUESSTART 411
00396 #define VALUESEND 412
00397 #define VALUESSTRINGSTART 413
00398 #define VALUESSTRINGEND 414
00399 #define VARSTART 415
00400 #define VAREND 416
00401 #define VARIABLESSTART 417
00402 #define VARIABLESEND 418
00403 #define DUMMY 419
00404 
00405 
00406 
00407 
00408 /* Copy the first part of user declarations.  */
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 "OSResult.h"
00419 #include "OSrLParserData.h"
00420 #include <iostream>
00421 #include <sstream> 
00422 #include <stdio.h>
00423 
00424 //#define DEBUG
00425 
00426 #ifdef DEBUG
00427 #define YYDEBUG 1
00428 #endif
00429 
00430 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00431 YY_BUFFER_STATE osrl_scan_string (const char *yy_str , void* yyscanner  );
00432 int osrllex_init(void** ptr_yy_globals);
00433 int osrllex_destroy (void* yyscanner );
00434 int osrlget_lineno( void* yyscanner);
00435 char *osrlget_text (void* yyscanner );
00436 void osrlset_lineno (int line_number , void* yyscanner );
00437 void osrlset_extra (OSrLParserData* parserData , void* yyscanner );
00438 void  yygetOSResult(const char *ch, OSResult* m_osresult, OSrLParserData *m_parserData ) throw(ErrorClass);
00439 void osrl_empty_vectors( OSrLParserData* parserData);
00440 
00441 
00442 
00443 
00444 /* Enabling traces.  */
00445 #ifndef YYDEBUG
00446 # define YYDEBUG 0
00447 #endif
00448 
00449 /* Enabling verbose error messages.  */
00450 #ifdef YYERROR_VERBOSE
00451 # undef YYERROR_VERBOSE
00452 # define YYERROR_VERBOSE 1
00453 #else
00454 # define YYERROR_VERBOSE 0
00455 #endif
00456 
00457 /* Enabling the token table.  */
00458 #ifndef YYTOKEN_TABLE
00459 # define YYTOKEN_TABLE 0
00460 #endif
00461 
00462 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
00463 typedef union YYSTYPE
00464 
00465 {
00466         double dval;
00467         int ival;
00468         char* sval;
00469 }
00470 /* Line 193 of yacc.c.  */
00471 
00472         YYSTYPE;
00473 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
00474 # define YYSTYPE_IS_DECLARED 1
00475 # define YYSTYPE_IS_TRIVIAL 1
00476 #endif
00477 
00478 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
00479 typedef struct YYLTYPE
00480 {
00481   int first_line;
00482   int first_column;
00483   int last_line;
00484   int last_column;
00485 } YYLTYPE;
00486 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
00487 # define YYLTYPE_IS_DECLARED 1
00488 # define YYLTYPE_IS_TRIVIAL 1
00489 #endif
00490 
00491 
00492 /* Copy the second part of user declarations.  */
00493 
00494 
00495 
00496 void osrlerror(YYLTYPE* type, OSResult *osresult,  OSrLParserData *parserData ,const char* errormsg );
00497 int osrllex(YYSTYPE* lvalp,  YYLTYPE* llocp, void* scanner);
00498  
00499 #define scanner parserData->scanner
00500 
00501 
00502 /* Line 216 of yacc.c.  */
00503 
00504 
00505 #ifdef short
00506 # undef short
00507 #endif
00508 
00509 #ifdef YYTYPE_UINT8
00510 typedef YYTYPE_UINT8 yytype_uint8;
00511 #else
00512 typedef unsigned char yytype_uint8;
00513 #endif
00514 
00515 #ifdef YYTYPE_INT8
00516 typedef YYTYPE_INT8 yytype_int8;
00517 #elif (defined __STDC__ || defined __C99__FUNC__ \
00518      || defined __cplusplus || defined _MSC_VER)
00519 typedef signed char yytype_int8;
00520 #else
00521 typedef short int yytype_int8;
00522 #endif
00523 
00524 #ifdef YYTYPE_UINT16
00525 typedef YYTYPE_UINT16 yytype_uint16;
00526 #else
00527 typedef unsigned short int yytype_uint16;
00528 #endif
00529 
00530 #ifdef YYTYPE_INT16
00531 typedef YYTYPE_INT16 yytype_int16;
00532 #else
00533 typedef short int yytype_int16;
00534 #endif
00535 
00536 #ifndef YYSIZE_T
00537 # ifdef __SIZE_TYPE__
00538 #  define YYSIZE_T __SIZE_TYPE__
00539 # elif defined size_t
00540 #  define YYSIZE_T size_t
00541 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
00542      || defined __cplusplus || defined _MSC_VER)
00543 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
00544 #  define YYSIZE_T size_t
00545 # else
00546 #  define YYSIZE_T unsigned int
00547 # endif
00548 #endif
00549 
00550 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
00551 
00552 #ifndef YY_
00553 # if defined YYENABLE_NLS && YYENABLE_NLS
00554 #  if ENABLE_NLS
00555 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
00556 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
00557 #  endif
00558 # endif
00559 # ifndef YY_
00560 #  define YY_(msgid) msgid
00561 # endif
00562 #endif
00563 
00564 /* Suppress unused-variable warnings by "using" E.  */
00565 #if ! defined lint || defined __GNUC__
00566 # define YYUSE(e) ((void) (e))
00567 #else
00568 # define YYUSE(e) /* empty */
00569 #endif
00570 
00571 /* Identity function, used to suppress warnings about constant conditions.  */
00572 #ifndef lint
00573 # define YYID(n) (n)
00574 #else
00575 #if (defined __STDC__ || defined __C99__FUNC__ \
00576      || defined __cplusplus || defined _MSC_VER)
00577 static int
00578 YYID (int i)
00579 #else
00580 static int
00581 YYID (i)
00582     int i;
00583 #endif
00584 {
00585   return i;
00586 }
00587 #endif
00588 
00589 #if ! defined yyoverflow || YYERROR_VERBOSE
00590 
00591 /* The parser invokes alloca or malloc; define the necessary symbols.  */
00592 
00593 # ifdef YYSTACK_USE_ALLOCA
00594 #  if YYSTACK_USE_ALLOCA
00595 #   ifdef __GNUC__
00596 #    define YYSTACK_ALLOC __builtin_alloca
00597 #   elif defined __BUILTIN_VA_ARG_INCR
00598 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
00599 #   elif defined _AIX
00600 #    define YYSTACK_ALLOC __alloca
00601 #   elif defined _MSC_VER
00602 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
00603 #    define alloca _alloca
00604 #   else
00605 #    define YYSTACK_ALLOC alloca
00606 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00607      || defined __cplusplus || defined _MSC_VER)
00608 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
00609 #     ifndef _STDLIB_H
00610 #      define _STDLIB_H 1
00611 #     endif
00612 #    endif
00613 #   endif
00614 #  endif
00615 # endif
00616 
00617 # ifdef YYSTACK_ALLOC
00618    /* Pacify GCC's `empty if-body' warning.  */
00619 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
00620 #  ifndef YYSTACK_ALLOC_MAXIMUM
00621     /* The OS might guarantee only one guard page at the bottom of the stack,
00622        and a page size can be as small as 4096 bytes.  So we cannot safely
00623        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
00624        to allow for a few compiler-allocated temporary stack slots.  */
00625 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
00626 #  endif
00627 # else
00628 #  define YYSTACK_ALLOC YYMALLOC
00629 #  define YYSTACK_FREE YYFREE
00630 #  ifndef YYSTACK_ALLOC_MAXIMUM
00631 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
00632 #  endif
00633 #  if (defined __cplusplus && ! defined _STDLIB_H \
00634        && ! ((defined YYMALLOC || defined malloc) \
00635              && (defined YYFREE || defined free)))
00636 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
00637 #   ifndef _STDLIB_H
00638 #    define _STDLIB_H 1
00639 #   endif
00640 #  endif
00641 #  ifndef YYMALLOC
00642 #   define YYMALLOC malloc
00643 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00644      || defined __cplusplus || defined _MSC_VER)
00645 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
00646 #   endif
00647 #  endif
00648 #  ifndef YYFREE
00649 #   define YYFREE free
00650 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00651      || defined __cplusplus || defined _MSC_VER)
00652 void free (void *); /* INFRINGES ON USER NAME SPACE */
00653 #   endif
00654 #  endif
00655 # endif
00656 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
00657 
00658 
00659 #if (! defined yyoverflow \
00660      && (! defined __cplusplus \
00661          || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
00662              && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
00663 
00664 /* A type that is properly aligned for any stack member.  */
00665 union yyalloc
00666 {
00667   yytype_int16 yyss;
00668   YYSTYPE yyvs;
00669     YYLTYPE yyls;
00670 };
00671 
00672 /* The size of the maximum gap between one aligned stack and the next.  */
00673 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
00674 
00675 /* The size of an array large to enough to hold all stacks, each with
00676    N elements.  */
00677 # define YYSTACK_BYTES(N) \
00678      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
00679       + 2 * YYSTACK_GAP_MAXIMUM)
00680 
00681 /* Copy COUNT objects from FROM to TO.  The source and destination do
00682    not overlap.  */
00683 # ifndef YYCOPY
00684 #  if defined __GNUC__ && 1 < __GNUC__
00685 #   define YYCOPY(To, From, Count) \
00686       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00687 #  else
00688 #   define YYCOPY(To, From, Count)              \
00689       do                                        \
00690         {                                       \
00691           YYSIZE_T yyi;                         \
00692           for (yyi = 0; yyi < (Count); yyi++)   \
00693             (To)[yyi] = (From)[yyi];            \
00694         }                                       \
00695       while (YYID (0))
00696 #  endif
00697 # endif
00698 
00699 /* Relocate STACK from its old location to the new one.  The
00700    local variables YYSIZE and YYSTACKSIZE give the old and new number of
00701    elements in the stack, and YYPTR gives the new location of the
00702    stack.  Advance YYPTR to a properly aligned location for the next
00703    stack.  */
00704 # define YYSTACK_RELOCATE(Stack)                                        \
00705     do                                                                  \
00706       {                                                                 \
00707         YYSIZE_T yynewbytes;                                            \
00708         YYCOPY (&yyptr->Stack, Stack, yysize);                          \
00709         Stack = &yyptr->Stack;                                          \
00710         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
00711         yyptr += yynewbytes / sizeof (*yyptr);                          \
00712       }                                                                 \
00713     while (YYID (0))
00714 
00715 #endif
00716 
00717 /* YYFINAL -- State number of the termination state.  */
00718 #define YYFINAL  4
00719 /* YYLAST -- Last index in YYTABLE.  */
00720 #define YYLAST   982
00721 
00722 /* YYNTOKENS -- Number of terminals.  */
00723 #define YYNTOKENS  169
00724 /* YYNNTS -- Number of nonterminals.  */
00725 #define YYNNTS  547
00726 /* YYNRULES -- Number of rules.  */
00727 #define YYNRULES  813
00728 /* YYNRULES -- Number of states.  */
00729 #define YYNSTATES  1130
00730 
00731 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
00732 #define YYUNDEFTOK  2
00733 #define YYMAXUTOK   419
00734 
00735 #define YYTRANSLATE(YYX)                                                \
00736   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
00737 
00738 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
00739 static const yytype_uint8 yytranslate[] =
00740 {
00741        0,     2,     2,     2,     2,     2,     2,     2,     2,   166,
00742      168,     2,     2,   167,     2,     2,     2,     2,     2,     2,
00743        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00744        2,     2,   165,     2,     2,     2,     2,     2,     2,     2,
00745        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00746        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00747        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00748        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00749        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00750        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00751        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00752        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00753        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00754        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00755        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00756        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00757        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00758        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00759        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00760        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00761        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00762        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00763        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00764        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00765        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00766        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
00767        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
00768       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
00769       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
00770       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
00771       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
00772       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
00773       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
00774       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
00775       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
00776       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
00777      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
00778      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
00779      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
00780      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
00781      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
00782      155,   156,   157,   158,   159,   160,   161,   162,   163,   164
00783 };
00784 
00785 #if YYDEBUG
00786 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
00787    YYRHS.  */
00788 static const yytype_uint16 yyprhs[] =
00789 {
00790        0,     0,     3,     7,     9,    10,    12,    16,    22,    23,
00791       26,    28,    30,    32,    35,    37,    41,    43,    45,    48,
00792       50,    52,    54,    56,    58,    60,    62,    64,    66,    70,
00793       72,    74,    76,    79,    81,    83,    85,    87,    89,    92,
00794       94,    98,   100,   102,   105,   109,   111,   113,   114,   117,
00795      119,   121,   124,   126,   129,   131,   133,   135,   138,   140,
00796      144,   146,   149,   151,   153,   155,   158,   160,   164,   166,
00797      169,   171,   173,   175,   178,   180,   184,   186,   189,   191,
00798      193,   195,   198,   200,   204,   206,   209,   211,   213,   215,
00799      218,   220,   224,   226,   229,   231,   233,   235,   238,   240,
00800      244,   246,   249,   251,   253,   255,   258,   260,   264,   266,
00801      270,   272,   274,   276,   278,   281,   283,   287,   289,   291,
00802      294,   298,   300,   302,   303,   306,   308,   310,   312,   315,
00803      317,   318,   321,   323,   325,   327,   330,   332,   336,   338,
00804      340,   343,   345,   347,   349,   351,   353,   355,   358,   360,
00805      362,   364,   367,   369,   373,   375,   379,   381,   383,   384,
00806      387,   389,   391,   395,   397,   401,   403,   405,   406,   409,
00807      411,   413,   417,   419,   423,   425,   427,   428,   431,   433,
00808      435,   439,   441,   445,   447,   448,   450,   454,   456,   460,
00809      462,   464,   466,   468,   471,   473,   477,   479,   481,   484,
00810      488,   490,   492,   493,   496,   498,   500,   502,   505,   507,
00811      508,   511,   516,   517,   520,   522,   524,   526,   528,   530,
00812      532,   535,   537,   539,   541,   544,   546,   550,   552,   555,
00813      557,   559,   561,   564,   566,   570,   572,   575,   577,   579,
00814      581,   584,   586,   590,   592,   595,   597,   599,   601,   604,
00815      606,   610,   612,   615,   617,   619,   621,   624,   626,   630,
00816      632,   636,   638,   640,   642,   644,   647,   649,   653,   655,
00817      657,   660,   664,   666,   668,   669,   672,   674,   676,   678,
00818      681,   683,   684,   687,   692,   693,   696,   698,   700,   702,
00819      704,   706,   708,   710,   712,   714,   716,   718,   721,   723,
00820      725,   727,   730,   732,   736,   738,   741,   743,   745,   747,
00821      750,   752,   756,   758,   761,   763,   765,   767,   770,   772,
00822      776,   778,   781,   783,   785,   787,   790,   792,   796,   798,
00823      801,   803,   805,   807,   810,   812,   816,   818,   822,   824,
00824      826,   828,   830,   833,   835,   839,   841,   843,   846,   850,
00825      852,   853,   856,   858,   860,   862,   864,   866,   868,   871,
00826      873,   877,   879,   881,   883,   887,   889,   891,   892,   895,
00827      897,   899,   903,   905,   909,   911,   913,   914,   917,   919,
00828      921,   925,   927,   931,   933,   935,   936,   939,   941,   943,
00829      947,   949,   953,   955,   956,   958,   962,   964,   968,   970,
00830      972,   974,   976,   979,   981,   985,   987,   989,   992,   996,
00831      998,  1000,  1001,  1004,  1006,  1008,  1010,  1013,  1015,  1016,
00832     1020,  1022,  1024,  1025,  1028,  1030,  1032,  1034,  1036,  1038,
00833     1040,  1043,  1045,  1049,  1052,  1054,  1057,  1061,  1063,  1065,
00834     1066,  1069,  1071,  1073,  1078,  1082,  1091,  1095,  1097,  1099,
00835     1101,  1104,  1106,  1108,  1110,  1112,  1114,  1117,  1119,  1123,
00836     1125,  1127,  1130,  1134,  1136,  1138,  1139,  1142,  1144,  1146,
00837     1149,  1151,  1152,  1155,  1157,  1159,  1161,  1164,  1166,  1170,
00838     1172,  1173,  1177,  1179,  1180,  1182,  1184,  1186,  1188,  1192,
00839     1197,  1198,  1202,  1204,  1206,  1208,  1210,  1213,  1215,  1219,
00840     1221,  1223,  1226,  1230,  1232,  1237,  1241,  1243,  1245,  1246,
00841     1250,  1252,  1254,  1256,  1258,  1261,  1263,  1267,  1269,  1271,
00842     1274,  1278,  1280,  1285,  1287,  1289,  1292,  1294,  1298,  1300,
00843     1301,  1305,  1307,  1309,  1311,  1313,  1316,  1318,  1322,  1324,
00844     1326,  1329,  1333,  1335,  1340,  1344,  1345,  1348,  1352,  1354,
00845     1356,  1357,  1360,  1362,  1364,  1366,  1368,  1370,  1372,  1375,
00846     1377,  1381,  1383,  1385,  1388,  1392,  1394,  1399,  1401,  1403,
00847     1406,  1408,  1412,  1414,  1415,  1419,  1421,  1422,  1424,  1426,
00848     1428,  1430,  1434,  1437,  1438,  1442,  1444,  1446,  1448,  1450,
00849     1453,  1455,  1459,  1461,  1463,  1466,  1470,  1472,  1473,  1478,
00850     1482,  1484,  1486,  1487,  1490,  1494,  1496,  1498,  1499,  1502,
00851     1504,  1506,  1508,  1510,  1512,  1514,  1517,  1519,  1523,  1525,
00852     1527,  1530,  1534,  1536,  1541,  1543,  1545,  1548,  1550,  1554,
00853     1556,  1557,  1561,  1563,  1564,  1566,  1568,  1570,  1572,  1576,
00854     1579,  1580,  1584,  1586,  1588,  1590,  1592,  1595,  1597,  1601,
00855     1603,  1605,  1608,  1614,  1616,  1621,  1623,  1625,  1626,  1629,
00856     1633,  1635,  1637,  1638,  1641,  1643,  1645,  1647,  1649,  1651,
00857     1653,  1656,  1658,  1662,  1664,  1666,  1669,  1673,  1675,  1680,
00858     1682,  1684,  1687,  1689,  1693,  1695,  1696,  1700,  1702,  1704,
00859     1706,  1708,  1711,  1713,  1717,  1719,  1721,  1724,  1728,  1730,
00860     1732,  1733,  1736,  1738,  1740,  1742,  1744,  1746,  1748,  1751,
00861     1753,  1757,  1759,  1761,  1764,  1766,  1768,  1770,  1772,  1774,
00862     1778,  1780,  1781,  1785,  1787,  1789,  1791,  1793,  1796,  1798,
00863     1802,  1804,  1806,  1809,  1813,  1815,  1817,  1818,  1821,  1823,
00864     1825,  1827,  1829,  1831,  1833,  1836,  1838,  1842,  1844,  1846,
00865     1849,  1851,  1853,  1855,  1857,  1859,  1863,  1865,  1867,  1869,
00866     1871,  1875,  1877,  1879,  1881,  1883,  1887,  1889,  1891,  1893,
00867     1895,  1899,  1901,  1903,  1905,  1907,  1911,  1913,  1915,  1917,
00868     1919,  1923,  1925,  1927,  1929,  1931,  1935,  1940,  1945,  1950,
00869     1955,  1960,  1965,  1970,  1975,  1980,  1985,  1990,  1995,  2000,
00870     2005,  2010,  2015,  2017,  2019,  2021,  2023,  2025,  2028,  2029,
00871     2032,  2034,  2036,  2038
00872 };
00873 
00874 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
00875 static const yytype_int16 yyrhs[] =
00876 {
00877      170,     0,    -1,   171,   172,   173,    -1,    44,    -1,    -1,
00878       46,    -1,    10,   174,    47,    -1,   175,   255,   309,   356,
00879      446,    -1,    -1,   176,   177,    -1,    48,    -1,   178,    -1,
00880      179,    -1,    10,    49,    -1,    11,    -1,    10,   180,    49,
00881       -1,   181,    -1,   182,    -1,   181,   182,    -1,   183,    -1,
00882      199,    -1,   205,    -1,   211,    -1,   217,    -1,   223,    -1,
00883      229,    -1,   235,    -1,   241,    -1,   184,   185,   188,    -1,
00884       88,    -1,   186,    -1,   187,    -1,   186,   187,    -1,   683,
00885       -1,   675,    -1,   710,    -1,   189,    -1,   190,    -1,    10,
00886       89,    -1,    11,    -1,    10,   191,    89,    -1,   192,    -1,
00887      193,    -1,   192,   193,    -1,   194,   195,   198,    -1,   134,
00888       -1,   196,    -1,    -1,   196,   197,    -1,   679,    -1,   675,
00889       -1,    10,   135,    -1,    11,    -1,   200,   201,    -1,    96,
00890       -1,   202,    -1,   203,    -1,    10,    97,    -1,    11,    -1,
00891       10,   204,    97,    -1,     4,    -1,   206,   207,    -1,   120,
00892       -1,   208,    -1,   209,    -1,    10,   121,    -1,    11,    -1,
00893       10,   210,   121,    -1,     4,    -1,   212,   213,    -1,   118,
00894       -1,   214,    -1,   215,    -1,    10,   119,    -1,    11,    -1,
00895       10,   216,   119,    -1,     4,    -1,   218,   219,    -1,    92,
00896       -1,   220,    -1,   221,    -1,    10,    93,    -1,    11,    -1,
00897       10,   222,    93,    -1,     4,    -1,   224,   225,    -1,    94,
00898       -1,   226,    -1,   227,    -1,    10,    95,    -1,    11,    -1,
00899       10,   228,    95,    -1,     4,    -1,   230,   231,    -1,   126,
00900       -1,   232,    -1,   233,    -1,    10,   127,    -1,    11,    -1,
00901       10,   234,   127,    -1,     4,    -1,   236,   237,    -1,   142,
00902       -1,   238,    -1,   239,    -1,    10,   143,    -1,    11,    -1,
00903       10,   240,   143,    -1,     4,    -1,   242,   243,   244,    -1,
00904      108,    -1,   695,    -1,   245,    -1,   246,    -1,    10,   109,
00905       -1,    11,    -1,    10,   247,   109,    -1,   248,    -1,   249,
00906       -1,   248,   249,    -1,   250,   251,   254,    -1,   106,    -1,
00907      252,    -1,    -1,   252,   253,    -1,   679,    -1,   691,    -1,
00908      675,    -1,    10,   107,    -1,    11,    -1,    -1,   256,   257,
00909       -1,    50,    -1,   258,    -1,   259,    -1,    10,    51,    -1,
00910       11,    -1,    10,   260,    51,    -1,   261,    -1,   262,    -1,
00911      261,   262,    -1,   263,    -1,   269,    -1,   276,    -1,   283,
00912       -1,   290,    -1,   295,    -1,   264,   265,    -1,   136,    -1,
00913      266,    -1,   267,    -1,    10,   137,    -1,    11,    -1,    10,
00914      268,   137,    -1,     4,    -1,   270,   271,   274,    -1,    68,
00915       -1,   272,    -1,    -1,   272,   273,    -1,   687,    -1,   675,
00916       -1,    10,   275,    69,    -1,   711,    -1,   277,   278,   281,
00917       -1,    70,    -1,   279,    -1,    -1,   279,   280,    -1,   687,
00918       -1,   675,    -1,    10,   282,    71,    -1,   711,    -1,   284,
00919      285,   288,    -1,    66,    -1,   286,    -1,    -1,   286,   287,
00920       -1,   687,    -1,   675,    -1,    10,   289,    67,    -1,   711,
00921       -1,   291,   292,   293,    -1,    64,    -1,    -1,   675,    -1,
00922       10,   294,    65,    -1,     6,    -1,   296,   297,   298,    -1,
00923      108,    -1,   695,    -1,   299,    -1,   300,    -1,    10,   109,
00924       -1,    11,    -1,    10,   301,   109,    -1,   302,    -1,   303,
00925       -1,   302,   303,    -1,   304,   305,   308,    -1,   106,    -1,
00926      306,    -1,    -1,   306,   307,    -1,   679,    -1,   691,    -1,
00927      675,    -1,    10,   107,    -1,    11,    -1,    -1,    52,    11,
00928       -1,    52,    10,   310,    53,    -1,    -1,   310,   311,    -1,
00929      312,    -1,   318,    -1,   324,    -1,   330,    -1,   336,    -1,
00930      342,    -1,   313,   314,    -1,    82,    -1,   315,    -1,   316,
00931       -1,    10,    83,    -1,    11,    -1,    10,   317,    83,    -1,
00932        4,    -1,   319,   320,    -1,    80,    -1,   321,    -1,   322,
00933       -1,    10,    81,    -1,    11,    -1,    10,   323,    81,    -1,
00934        6,    -1,   325,   326,    -1,   146,    -1,   327,    -1,   328,
00935       -1,    10,   147,    -1,    11,    -1,    10,   329,   147,    -1,
00936        6,    -1,   331,   332,    -1,   140,    -1,   333,    -1,   334,
00937       -1,    10,   141,    -1,    11,    -1,    10,   335,   141,    -1,
00938        4,    -1,   337,   338,    -1,   122,    -1,   339,    -1,   340,
00939       -1,    10,   123,    -1,    11,    -1,    10,   341,   123,    -1,
00940      711,    -1,   343,   344,   345,    -1,   108,    -1,   695,    -1,
00941      346,    -1,   347,    -1,    10,   109,    -1,    11,    -1,    10,
00942      348,   109,    -1,   349,    -1,   350,    -1,   349,   350,    -1,
00943      351,   352,   355,    -1,   106,    -1,   353,    -1,    -1,   353,
00944      354,    -1,   679,    -1,   691,    -1,   675,    -1,    10,   107,
00945       -1,    11,    -1,    -1,    54,    11,    -1,    54,    10,   357,
00946       55,    -1,    -1,   357,   358,    -1,   359,    -1,   365,    -1,
00947      371,    -1,   377,    -1,   383,    -1,   389,    -1,   406,    -1,
00948      413,    -1,   420,    -1,   427,    -1,   432,    -1,   360,   361,
00949       -1,   130,    -1,   362,    -1,   363,    -1,    10,   131,    -1,
00950       11,    -1,    10,   364,   131,    -1,     4,    -1,   366,   367,
00951       -1,   132,    -1,   368,    -1,   369,    -1,    10,   133,    -1,
00952       11,    -1,    10,   370,   133,    -1,     4,    -1,   372,   373,
00953       -1,   116,    -1,   374,    -1,   375,    -1,    10,   117,    -1,
00954       11,    -1,    10,   376,   117,    -1,     4,    -1,   378,   379,
00955       -1,    62,    -1,   380,    -1,   381,    -1,    10,    63,    -1,
00956       11,    -1,    10,   382,    63,    -1,     4,    -1,   384,   385,
00957       -1,    86,    -1,   386,    -1,   387,    -1,    10,    87,    -1,
00958       11,    -1,    10,   388,    87,    -1,     4,    -1,   390,   391,
00959      392,    -1,   144,    -1,   707,    -1,   393,    -1,   394,    -1,
00960       10,   145,    -1,    11,    -1,    10,   395,   145,    -1,   396,
00961       -1,   397,    -1,   396,   397,    -1,   398,   399,   401,    -1,
00962      138,    -1,    -1,   399,   400,    -1,   687,    -1,   683,    -1,
00963      671,    -1,   675,    -1,   402,    -1,   403,    -1,    10,   139,
00964       -1,    11,    -1,    10,   404,   139,    -1,   405,    -1,     7,
00965       -1,     6,    -1,   407,   408,   411,    -1,   152,    -1,   409,
00966       -1,    -1,   409,   410,    -1,   687,    -1,   675,    -1,    10,
00967      412,   153,    -1,   711,    -1,   414,   415,   418,    -1,   154,
00968       -1,   416,    -1,    -1,   416,   417,    -1,   687,    -1,   675,
00969       -1,    10,   419,   155,    -1,   711,    -1,   421,   422,   425,
00970       -1,   150,    -1,   423,    -1,    -1,   423,   424,    -1,   687,
00971       -1,   675,    -1,    10,   426,   151,    -1,   711,    -1,   428,
00972      429,   430,    -1,   148,    -1,    -1,   675,    -1,    10,   431,
00973      149,    -1,     6,    -1,   433,   434,   435,    -1,   108,    -1,
00974      695,    -1,   436,    -1,   437,    -1,    10,   109,    -1,    11,
00975       -1,    10,   438,   109,    -1,   439,    -1,   440,    -1,   439,
00976      440,    -1,   441,   442,   445,    -1,   106,    -1,   443,    -1,
00977       -1,   443,   444,    -1,   679,    -1,   691,    -1,   675,    -1,
00978       10,   107,    -1,    11,    -1,    -1,   447,   448,   451,    -1,
00979       56,    -1,   449,    -1,    -1,   449,   450,    -1,   696,    -1,
00980      697,    -1,   698,    -1,   699,    -1,   452,    -1,   453,    -1,
00981       10,    57,    -1,    11,    -1,    10,   454,    57,    -1,   455,
00982      649,    -1,   456,    -1,   455,   456,    -1,   457,   458,   463,
00983       -1,   124,    -1,   459,    -1,    -1,   459,   460,    -1,   461,
00984       -1,   462,    -1,    28,   713,     6,   713,    -1,    42,     3,
00985      713,    -1,    10,   464,   480,   486,   551,   589,   626,   125,
00986       -1,   465,   466,   469,    -1,   130,    -1,   467,    -1,   468,
00987       -1,   467,   468,    -1,   683,    -1,   675,    -1,   710,    -1,
00988      470,    -1,   471,    -1,    10,   131,    -1,    11,    -1,    10,
00989      472,   131,    -1,   473,    -1,   474,    -1,   473,   474,    -1,
00990      475,   476,   479,    -1,   134,    -1,   477,    -1,    -1,   477,
00991      478,    -1,   683,    -1,   675,    -1,    10,   135,    -1,    11,
00992       -1,    -1,   481,   482,    -1,    96,    -1,   483,    -1,   484,
00993       -1,    10,    97,    -1,    11,    -1,    10,   485,    97,    -1,
00994        4,    -1,    -1,   487,   488,   489,    -1,   162,    -1,    -1,
00995      700,    -1,   490,    -1,   491,    -1,    11,    -1,    10,   492,
00996      163,    -1,   493,   506,   521,   533,    -1,    -1,   494,   495,
00997      496,    -1,   156,    -1,   704,    -1,   497,    -1,   498,    -1,
00998       10,   157,    -1,    11,    -1,    10,   499,   157,    -1,   500,
00999       -1,   501,    -1,   500,   501,    -1,   502,   503,   504,    -1,
01000      160,    -1,    29,   713,     6,   713,    -1,    10,   505,   161,
01001       -1,     6,    -1,     7,    -1,    -1,   507,   508,   509,    -1,
01002      158,    -1,   704,    -1,   510,    -1,   511,    -1,    10,   159,
01003       -1,    11,    -1,    10,   512,   159,    -1,   513,    -1,   514,
01004       -1,   513,   514,    -1,   515,   516,   517,    -1,   160,    -1,
01005       29,   713,     6,   713,    -1,   518,    -1,   519,    -1,    10,
01006      161,    -1,    11,    -1,    10,   520,   161,    -1,     4,    -1,
01007       -1,   522,   523,   524,    -1,    72,    -1,   704,    -1,   525,
01008       -1,   526,    -1,    10,    73,    -1,    11,    -1,    10,   527,
01009       73,    -1,   528,    -1,   529,    -1,   528,   529,    -1,   530,
01010      531,   532,    -1,   160,    -1,    29,   713,     6,   713,    -1,
01011       10,     4,   161,    -1,    -1,   533,   534,    -1,   535,   536,
01012      539,    -1,   106,    -1,   537,    -1,    -1,   537,   538,    -1,
01013      704,    -1,   691,    -1,   679,    -1,   675,    -1,   540,    -1,
01014      541,    -1,    10,   107,    -1,    11,    -1,    10,   542,   107,
01015       -1,   543,    -1,   544,    -1,   543,   544,    -1,   545,   546,
01016      547,    -1,   160,    -1,    29,   713,     6,   713,    -1,   548,
01017       -1,   549,    -1,    10,   161,    -1,    11,    -1,    10,   550,
01018      161,    -1,   712,    -1,    -1,   552,   553,   554,    -1,   100,
01019       -1,    -1,   701,    -1,   555,    -1,   556,    -1,    11,    -1,
01020       10,   557,   101,    -1,   558,   571,    -1,    -1,   559,   560,
01021      561,    -1,   156,    -1,   705,    -1,   562,    -1,   563,    -1,
01022       10,   157,    -1,    11,    -1,    10,   564,   157,    -1,   565,
01023       -1,   566,    -1,   565,   566,    -1,   567,   568,   569,    -1,
01024       98,    -1,    -1,    29,   713,     6,   713,    -1,    10,   570,
01025       99,    -1,     6,    -1,     7,    -1,    -1,   571,   572,    -1,
01026      573,   574,   577,    -1,   106,    -1,   575,    -1,    -1,   575,
01027      576,    -1,   705,    -1,   691,    -1,   679,    -1,   675,    -1,
01028      578,    -1,   579,    -1,    10,   107,    -1,    11,    -1,    10,
01029      580,   107,    -1,   581,    -1,   582,    -1,   581,   582,    -1,
01030      583,   584,   585,    -1,    98,    -1,    29,   713,     6,   713,
01031       -1,   586,    -1,   587,    -1,    10,    99,    -1,    11,    -1,
01032       10,   588,    99,    -1,   712,    -1,    -1,   590,   591,   592,
01033       -1,    78,    -1,    -1,   702,    -1,   593,    -1,   594,    -1,
01034       11,    -1,    10,   595,    79,    -1,   596,   608,    -1,    -1,
01035      597,   598,   599,    -1,    84,    -1,   706,    -1,   600,    -1,
01036      601,    -1,    10,    85,    -1,    11,    -1,    10,   602,    85,
01037       -1,   603,    -1,   604,    -1,   603,   604,    -1,   605,   606,
01038       10,   607,    77,    -1,    76,    -1,    29,   713,     6,   713,
01039       -1,     6,    -1,     7,    -1,    -1,   608,   609,    -1,   610,
01040      611,   614,    -1,   106,    -1,   612,    -1,    -1,   612,   613,
01041       -1,   706,    -1,   691,    -1,   679,    -1,   675,    -1,   615,
01042       -1,   616,    -1,    10,   107,    -1,    11,    -1,    10,   617,
01043      107,    -1,   618,    -1,   619,    -1,   618,   619,    -1,   620,
01044      621,   622,    -1,    76,    -1,    29,   713,     6,   713,    -1,
01045      623,    -1,   624,    -1,    10,    77,    -1,    11,    -1,    10,
01046      625,    77,    -1,   712,    -1,    -1,   627,   628,   629,    -1,
01047      112,    -1,   703,    -1,   630,    -1,   631,    -1,    10,   113,
01048       -1,    11,    -1,    10,   632,   113,    -1,   633,    -1,   634,
01049       -1,   633,   634,    -1,   635,   636,   639,    -1,   110,    -1,
01050      637,    -1,    -1,   637,   638,    -1,   679,    -1,   671,    -1,
01051      675,    -1,   708,    -1,   640,    -1,   641,    -1,    10,   111,
01052       -1,    11,    -1,    10,   642,   111,    -1,   643,    -1,   644,
01053       -1,   643,   644,    -1,   645,    -1,   646,    -1,   647,    -1,
01054       60,    -1,    61,    -1,    58,   648,    59,    -1,     5,    -1,
01055       -1,   650,   651,   652,    -1,   114,    -1,   709,    -1,   653,
01056       -1,   654,    -1,    10,   115,    -1,    11,    -1,    10,   655,
01057      115,    -1,   656,    -1,   657,    -1,   656,   657,    -1,   658,
01058      659,   662,    -1,   128,    -1,   660,    -1,    -1,   660,   661,
01059       -1,   679,    -1,   671,    -1,   675,    -1,   708,    -1,   663,
01060       -1,   664,    -1,    10,   129,    -1,    11,    -1,    10,   665,
01061      129,    -1,   666,    -1,   667,    -1,   666,   667,    -1,   668,
01062       -1,   669,    -1,   670,    -1,    60,    -1,    61,    -1,    58,
01063        5,    59,    -1,   672,    -1,   673,    -1,   674,    -1,    31,
01064       -1,    30,     3,   713,    -1,   676,    -1,   677,    -1,   678,
01065       -1,    33,    -1,    32,     3,   713,    -1,   680,    -1,   681,
01066       -1,   682,    -1,    35,    -1,    34,     3,   713,    -1,   684,
01067       -1,   685,    -1,   686,    -1,    37,    -1,    36,     3,   713,
01068       -1,   688,    -1,   689,    -1,   690,    -1,    39,    -1,    38,
01069        3,   713,    -1,   692,    -1,   693,    -1,   694,    -1,    41,
01070       -1,    40,     3,   713,    -1,    19,   713,     6,   713,    -1,
01071       22,   713,     6,   713,    -1,    27,   713,     6,   713,    -1,
01072       13,   713,     6,   713,    -1,    16,   713,     6,   713,    -1,
01073       21,   713,     6,   713,    -1,    18,   713,     6,   713,    -1,
01074       17,   713,     6,   713,    -1,    20,   713,     6,   713,    -1,
01075       26,   713,     6,   713,    -1,    15,   713,     6,   713,    -1,
01076       12,   713,     6,   713,    -1,    25,   713,     6,   713,    -1,
01077       14,   713,     6,   713,    -1,    23,   713,     6,   713,    -1,
01078       24,   713,     6,   713,    -1,     6,    -1,     7,    -1,     4,
01079       -1,     6,    -1,     7,    -1,   714,     8,    -1,    -1,   714,
01080      715,    -1,   165,    -1,   166,    -1,   167,    -1,   168,    -1
01081 };
01082 
01083 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
01084 static const yytype_uint16 yyrline[] =
01085 {
01086        0,   167,   167,   169,   176,   176,   178,   180,   183,   183,
01087      185,   187,   187,   189,   189,   191,   193,   195,   195,   198,
01088      199,   200,   201,   202,   203,   204,   205,   206,   209,   211,
01089      223,   229,   229,   232,   241,   245,   253,   257,   262,   262,
01090      264,   266,   268,   268,   270,   274,   281,   286,   286,   289,
01091      294,   300,   300,   303,   305,   311,   311,   313,   313,   315,
01092      317,   320,   322,   328,   328,   330,   330,   332,   334,   337,
01093      339,   345,   345,   347,   347,   349,   351,   354,   356,   362,
01094      362,   364,   364,   366,   368,   371,   373,   379,   379,   381,
01095      381,   383,   385,   388,   390,   396,   396,   398,   398,   400,
01096      402,   405,   407,   413,   413,   415,   415,   417,   419,   422,
01097      424,   430,   440,   444,   449,   449,   451,   453,   455,   455,
01098      457,   461,   469,   474,   474,   477,   483,   488,   495,   495,
01099      499,   499,   501,   503,   503,   505,   505,   507,   509,   511,
01100      511,   514,   515,   516,   517,   518,   519,   522,   524,   530,
01101      530,   532,   532,   534,   536,   542,   544,   552,   554,   554,
01102      557,   569,   574,   576,   581,   583,   591,   593,   593,   596,
01103      608,   613,   615,   621,   623,   631,   633,   633,   636,   652,
01104      657,   659,   665,   667,   674,   675,   680,   682,   686,   688,
01105      694,   704,   708,   713,   713,   715,   717,   719,   719,   721,
01106      725,   733,   738,   738,   741,   747,   752,   759,   759,   763,
01107      763,   764,   766,   766,   769,   770,   771,   772,   773,   774,
01108      777,   779,   785,   785,   787,   787,   789,   791,   804,   806,
01109      812,   812,   814,   814,   816,   818,   821,   823,   829,   829,
01110      831,   831,   833,   835,   838,   840,   846,   846,   848,   848,
01111      850,   852,   855,   857,   863,   863,   865,   865,   867,   869,
01112      874,   876,   882,   892,   896,   901,   901,   903,   905,   907,
01113      907,   909,   913,   921,   926,   926,   929,   935,   940,   947,
01114      947,   950,   950,   951,   953,   953,   956,   957,   958,   959,
01115      960,   961,   962,   963,   964,   965,   966,   969,   971,   977,
01116      977,   979,   979,   981,   983,   996,   998,  1004,  1004,  1006,
01117     1006,  1008,  1010,  1013,  1015,  1021,  1021,  1023,  1023,  1025,
01118     1027,  1030,  1032,  1038,  1038,  1040,  1040,  1042,  1044,  1047,
01119     1049,  1055,  1055,  1057,  1057,  1059,  1061,  1064,  1066,  1072,
01120     1081,  1085,  1090,  1090,  1092,  1094,  1096,  1096,  1098,  1100,
01121     1113,  1113,  1116,  1128,  1134,  1144,  1147,  1147,  1149,  1149,
01122     1151,  1153,  1164,  1165,  1168,  1170,  1178,  1180,  1180,  1183,
01123     1195,  1200,  1202,  1208,  1210,  1218,  1220,  1220,  1223,  1235,
01124     1240,  1242,  1248,  1250,  1260,  1262,  1262,  1265,  1281,  1286,
01125     1288,  1294,  1296,  1304,  1305,  1310,  1312,  1317,  1319,  1325,
01126     1335,  1339,  1344,  1344,  1346,  1348,  1350,  1350,  1352,  1356,
01127     1364,  1369,  1369,  1372,  1378,  1383,  1390,  1390,  1393,  1393,
01128     1395,  1402,  1407,  1407,  1410,  1417,  1423,  1429,  1437,  1441,
01129     1446,  1446,  1448,  1450,  1452,  1452,  1454,  1456,  1464,  1466,
01130     1466,  1468,  1468,  1470,  1479,  1496,  1502,  1504,  1511,  1516,
01131     1516,  1519,  1534,  1538,  1547,  1551,  1557,  1557,  1559,  1561,
01132     1563,  1563,  1565,  1568,  1575,  1580,  1580,  1583,  1593,  1600,
01133     1600,  1603,  1603,  1605,  1607,  1607,  1609,  1609,  1611,  1613,
01134     1620,  1620,  1622,  1625,  1625,  1634,  1634,  1636,  1638,  1640,
01135     1642,  1642,  1644,  1646,  1654,  1658,  1663,  1663,  1665,  1667,
01136     1669,  1669,  1671,  1678,  1684,  1686,  1689,  1690,  1693,  1693,
01137     1695,  1697,  1705,  1709,  1714,  1714,  1716,  1718,  1720,  1720,
01138     1722,  1730,  1736,  1739,  1740,  1742,  1742,  1744,  1746,  1749,
01139     1749,  1751,  1753,  1761,  1765,  1770,  1770,  1772,  1774,  1776,
01140     1776,  1778,  1780,  1786,  1788,  1802,  1802,  1804,  1809,  1819,
01141     1826,  1826,  1829,  1839,  1845,  1851,  1858,  1858,  1860,  1860,
01142     1862,  1864,  1866,  1866,  1868,  1873,  1875,  1882,  1882,  1884,
01143     1884,  1886,  1888,  1896,  1896,  1898,  1904,  1904,  1913,  1913,
01144     1915,  1917,  1919,  1921,  1921,  1923,  1925,  1933,  1937,  1942,
01145     1942,  1944,  1946,  1949,  1949,  1951,  1958,  1965,  1965,  1967,
01146     1970,  1971,  1975,  1975,  1977,  1983,  1993,  2001,  2001,  2004,
01147     2014,  2020,  2026,  2035,  2035,  2037,  2037,  2039,  2041,  2043,
01148     2043,  2045,  2050,  2052,  2057,  2057,  2059,  2059,  2061,  2063,
01149     2069,  2069,  2071,  2076,  2076,  2084,  2084,  2086,  2088,  2090,
01150     2092,  2092,  2094,  2097,  2105,  2109,  2114,  2114,  2116,  2118,
01151     2120,  2120,  2122,  2129,  2135,  2138,  2139,  2142,  2142,  2144,
01152     2150,  2160,  2167,  2167,  2170,  2180,  2186,  2192,  2199,  2199,
01153     2201,  2201,  2203,  2205,  2207,  2207,  2209,  2214,  2216,  2222,
01154     2222,  2224,  2224,  2226,  2228,  2235,  2235,  2237,  2242,  2251,
01155     2255,  2260,  2260,  2262,  2264,  2266,  2266,  2268,  2272,  2281,
01156     2288,  2288,  2291,  2297,  2303,  2311,  2321,  2325,  2330,  2330,
01157     2332,  2334,  2336,  2336,  2338,  2343,  2347,  2349,  2349,  2351,
01158     2353,  2364,  2364,  2366,  2371,  2380,  2384,  2389,  2389,  2391,
01159     2393,  2395,  2395,  2397,  2401,  2410,  2417,  2417,  2420,  2425,
01160     2431,  2437,  2446,  2450,  2455,  2455,  2457,  2459,  2461,  2461,
01161     2463,  2468,  2472,  2474,  2474,  2476,  2487,  2493,  2493,  2495,
01162     2498,  2501,  2507,  2507,  2509,  2512,  2516,  2522,  2522,  2524,
01163     2527,  2530,  2536,  2536,  2538,  2541,  2544,  2550,  2550,  2552,
01164     2555,  2558,  2564,  2564,  2566,  2569,  2572,  2577,  2585,  2593,
01165     2601,  2609,  2615,  2621,  2627,  2633,  2639,  2645,  2651,  2656,
01166     2665,  2671,  2680,  2681,  2684,  2685,  2686,  2688,  2690,  2690,
01167     2692,  2693,  2694,  2695
01168 };
01169 #endif
01170 
01171 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
01172 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
01173    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
01174 static const char *const yytname[] =
01175 {
01176   "$end", "error", "$undefined", "ATTRIBUTETEXT", "ELEMENTTEXT",
01177   "ITEMTEXT", "INTEGER", "DOUBLE", "QUOTE", "TWOQUOTES", "GREATERTHAN",
01178   "ENDOFELEMENT", "NUMBEROFCONATT", "NUMBEROFCONSTRAINTSATT",
01179   "NUMBEROFITEMSATT", "NUMBEROFOBJATT", "NUMBEROFOBJECTIVESATT",
01180   "NUMBEROFOTHERCONSTRAINTRESULTSATT", "NUMBEROFOTHEROBJECTIVERESULTSATT",
01181   "NUMBEROFOTHERRESULTSATT", "NUMBEROFOTHERSOLUTIONRESULTSATT",
01182   "NUMBEROFOTHERVARIABLERESULTSATT", "NUMBEROFSOLUTIONSATT",
01183   "NUMBEROFSOLVEROUTPUTSATT", "NUMBEROFSUBSTATUSESATT", "NUMBEROFTIMESATT",
01184   "NUMBEROFVARATT", "NUMBEROFVARIABLESATT", "TARGETOBJECTIVEIDXATT",
01185   "IDXATT", "CATEGORYATT", "EMPTYCATEGORYATT", "DESCRIPTIONATT",
01186   "EMPTYDESCRIPTIONATT", "NAMEATT", "EMPTYNAMEATT", "TYPEATT",
01187   "EMPTYTYPEATT", "UNITATT", "EMPTYUNITATT", "VALUEATT", "EMPTYVALUEATT",
01188   "WEIGHTEDOBJECTIVESATT", "EMPTYWEIGHTEDOBJECTIVESATT", "OSRLSTART",
01189   "OSRLSTARTEMPTY", "OSRLATTRIBUTETEXT", "OSRLEND", "GENERALSTART",
01190   "GENERALEND", "SYSTEMSTART", "SYSTEMEND", "SERVICESTART", "SERVICEEND",
01191   "JOBSTART", "JOBEND", "OPTIMIZATIONSTART", "OPTIMIZATIONEND",
01192   "ITEMSTART", "ITEMEND", "ITEMSTARTANDEND", "ITEMEMPTY",
01193   "ACTUALSTARTTIMESTART", "ACTUALSTARTTIMEEND", "AVAILABLECPUNUMBERSTART",
01194   "AVAILABLECPUNUMBEREND", "AVAILABLECPUSPEEDSTART",
01195   "AVAILABLECPUSPEEDEND", "AVAILABLEDISKSPACESTART",
01196   "AVAILABLEDISKSPACEEND", "AVAILABLEMEMORYSTART", "AVAILABLEMEMORYEND",
01197   "BASISSTATUSSTART", "BASISSTATUSEND", "BASSTATUSSTART", "BASSTATUSEND",
01198   "CONSTART", "CONEND", "CONSTRAINTSSTART", "CONSTRAINTSEND",
01199   "CURRENTJOBCOUNTSTART", "CURRENTJOBCOUNTEND", "CURRENTSTATESTART",
01200   "CURRENTSTATEEND", "DUALVALUESSTART", "DUALVALUESEND", "ENDTIMESTART",
01201   "ENDTIMEEND", "GENERALSTATUSSTART", "GENERALSTATUSEND",
01202   "GENERALSUBSTATUSSTART", "GENERALSUBSTATUSEND", "INSTANCENAMESTART",
01203   "INSTANCENAMEEND", "JOBIDSTART", "JOBIDEND", "MESSAGESTART",
01204   "MESSAGEEND", "OBJSTART", "OBJEND", "OBJECTIVESSTART", "OBJECTIVESEND",
01205   "OPTIMIZATIONSOLUTIONSTATUSSTART", "OPTIMIZATIONSOLUTIONSTATUSEND",
01206   "OPTIMIZATIONSOLUTIONSUBSTATUSSTART", "OPTIMIZATIONSOLUTIONSUBSTATUSEND",
01207   "OTHERSTART", "OTHEREND", "OTHERRESULTSSTART", "OTHERRESULTSEND",
01208   "OTHERSOLUTIONRESULTSTART", "OTHERSOLUTIONRESULTEND",
01209   "OTHERSOLUTIONRESULTSSTART", "OTHERSOLUTIONRESULTSEND",
01210   "OTHERSOLVEROUTPUTSTART", "OTHERSOLVEROUTPUTEND",
01211   "SCHEDULEDSTARTTIMESTART", "SCHEDULEDSTARTTIMEEND", "SERVICENAMESTART",
01212   "SERVICENAMEEND", "SERVICEURISTART", "SERVICEURIEND",
01213   "SERVICEUTILIZATIONSTART", "SERVICEUTILIZATIONEND", "SOLUTIONSTART",
01214   "SOLUTIONEND", "SOLVERINVOKEDSTART", "SOLVERINVOKEDEND",
01215   "SOLVEROUTPUTSTART", "SOLVEROUTPUTEND", "STATUSSTART", "STATUSEND",
01216   "SUBMITTIMESTART", "SUBMITTIMEEND", "SUBSTATUSSTART", "SUBSTATUSEND",
01217   "SYSTEMINFORMATIONSTART", "SYSTEMINFORMATIONEND", "TIMESTART", "TIMEEND",
01218   "TIMESERVICESTARTEDSTART", "TIMESERVICESTARTEDEND", "TIMESTAMPSTART",
01219   "TIMESTAMPEND", "TIMINGINFORMATIONSTART", "TIMINGINFORMATIONEND",
01220   "TOTALJOBSSOFARSTART", "TOTALJOBSSOFAREND", "USEDCPUNUMBERSTART",
01221   "USEDCPUNUMBEREND", "USEDCPUSPEEDSTART", "USEDCPUSPEEDEND",
01222   "USEDDISKSPACESTART", "USEDDISKSPACEEND", "USEDMEMORYSTART",
01223   "USEDMEMORYEND", "VALUESSTART", "VALUESEND", "VALUESSTRINGSTART",
01224   "VALUESSTRINGEND", "VARSTART", "VAREND", "VARIABLESSTART",
01225   "VARIABLESEND", "DUMMY", "' '", "'\\t'", "'\\r'", "'\\n'", "$accept",
01226   "osrldoc", "osrlStart", "osrlAttributes", "osrlContent", "osrlBody",
01227   "generalElement", "generalElementStart", "generalElementContent",
01228   "generalElementEmpty", "generalElementLaden", "generalElementBody",
01229   "generalElementList", "generalChild", "generalStatus",
01230   "generalStatusStart", "generalStatusAttributes", "generalStatusAttList",
01231   "generalStatusATT", "generalStatusContent", "generalStatusEmpty",
01232   "generalStatusLaden", "generalStatusBody", "generalSubstatusArray",
01233   "generalSubstatus", "generalSubstatusStart",
01234   "generalSubstatusAttributes", "generalSubstatusAttList",
01235   "generalSubstatusATT", "generalSubstatusEnd", "generalMessage",
01236   "generalMessageStart", "generalMessageContent", "generalMessageEmpty",
01237   "generalMessageLaden", "generalMessageBody", "serviceURI",
01238   "serviceURIStart", "serviceURIContent", "serviceURIEmpty",
01239   "serviceURILaden", "serviceURIBody", "serviceName", "serviceNameStart",
01240   "serviceNameContent", "serviceNameEmpty", "serviceNameLaden",
01241   "serviceNameBody", "instanceName", "instanceNameStart",
01242   "instanceNameContent", "instanceNameEmpty", "instanceNameLaden",
01243   "instanceNameBody", "jobID", "jobIDStart", "jobIDContent", "jobIDEmpty",
01244   "jobIDLaden", "jobIDBody", "solverInvoked", "solverInvokedStart",
01245   "solverInvokedContent", "solverInvokedEmpty", "solverInvokedLaden",
01246   "solverInvokedBody", "timeStamp", "timeStampStart", "timeStampContent",
01247   "timeStampEmpty", "timeStampLaden", "timeStampBody",
01248   "generalOtherResults", "generalOtherResultsStart",
01249   "generalOtherResultsAttributes", "generalOtherResultsContent",
01250   "generalOtherResultsEmpty", "generalOtherResultsLaden",
01251   "generalOtherResultsBody", "generalOtherResultArray",
01252   "generalOtherResult", "generalOtherResultStart",
01253   "generalOtherAttributes", "generalOtherAttList", "generalOtherAtt",
01254   "generalOtherEnd", "systemElement", "systemElementStart",
01255   "systemElementContent", "systemElementEmpty", "systemElementLaden",
01256   "systemElementBody", "systemElementList", "systemChild",
01257   "systemInformation", "systemInformationStart",
01258   "systemInformationContent", "systemInformationEmpty",
01259   "systemInformationLaden", "systemInformationBody", "availableDiskSpace",
01260   "availableDiskSpaceStart", "availableDiskSpaceAttributes",
01261   "availableDiskSpaceAttList", "availableDiskSpaceAtt",
01262   "availableDiskSpaceContent", "availableDiskSpaceValue",
01263   "availableMemory", "availableMemoryStart", "availableMemoryAttributes",
01264   "availableMemoryAttList", "availableMemoryAtt", "availableMemoryContent",
01265   "availableMemoryValue", "availableCPUSpeed", "availableCPUSpeedStart",
01266   "availableCPUSpeedAttributes", "availableCPUSpeedAttList",
01267   "availableCPUSpeedAtt", "availableCPUSpeedContent",
01268   "availableCPUSpeedValue", "availableCPUNumber",
01269   "availableCPUNumberStart", "availableCPUNumberAttributes",
01270   "availableCPUNumberContent", "availableCPUNumberValue",
01271   "systemOtherResults", "systemOtherResultsStart",
01272   "systemOtherResultsAttributes", "systemOtherResultsContent",
01273   "systemOtherResultsEmpty", "systemOtherResultsLaden",
01274   "systemOtherResultsBody", "systemOtherResultArray", "systemOtherResult",
01275   "systemOtherResultStart", "systemOtherAttributes", "systemOtherAttList",
01276   "systemOtherAtt", "systemOtherEnd", "serviceElement", "serviceContent",
01277   "serviceChild", "currentState", "currentStateStart",
01278   "currentStateContent", "currentStateEmpty", "currentStateLaden",
01279   "currentStateBody", "currentJobCount", "currentJobCountStart",
01280   "currentJobCountContent", "currentJobCountEmpty", "currentJobCountLaden",
01281   "currentJobCountBody", "totalJobsSoFar", "totalJobsSoFarStart",
01282   "totalJobsSoFarContent", "totalJobsSoFarEmpty", "totalJobsSoFarLaden",
01283   "totalJobsSoFarBody", "timeServiceStarted", "timeServiceStartedStart",
01284   "timeServiceStartedContent", "timeServiceStartedEmpty",
01285   "timeServiceStartedLaden", "timeServiceStartedBody",
01286   "serviceUtilization", "serviceUtilizationStart",
01287   "serviceUtilizationContent", "serviceUtilizationEmpty",
01288   "serviceUtilizationLaden", "serviceUtilizationBody",
01289   "serviceOtherResults", "serviceOtherResultsStart",
01290   "serviceOtherResultsAttributes", "serviceOtherResultsContent",
01291   "serviceOtherResultsEmpty", "serviceOtherResultsLaden",
01292   "serviceOtherResultsBody", "serviceOtherResultArray",
01293   "serviceOtherResult", "serviceOtherResultStart",
01294   "serviceOtherAttributes", "serviceOtherAttList", "serviceOtherAtt",
01295   "serviceOtherEnd", "jobElement", "jobContent", "jobChild", "jobStatus",
01296   "jobStatusStart", "jobStatusContent", "jobStatusEmpty", "jobStatusLaden",
01297   "jobStatusBody", "submitTime", "submitTimeStart", "submitTimeContent",
01298   "submitTimeEmpty", "submitTimeLaden", "submitTimeBody",
01299   "scheduledStartTime", "scheduledStartTimeStart",
01300   "scheduledStartTimeContent", "scheduledStartTimeEmpty",
01301   "scheduledStartTimeLaden", "scheduledStartTimeBody", "actualStartTime",
01302   "actualStartTimeStart", "actualStartTimeContent", "actualStartTimeEmpty",
01303   "actualStartTimeLaden", "actualStartTimeBody", "endTime", "endTimeStart",
01304   "endTimeContent", "endTimeEmpty", "endTimeLaden", "endTimeBody",
01305   "timingInformation", "timingInformationStart",
01306   "timingInformationAttributes", "timingInformationContent",
01307   "timingInformationEmpty", "timingInformationLaden",
01308   "timingInformationBody", "timeArray", "time", "timeStart",
01309   "timeAttributes", "timeAtt", "timeContent", "timeEmpty", "timeLaden",
01310   "timeBody", "timeValue", "usedDiskSpace", "usedDiskSpaceStart",
01311   "usedDiskSpaceAttributes", "usedDiskSpaceAttList", "usedDiskSpaceAtt",
01312   "usedDiskSpaceContent", "usedDiskSpaceValue", "usedMemory",
01313   "usedMemoryStart", "usedMemoryAttributes", "usedMemoryAttList",
01314   "usedMemoryAtt", "usedMemoryContent", "usedMemoryValue", "usedCPUSpeed",
01315   "usedCPUSpeedStart", "usedCPUSpeedAttributes", "usedCPUSpeedAttList",
01316   "usedCPUSpeedAtt", "usedCPUSpeedContent", "usedCPUSpeedValue",
01317   "usedCPUNumber", "usedCPUNumberStart", "usedCPUNumberAttributes",
01318   "usedCPUNumberContent", "usedCPUNumberValue", "jobOtherResults",
01319   "jobOtherResultsStart", "jobOtherResultsAttributes",
01320   "jobOtherResultsContent", "jobOtherResultsEmpty", "jobOtherResultsLaden",
01321   "jobOtherResultsBody", "jobOtherResultArray", "jobOtherResult",
01322   "jobOtherResultStart", "jobOtherAttributes", "jobOtherAttList",
01323   "jobOtherAtt", "jobOtherEnd", "optimizationElement", "optimizationStart",
01324   "optimizationAttributes", "optimizationAttList", "optimizationATT",
01325   "optimizationContent", "optimizationEmpty", "optimizationLaden",
01326   "optimizationBody", "solutionArray", "solution", "solutionStart",
01327   "solutionAttributes", "solutionAttList", "solutionATT",
01328   "targetObjectiveIdxATT", "weightedObjectivesATT", "solutionContent",
01329   "solutionStatus", "solutionStatusStart", "solutionStatusAttributes",
01330   "solutionStatusAttList", "solutionStatusATT", "solutionStatusContent",
01331   "solutionStatusEmpty", "solutionStatusLaden", "solutionStatusBody",
01332   "solutionSubstatusArray", "solutionSubstatus", "solutionSubstatusStart",
01333   "solutionSubstatusAttributes", "solutionSubstatusAttList",
01334   "solutionSubstatusATT", "solutionSubstatusEnd", "solutionMessage",
01335   "solutionMessageStart", "solutionMessageContent", "solutionMessageEmpty",
01336   "solutionMessageLaden", "solutionMessageBody", "variables",
01337   "variablesStart", "numberOfOtherVariableResults", "variablesContent",
01338   "variablesEmpty", "variablesLaden", "variablesBody", "variableValues",
01339   "variableValuesStart", "numberOfVarATT", "variableValuesContent",
01340   "variableValuesEmpty", "variableValuesLaden", "variableValuesBody",
01341   "varValueArray", "varValue", "varValueStart", "varIdxATT",
01342   "varValueContent", "varVal", "variableValuesString",
01343   "variableValuesStringStart", "numberOfVarStringATT",
01344   "variableValuesStringContent", "variableValuesStringEmpty",
01345   "variableValuesStringLaden", "variableValuesStringBody",
01346   "varValueStringArray", "varValueString", "varValueStringStart",
01347   "varStrIdxATT", "varValueStringContent", "varValueStringEmpty",
01348   "varValueStringLaden", "varValueStringBody", "basisStatus",
01349   "basisStatusStart", "numberOfBasisVarATT", "basisStatusContent",
01350   "basisStatusEmpty", "basisStatusLaden", "basisStatusBody",
01351   "basisVarArray", "basisVar", "basisVarStart", "basisVarIdxATT",
01352   "basisVarContent", "otherVariableResultsArray", "otherVariableResult",
01353   "otherVariableResultStart", "otherVariableResultAttributes",
01354   "otherVariableResultAttList", "otherVariableResultATT",
01355   "otherVariableResultContent", "otherVariableResultEmpty",
01356   "otherVariableResultLaden", "otherVariableResultBody", "otherVarList",
01357   "otherVar", "otherVarStart", "otherVarIdxATT", "otherVarContent",
01358   "otherVarEmpty", "otherVarLaden", "otherVarBody", "objectives",
01359   "objectivesStart", "numberOfOtherObjectiveResults", "objectivesContent",
01360   "objectivesEmpty", "objectivesLaden", "objectivesBody",
01361   "objectiveValues", "objectiveValuesStart", "numberOfObjATT",
01362   "objectiveValuesContent", "objectiveValuesEmpty", "objectiveValuesLaden",
01363   "objectiveValuesBody", "objValueArray", "objValue", "objValueStart",
01364   "objIdxATT", "objValueContent", "objVal", "otherObjectiveResultsArray",
01365   "otherObjectiveResult", "otherObjectiveResultStart",
01366   "otherObjectiveResultAttributes", "otherObjectiveResultAttList",
01367   "otherObjectiveResultATT", "otherObjectiveResultContent",
01368   "otherObjectiveResultEmpty", "otherObjectiveResultLaden",
01369   "otherObjectiveResultBody", "otherObjList", "otherObj", "otherObjStart",
01370   "otherObjIdxATT", "otherObjContent", "otherObjEmpty", "otherObjLaden",
01371   "otherObjBody", "constraints", "constraintsStart",
01372   "numberOfOtherConstraintResults", "constraintsContent",
01373   "constraintsEmpty", "constraintsLaden", "constraintsBody", "dualValues",
01374   "dualValuesStart", "numberOfConATT", "dualValuesContent",
01375   "dualValuesEmpty", "dualValuesLaden", "dualValuesBody", "dualValueArray",
01376   "dualValue", "dualValueStart", "conIdxATT", "dualVal",
01377   "otherConstraintResultsArray", "otherConstraintResult",
01378   "otherConstraintResultStart", "otherConstraintResultAttributes",
01379   "otherConstraintResultAttList", "otherConstraintResultATT",
01380   "otherConstraintResultContent", "otherConstraintResultEmpty",
01381   "otherConstraintResultLaden", "otherConstraintResultBody",
01382   "otherConList", "otherCon", "otherConStart", "otherConIdxATT",
01383   "otherConContent", "otherConEmpty", "otherConLaden", "otherConBody",
01384   "otherSolutionResults", "otherSolutionResultsStart",
01385   "numberOfOtherSolutionResults", "otherSolutionResultsContent",
01386   "otherSolutionResultsEmpty", "otherSolutionResultsLaden",
01387   "otherSolutionResultsBody", "otherSolutionResultArray",
01388   "otherSolutionResult", "otherSolutionResultStart",
01389   "otherSolutionResultAttributes", "otherSolutionResultAttList",
01390   "otherSolutionResultAtt", "otherSolutionResultContent",
01391   "otherSolutionResultEmpty", "otherSolutionResultLaden",
01392   "otherSolutionResultBody", "otherSolutionResultItemArray",
01393   "otherSolutionResultItem", "otherSolutionResultItemContent",
01394   "otherSolutionResultItemEmpty", "otherSolutionResultItemLaden",
01395   "otherSolutionResultItemBody", "otherSolverOutput",
01396   "otherSolverOutputStart", "numberOfSolverOutputsATT",
01397   "otherSolverOutputContent", "otherSolverOutputEmpty",
01398   "otherSolverOutputLaden", "otherSolverOutputBody", "solverOutputArray",
01399   "solverOutput", "solverOutputStart", "solverOutputAttributes",
01400   "solverOutputAttList", "solverOutputAtt", "solverOutputContent",
01401   "solverOutputEmpty", "solverOutputLaden", "solverOutputBody",
01402   "solverOutputItemArray", "solverOutputItem", "solverOutputItemContent",
01403   "solverOutputItemEmpty", "solverOutputItemBody", "categoryAttribute",
01404   "categoryAtt", "categoryAttEmpty", "categoryAttContent",
01405   "descriptionAttribute", "descriptionAtt", "descriptionAttEmpty",
01406   "descriptionAttContent", "nameAttribute", "nameAtt", "nameAttEmpty",
01407   "nameAttContent", "typeAttribute", "typeAtt", "typeAttEmpty",
01408   "typeAttContent", "unitAttribute", "unitAtt", "unitAttEmpty",
01409   "unitAttContent", "valueAttribute", "valueAtt", "valueAttEmpty",
01410   "valueAttContent", "numberOfOtherResultsAttribute",
01411   "numberOfSolutionsAttribute", "numberOfVariablesAttribute",
01412   "numberOfConstraintsAttribute", "numberOfObjectivesAttribute",
01413   "numberOfOtherVariableResultsAttribute",
01414   "numberOfOtherObjectiveResultsAttribute",
01415   "numberOfOtherConstraintResultsAttribute",
01416   "numberOfOtherSolutionResultsAttribute", "numberOfVarAttribute",
01417   "numberOfObjAttribute", "numberOfConAttribute", "numberOfTimesAttribute",
01418   "numberOfItemsAttribute", "numberOfSolverOutputsAttribute",
01419   "numberOfSubstatusesAttribute", "aNumber", "ElementValue", "quote",
01420   "xmlWhiteSpace", "xmlWhiteSpaceChar", 0
01421 };
01422 #endif
01423 
01424 # ifdef YYPRINT
01425 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
01426    token YYLEX-NUM.  */
01427 static const yytype_uint16 yytoknum[] =
01428 {
01429        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
01430      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
01431      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
01432      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
01433      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
01434      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
01435      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
01436      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
01437      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
01438      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
01439      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
01440      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
01441      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
01442      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
01443      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
01444      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
01445      415,   416,   417,   418,   419,    32,     9,    13,    10
01446 };
01447 # endif
01448 
01449 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
01450 static const yytype_uint16 yyr1[] =
01451 {
01452        0,   169,   170,   171,   172,   172,   173,   174,   175,   175,
01453      176,   177,   177,   178,   178,   179,   180,   181,   181,   182,
01454      182,   182,   182,   182,   182,   182,   182,   182,   183,   184,
01455      185,   186,   186,   187,   187,   187,   188,   188,   189,   189,
01456      190,   191,   192,   192,   193,   194,   195,   196,   196,   197,
01457      197,   198,   198,   199,   200,   201,   201,   202,   202,   203,
01458      204,   205,   206,   207,   207,   208,   208,   209,   210,   211,
01459      212,   213,   213,   214,   214,   215,   216,   217,   218,   219,
01460      219,   220,   220,   221,   222,   223,   224,   225,   225,   226,
01461      226,   227,   228,   229,   230,   231,   231,   232,   232,   233,
01462      234,   235,   236,   237,   237,   238,   238,   239,   240,   241,
01463      242,   243,   244,   244,   245,   245,   246,   247,   248,   248,
01464      249,   250,   251,   252,   252,   253,   253,   253,   254,   254,
01465      255,   255,   256,   257,   257,   258,   258,   259,   260,   261,
01466      261,   262,   262,   262,   262,   262,   262,   263,   264,   265,
01467      265,   266,   266,   267,   268,   269,   270,   271,   272,   272,
01468      273,   273,   274,   275,   276,   277,   278,   279,   279,   280,
01469      280,   281,   282,   283,   284,   285,   286,   286,   287,   287,
01470      288,   289,   290,   291,   292,   292,   293,   294,   295,   296,
01471      297,   298,   298,   299,   299,   300,   301,   302,   302,   303,
01472      304,   305,   306,   306,   307,   307,   307,   308,   308,   309,
01473      309,   309,   310,   310,   311,   311,   311,   311,   311,   311,
01474      312,   313,   314,   314,   315,   315,   316,   317,   318,   319,
01475      320,   320,   321,   321,   322,   323,   324,   325,   326,   326,
01476      327,   327,   328,   329,   330,   331,   332,   332,   333,   333,
01477      334,   335,   336,   337,   338,   338,   339,   339,   340,   341,
01478      342,   343,   344,   345,   345,   346,   346,   347,   348,   349,
01479      349,   350,   351,   352,   353,   353,   354,   354,   354,   355,
01480      355,   356,   356,   356,   357,   357,   358,   358,   358,   358,
01481      358,   358,   358,   358,   358,   358,   358,   359,   360,   361,
01482      361,   362,   362,   363,   364,   365,   366,   367,   367,   368,
01483      368,   369,   370,   371,   372,   373,   373,   374,   374,   375,
01484      376,   377,   378,   379,   379,   380,   380,   381,   382,   383,
01485      384,   385,   385,   386,   386,   387,   388,   389,   390,   391,
01486      392,   392,   393,   393,   394,   395,   396,   396,   397,   398,
01487      399,   399,   400,   400,   400,   400,   401,   401,   402,   402,
01488      403,   404,   405,   405,   406,   407,   408,   409,   409,   410,
01489      410,   411,   412,   413,   414,   415,   416,   416,   417,   417,
01490      418,   419,   420,   421,   422,   423,   423,   424,   424,   425,
01491      426,   427,   428,   429,   429,   430,   431,   432,   433,   434,
01492      435,   435,   436,   436,   437,   438,   439,   439,   440,   441,
01493      442,   443,   443,   444,   444,   444,   445,   445,   446,   446,
01494      447,   448,   449,   449,   450,   450,   450,   450,   451,   451,
01495      452,   452,   453,   454,   455,   455,   456,   457,   458,   459,
01496      459,   460,   460,   461,   462,   463,   464,   465,   466,   467,
01497      467,   468,   468,   468,   469,   469,   470,   470,   471,   472,
01498      473,   473,   474,   475,   476,   477,   477,   478,   478,   479,
01499      479,   480,   480,   481,   482,   482,   483,   483,   484,   485,
01500      486,   486,   487,   488,   488,   489,   489,   490,   491,   492,
01501      493,   493,   494,   495,   496,   496,   497,   497,   498,   499,
01502      500,   500,   501,   502,   503,   504,   505,   505,   506,   506,
01503      507,   508,   509,   509,   510,   510,   511,   512,   513,   513,
01504      514,   515,   516,   517,   517,   518,   518,   519,   520,   521,
01505      521,   522,   523,   524,   524,   525,   525,   526,   527,   528,
01506      528,   529,   530,   531,   532,   533,   533,   534,   535,   536,
01507      537,   537,   538,   538,   538,   538,   539,   539,   540,   540,
01508      541,   542,   543,   543,   544,   545,   546,   547,   547,   548,
01509      548,   549,   550,   551,   551,   552,   553,   553,   554,   554,
01510      555,   556,   557,   558,   558,   559,   560,   561,   561,   562,
01511      562,   563,   564,   565,   565,   566,   567,   568,   568,   569,
01512      570,   570,   571,   571,   572,   573,   574,   575,   575,   576,
01513      576,   576,   576,   577,   577,   578,   578,   579,   580,   581,
01514      581,   582,   583,   584,   585,   585,   586,   586,   587,   588,
01515      589,   589,   590,   591,   591,   592,   592,   593,   594,   595,
01516      596,   596,   597,   598,   599,   599,   600,   600,   601,   602,
01517      603,   603,   604,   605,   606,   607,   607,   608,   608,   609,
01518      610,   611,   612,   612,   613,   613,   613,   613,   614,   614,
01519      615,   615,   616,   617,   618,   618,   619,   620,   621,   622,
01520      622,   623,   623,   624,   625,   626,   626,   627,   628,   629,
01521      629,   630,   630,   631,   632,   633,   633,   634,   635,   636,
01522      637,   637,   638,   638,   638,   638,   639,   639,   640,   640,
01523      641,   642,   643,   643,   644,   645,   645,   646,   646,   647,
01524      648,   649,   649,   650,   651,   652,   652,   653,   653,   654,
01525      655,   656,   656,   657,   658,   659,   660,   660,   661,   661,
01526      661,   661,   662,   662,   663,   663,   664,   665,   666,   666,
01527      667,   668,   668,   669,   669,   670,   671,   672,   672,   673,
01528      674,   675,   676,   676,   677,   678,   679,   680,   680,   681,
01529      682,   683,   684,   684,   685,   686,   687,   688,   688,   689,
01530      690,   691,   692,   692,   693,   694,   695,   696,   697,   698,
01531      699,   700,   701,   702,   703,   704,   705,   706,   707,   708,
01532      709,   710,   711,   711,   712,   712,   712,   713,   714,   714,
01533      715,   715,   715,   715
01534 };
01535 
01536 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
01537 static const yytype_uint8 yyr2[] =
01538 {
01539        0,     2,     3,     1,     0,     1,     3,     5,     0,     2,
01540        1,     1,     1,     2,     1,     3,     1,     1,     2,     1,
01541        1,     1,     1,     1,     1,     1,     1,     1,     3,     1,
01542        1,     1,     2,     1,     1,     1,     1,     1,     2,     1,
01543        3,     1,     1,     2,     3,     1,     1,     0,     2,     1,
01544        1,     2,     1,     2,     1,     1,     1,     2,     1,     3,
01545        1,     2,     1,     1,     1,     2,     1,     3,     1,     2,
01546        1,     1,     1,     2,     1,     3,     1,     2,     1,     1,
01547        1,     2,     1,     3,     1,     2,     1,     1,     1,     2,
01548        1,     3,     1,     2,     1,     1,     1,     2,     1,     3,
01549        1,     2,     1,     1,     1,     2,     1,     3,     1,     3,
01550        1,     1,     1,     1,     2,     1,     3,     1,     1,     2,
01551        3,     1,     1,     0,     2,     1,     1,     1,     2,     1,
01552        0,     2,     1,     1,     1,     2,     1,     3,     1,     1,
01553        2,     1,     1,     1,     1,     1,     1,     2,     1,     1,
01554        1,     2,     1,     3,     1,     3,     1,     1,     0,     2,
01555        1,     1,     3,     1,     3,     1,     1,     0,     2,     1,
01556        1,     3,     1,     3,     1,     1,     0,     2,     1,     1,
01557        3,     1,     3,     1,     0,     1,     3,     1,     3,     1,
01558        1,     1,     1,     2,     1,     3,     1,     1,     2,     3,
01559        1,     1,     0,     2,     1,     1,     1,     2,     1,     0,
01560        2,     4,     0,     2,     1,     1,     1,     1,     1,     1,
01561        2,     1,     1,     1,     2,     1,     3,     1,     2,     1,
01562        1,     1,     2,     1,     3,     1,     2,     1,     1,     1,
01563        2,     1,     3,     1,     2,     1,     1,     1,     2,     1,
01564        3,     1,     2,     1,     1,     1,     2,     1,     3,     1,
01565        3,     1,     1,     1,     1,     2,     1,     3,     1,     1,
01566        2,     3,     1,     1,     0,     2,     1,     1,     1,     2,
01567        1,     0,     2,     4,     0,     2,     1,     1,     1,     1,
01568        1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
01569        1,     2,     1,     3,     1,     2,     1,     1,     1,     2,
01570        1,     3,     1,     2,     1,     1,     1,     2,     1,     3,
01571        1,     2,     1,     1,     1,     2,     1,     3,     1,     2,
01572        1,     1,     1,     2,     1,     3,     1,     3,     1,     1,
01573        1,     1,     2,     1,     3,     1,     1,     2,     3,     1,
01574        0,     2,     1,     1,     1,     1,     1,     1,     2,     1,
01575        3,     1,     1,     1,     3,     1,     1,     0,     2,     1,
01576        1,     3,     1,     3,     1,     1,     0,     2,     1,     1,
01577        3,     1,     3,     1,     1,     0,     2,     1,     1,     3,
01578        1,     3,     1,     0,     1,     3,     1,     3,     1,     1,
01579        1,     1,     2,     1,     3,     1,     1,     2,     3,     1,
01580        1,     0,     2,     1,     1,     1,     2,     1,     0,     3,
01581        1,     1,     0,     2,     1,     1,     1,     1,     1,     1,
01582        2,     1,     3,     2,     1,     2,     3,     1,     1,     0,
01583        2,     1,     1,     4,     3,     8,     3,     1,     1,     1,
01584        2,     1,     1,     1,     1,     1,     2,     1,     3,     1,
01585        1,     2,     3,     1,     1,     0,     2,     1,     1,     2,
01586        1,     0,     2,     1,     1,     1,     2,     1,     3,     1,
01587        0,     3,     1,     0,     1,     1,     1,     1,     3,     4,
01588        0,     3,     1,     1,     1,     1,     2,     1,     3,     1,
01589        1,     2,     3,     1,     4,     3,     1,     1,     0,     3,
01590        1,     1,     1,     1,     2,     1,     3,     1,     1,     2,
01591        3,     1,     4,     1,     1,     2,     1,     3,     1,     0,
01592        3,     1,     1,     1,     1,     2,     1,     3,     1,     1,
01593        2,     3,     1,     4,     3,     0,     2,     3,     1,     1,
01594        0,     2,     1,     1,     1,     1,     1,     1,     2,     1,
01595        3,     1,     1,     2,     3,     1,     4,     1,     1,     2,
01596        1,     3,     1,     0,     3,     1,     0,     1,     1,     1,
01597        1,     3,     2,     0,     3,     1,     1,     1,     1,     2,
01598        1,     3,     1,     1,     2,     3,     1,     0,     4,     3,
01599        1,     1,     0,     2,     3,     1,     1,     0,     2,     1,
01600        1,     1,     1,     1,     1,     2,     1,     3,     1,     1,
01601        2,     3,     1,     4,     1,     1,     2,     1,     3,     1,
01602        0,     3,     1,     0,     1,     1,     1,     1,     3,     2,
01603        0,     3,     1,     1,     1,     1,     2,     1,     3,     1,
01604        1,     2,     5,     1,     4,     1,     1,     0,     2,     3,
01605        1,     1,     0,     2,     1,     1,     1,     1,     1,     1,
01606        2,     1,     3,     1,     1,     2,     3,     1,     4,     1,
01607        1,     2,     1,     3,     1,     0,     3,     1,     1,     1,
01608        1,     2,     1,     3,     1,     1,     2,     3,     1,     1,
01609        0,     2,     1,     1,     1,     1,     1,     1,     2,     1,
01610        3,     1,     1,     2,     1,     1,     1,     1,     1,     3,
01611        1,     0,     3,     1,     1,     1,     1,     2,     1,     3,
01612        1,     1,     2,     3,     1,     1,     0,     2,     1,     1,
01613        1,     1,     1,     1,     2,     1,     3,     1,     1,     2,
01614        1,     1,     1,     1,     1,     3,     1,     1,     1,     1,
01615        3,     1,     1,     1,     1,     3,     1,     1,     1,     1,
01616        3,     1,     1,     1,     1,     3,     1,     1,     1,     1,
01617        3,     1,     1,     1,     1,     3,     4,     4,     4,     4,
01618        4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
01619        4,     4,     1,     1,     1,     1,     1,     2,     0,     2,
01620        1,     1,     1,     1
01621 };
01622 
01623 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
01624    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
01625    means the default is an error.  */
01626 static const yytype_uint16 yydefact[] =
01627 {
01628        0,     3,     0,     4,     1,     5,     0,     8,     2,    10,
01629        0,   130,     0,     6,   132,   209,     0,     0,    14,     9,
01630       11,    12,     0,   281,     0,   136,   131,   133,   134,    13,
01631       29,    78,    86,    54,   110,    70,    62,    94,   102,     0,
01632       16,    17,    19,     0,    20,     0,    21,     0,    22,     0,
01633       23,     0,    24,     0,    25,     0,    26,     0,    27,     0,
01634      212,   210,     0,   418,   135,   183,   174,   156,   165,   189,
01635      148,     0,   138,   139,   141,     0,   142,   158,   143,   167,
01636      144,   176,   145,   184,   146,     0,    15,    18,   808,     0,
01637      764,     0,   774,     0,    30,    31,    34,   761,   762,   763,
01638       33,   771,   772,   773,    35,     0,    58,    53,    55,    56,
01639        0,    66,    61,    63,    64,     0,    74,    69,    71,    72,
01640        0,    82,    77,    79,    80,     0,    90,    85,    87,    88,
01641        0,    98,    93,    95,    96,     0,   106,   101,   103,   104,
01642      808,     0,   111,     0,   284,   282,   420,     7,   422,   137,
01643      140,     0,   152,   147,   149,   150,     0,   157,     0,   166,
01644        0,   175,     0,   185,     0,   190,     0,     0,   808,   808,
01645        0,    39,    28,    36,    37,    32,    60,    57,     0,    68,
01646       65,     0,    76,    73,     0,    84,    81,     0,    92,    89,
01647        0,   100,    97,     0,   108,   105,     0,     0,     0,   115,
01648      109,   112,   113,   211,   229,   221,   261,   253,   245,   237,
01649      213,   214,     0,   215,     0,   216,     0,   217,     0,   218,
01650        0,   219,     0,     0,     0,   421,   154,   151,     0,     0,
01651      155,     0,   779,   159,   161,   160,   776,   777,   778,     0,
01652      164,   168,   170,   169,     0,   173,   177,   179,   178,     0,
01653      182,     0,   194,   188,   191,   192,   808,   807,   810,   811,
01654      812,   813,   809,   765,   775,    38,    45,     0,    41,    42,
01655       47,    59,    67,    75,    83,    91,    99,   107,   808,   121,
01656      114,     0,   117,   118,   123,     0,   225,   220,   222,   223,
01657        0,   233,   228,   230,   231,     0,   241,   236,   238,   239,
01658        0,   249,   244,   246,   247,     0,   257,   252,   254,   255,
01659        0,   262,   283,   322,   330,   398,   314,   298,   306,   338,
01660      392,   383,   365,   374,   285,   286,     0,   287,     0,   288,
01661        0,   289,     0,   290,     0,   291,     0,   292,   367,   293,
01662      376,   294,   385,   295,   393,   296,     0,     0,   431,   419,
01663      428,   429,   808,   808,   808,   808,   423,   424,   425,   426,
01664      427,   153,   802,   803,     0,   163,   808,     0,   172,     0,
01665      181,   187,     0,   200,   193,     0,   196,   197,   202,   801,
01666       40,    43,     0,    46,   786,   116,   119,     0,   122,   227,
01667      224,     0,   235,   232,     0,   243,   240,     0,   251,   248,
01668        0,   256,     0,   259,     0,   266,   260,   263,   264,     0,
01669      302,   297,   299,   300,     0,   310,   305,   307,   308,     0,
01670      318,   313,   315,   316,     0,   326,   321,   323,   324,     0,
01671      334,   329,   331,   332,   808,     0,   339,     0,   366,     0,
01672      375,     0,   384,     0,   394,     0,   399,   430,   437,     0,
01673      721,   434,   439,     0,     0,     0,     0,   162,   780,   171,
01674      180,   186,   195,   198,     0,   201,     0,    52,    44,     0,
01675      769,    48,    50,    49,   766,   767,   768,     0,   129,   120,
01676        0,   784,   124,   127,   125,   126,   781,   782,   783,   226,
01677      234,   242,   250,   258,   272,   265,     0,   268,   269,   274,
01678      304,   301,     0,   312,   309,     0,   320,   317,     0,   328,
01679      325,     0,   336,   333,     0,     0,     0,   343,   337,   340,
01680      341,     0,   364,   368,   370,   369,     0,   373,   377,   379,
01681      378,     0,   382,   386,   388,   387,     0,   391,     0,   403,
01682      397,   400,   401,   432,   723,   435,   433,     0,     0,   438,
01683      808,   808,   808,   808,     0,   208,   199,   203,   206,   204,
01684      205,    51,   808,   128,   808,   267,   270,     0,   273,   303,
01685      311,   319,   327,   335,   808,   349,   342,     0,   345,   346,
01686      350,     0,   372,     0,   381,     0,   390,   396,     0,   409,
01687      402,     0,   405,   406,   411,   808,     0,   724,     0,   436,
01688      808,     0,   440,   441,   442,   789,   790,   787,   788,   207,
01689      770,   785,     0,   280,   271,   275,   278,   276,   277,   798,
01690      344,   347,     0,   371,   380,   389,   395,   404,   407,     0,
01691      410,     0,     0,   728,   722,   725,   726,   447,   471,     0,
01692        0,   808,   279,     0,   359,     0,   759,   351,   348,   356,
01693      357,   354,   756,   757,   758,   355,   353,   352,     0,   417,
01694      408,   412,   415,   413,   414,   808,   727,   734,     0,   730,
01695      731,   736,   473,   480,     0,     0,   448,   449,   452,   451,
01696      453,   808,   444,   363,   362,   358,     0,   361,   808,   416,
01697      800,   729,   732,     0,   735,   482,   573,   483,     0,   477,
01698      472,   474,   475,     0,   457,   446,   454,   455,   450,   443,
01699      360,   760,     0,   745,   733,   742,   743,   808,   737,   739,
01700      740,   738,   741,   575,   630,   576,   808,     0,   484,   479,
01701      476,     0,   456,   463,     0,   459,   460,   465,     0,   753,
01702      754,   744,     0,   747,   748,   750,   751,   752,     0,   632,
01703      685,   633,   808,     0,   577,     0,   490,   487,   481,   485,
01704      486,   478,   458,   461,     0,   464,     0,   746,   749,   808,
01705      687,     0,     0,   808,     0,   634,     0,   583,   580,   574,
01706      578,   579,   808,   492,     0,   508,     0,     0,   470,   462,
01707      466,   468,   467,   755,   799,   445,   808,     0,   688,     0,
01708      640,   637,   631,   635,   636,   808,   585,     0,   602,     0,
01709      791,   488,   510,   529,     0,   808,     0,   493,   469,     0,
01710        0,   692,   686,   689,   690,   808,   642,     0,   657,     0,
01711      792,   581,   582,   808,     0,   586,   531,   545,     0,     0,
01712      511,     0,     0,   497,   491,   494,   495,   808,   698,   691,
01713        0,   694,   695,   700,   793,   638,   639,   808,     0,   643,
01714      605,   603,   607,     0,     0,   590,   584,   587,   588,   489,
01715        0,   532,     0,   515,   509,   512,   513,   808,   496,   503,
01716        0,   499,   500,     0,   794,   693,   696,     0,   699,   660,
01717      658,   662,     0,     0,   647,   641,   644,   645,     0,   606,
01718      808,   596,   589,     0,   592,   593,   597,   548,   546,   550,
01719        0,   536,   530,   533,   534,   514,   521,     0,   517,   518,
01720        0,   795,   498,   501,   808,     0,     0,   709,   697,   706,
01721      707,   701,   703,   704,   702,   705,     0,   661,   808,   653,
01722      646,     0,   649,   650,     0,     0,   616,   604,   613,   614,
01723      608,   612,   611,   610,   609,   796,   591,   594,   808,     0,
01724        0,   549,   535,   542,     0,   538,   539,     0,   516,   519,
01725      808,     0,     0,     0,   502,     0,   717,   718,   708,     0,
01726      711,   712,   714,   715,   716,     0,   671,   659,   668,   669,
01727      663,   667,   666,   665,   664,   797,   648,   651,   808,     0,
01728      622,   615,     0,   618,   619,     0,     0,     0,   595,     0,
01729      559,   547,   556,   557,   551,   555,   554,   553,   552,   537,
01730      540,   808,     0,     0,     0,   526,   520,   523,   524,   808,
01731      506,   507,     0,   720,     0,   710,   713,   677,   670,     0,
01732      673,   674,     0,     0,     0,   617,   620,   808,     0,   808,
01733      600,   601,     0,   558,   565,     0,   561,   562,     0,     0,
01734        0,   541,   808,   528,   525,     0,   504,   505,   719,   672,
01735      675,   808,     0,   808,   655,   656,     0,     0,     0,   627,
01736      621,   624,   625,   598,   599,   560,   563,   808,     0,   808,
01737        0,   522,   527,     0,     0,   682,   676,   679,   680,   654,
01738      652,   808,   804,   805,   806,   626,     0,   629,     0,     0,
01739      570,   564,   567,   568,   543,   544,   808,   681,     0,   684,
01740      623,   628,   808,   569,     0,   572,   678,   683,   566,   571
01741 };
01742 
01743 /* YYDEFGOTO[NTERM-NUM].  */
01744 static const yytype_int16 yydefgoto[] =
01745 {
01746       -1,     2,     3,     6,     8,    10,    11,    12,    19,    20,
01747       21,    39,    40,    41,    42,    43,    93,    94,    95,   172,
01748      173,   174,   267,   268,   269,   270,   382,   383,   471,   468,
01749       44,    45,   107,   108,   109,   178,    46,    47,   112,   113,
01750      114,   181,    48,    49,   117,   118,   119,   184,    50,    51,
01751      122,   123,   124,   187,    52,    53,   127,   128,   129,   190,
01752       54,    55,   132,   133,   134,   193,    56,    57,   137,   138,
01753      139,   196,    58,    59,   141,   200,   201,   202,   281,   282,
01754      283,   284,   387,   388,   482,   479,    15,    16,    26,    27,
01755       28,    71,    72,    73,    74,    75,   153,   154,   155,   228,
01756       76,    77,   156,   157,   233,   230,   364,    78,    79,   158,
01757      159,   241,   240,   367,    80,    81,   160,   161,   246,   245,
01758      369,    82,    83,   162,   250,   372,    84,    85,   164,   253,
01759      254,   255,   375,   376,   377,   378,   464,   465,   557,   556,
01760       23,   143,   210,   211,   212,   287,   288,   289,   391,   213,
01761      214,   292,   293,   294,   394,   215,   216,   297,   298,   299,
01762      397,   217,   218,   302,   303,   304,   400,   219,   220,   307,
01763      308,   309,   402,   221,   222,   310,   406,   407,   408,   496,
01764      497,   498,   499,   567,   568,   615,   614,    63,   223,   324,
01765      325,   326,   411,   412,   413,   502,   327,   328,   416,   417,
01766      418,   505,   329,   330,   421,   422,   423,   508,   331,   332,
01767      426,   427,   428,   511,   333,   334,   431,   432,   433,   514,
01768      335,   336,   435,   518,   519,   520,   577,   578,   579,   580,
01769      622,   647,   648,   649,   650,   686,   687,   337,   338,   437,
01770      438,   523,   522,   581,   339,   340,   439,   440,   528,   527,
01771      583,   341,   342,   441,   442,   533,   532,   585,   343,   344,
01772      443,   537,   588,   345,   346,   445,   540,   541,   542,   591,
01773      592,   593,   594,   629,   630,   661,   660,   147,   148,   224,
01774      225,   356,   349,   350,   351,   449,   450,   451,   452,   548,
01775      549,   602,   603,   604,   599,   638,   639,   675,   676,   677,
01776      705,   706,   707,   734,   735,   736,   737,   764,   765,   790,
01777      789,   673,   674,   700,   701,   702,   731,   696,   697,   727,
01778      758,   759,   760,   784,   785,   786,   816,   844,   845,   846,
01779      880,   881,   882,   883,   925,   974,  1032,   813,   814,   839,
01780      874,   875,   876,   917,   918,   919,   920,   971,  1026,  1027,
01781     1028,  1065,   837,   838,   870,   912,   913,   914,   964,   965,
01782      966,   967,  1022,  1061,   869,   908,   909,   960,   961,  1014,
01783     1011,  1012,  1013,  1055,  1056,  1057,  1058,  1088,  1111,  1112,
01784     1113,  1124,   724,   725,   753,   779,   780,   781,   807,   808,
01785      809,   834,   866,   867,   868,   903,   904,   905,   906,   959,
01786     1008,  1052,   832,   861,   862,   898,   899,   950,   947,   948,
01787      949,  1002,  1003,  1004,  1005,  1048,  1080,  1081,  1082,  1106,
01788      750,   751,   774,   802,   803,   804,   827,   828,   829,   858,
01789      895,   896,   897,   941,   942,   943,   944,   999,  1076,   856,
01790      890,   891,   936,   937,   990,   987,   988,   989,  1039,  1040,
01791     1041,  1042,  1072,  1096,  1097,  1098,  1118,   771,   772,   797,
01792      822,   823,   824,   850,   851,   852,   853,   887,   888,   931,
01793      928,   929,   930,   979,   980,   981,   982,   983,   984,  1034,
01794      546,   547,   596,   634,   635,   636,   668,   669,   670,   671,
01795      693,   694,   718,   714,   715,   716,   742,   743,   744,   745,
01796      746,   747,   651,   652,   653,   654,    96,    97,    98,    99,
01797      473,   474,   475,   476,   100,   101,   102,   103,   235,   236,
01798      237,   238,   485,   486,   487,   488,   142,   357,   358,   359,
01799      360,   728,   754,   775,   798,   817,   835,   859,   436,   722,
01800      597,   104,   365,  1107,   166,   167,   262
01801 };
01802 
01803 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
01804    STATE-NUM.  */
01805 #define YYPACT_NINF -1035
01806 static const yytype_int16 yypact[] =
01807 {
01808       48, -1035,    58,    67, -1035, -1035,   108,    76, -1035, -1035,
01809      111,   114,    59, -1035, -1035,   129,   163,    -6, -1035, -1035,
01810    -1035, -1035,   186,   135,   -11, -1035, -1035, -1035, -1035, -1035,
01811    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,   134,
01812       90, -1035, -1035,   263, -1035,   214, -1035,   237, -1035,   301,
01813    -1035,   312, -1035,   314, -1035,   316, -1035,   318, -1035,   190,
01814    -1035, -1035,   320,   155, -1035, -1035, -1035, -1035, -1035, -1035,
01815    -1035,   140,    95, -1035, -1035,   322, -1035, -1035, -1035, -1035,
01816    -1035, -1035, -1035,    68, -1035,   190, -1035, -1035, -1035,   230,
01817    -1035,   253, -1035,   324,   263, -1035, -1035, -1035, -1035, -1035,
01818    -1035, -1035, -1035, -1035, -1035,    38, -1035, -1035, -1035, -1035,
01819       22, -1035, -1035, -1035, -1035,    23, -1035, -1035, -1035, -1035,
01820       41, -1035, -1035, -1035, -1035,    44, -1035, -1035, -1035, -1035,
01821       21, -1035, -1035, -1035, -1035,     9, -1035, -1035, -1035, -1035,
01822    -1035,   326, -1035,   -14, -1035, -1035, -1035, -1035, -1035, -1035,
01823    -1035,    20, -1035, -1035, -1035, -1035,   219,   203,   255,   203,
01824      262,   203,   268, -1035,   328, -1035,   217,     2, -1035, -1035,
01825      -27, -1035, -1035, -1035, -1035, -1035, -1035, -1035,   193, -1035,
01826    -1035,   176, -1035, -1035,   165, -1035, -1035,   209, -1035, -1035,
01827      222, -1035, -1035,   229, -1035, -1035,   177,   353,   -13, -1035,
01828    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01829    -1035, -1035,   330, -1035,   332, -1035,   334, -1035,   336, -1035,
01830      338, -1035,   190,   -21,   340,   264, -1035, -1035,   224,   346,
01831    -1035,   360, -1035, -1035, -1035, -1035, -1035, -1035, -1035,   346,
01832    -1035, -1035, -1035, -1035,   346, -1035, -1035, -1035, -1035,   427,
01833    -1035,    79, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01834    -1035, -1035, -1035, -1035, -1035, -1035, -1035,   362,   289, -1035,
01835    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01836    -1035,   335,   348, -1035, -1035,    45, -1035, -1035, -1035, -1035,
01837       65, -1035, -1035, -1035, -1035,     6, -1035, -1035, -1035, -1035,
01838       14, -1035, -1035, -1035, -1035,    24, -1035, -1035, -1035, -1035,
01839      344, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01840    -1035, -1035, -1035, -1035, -1035, -1035,   347, -1035,   355, -1035,
01841      357, -1035,   359, -1035,   361, -1035,   428, -1035, -1035, -1035,
01842    -1035, -1035, -1035, -1035,    68, -1035,   190,    -7, -1035, -1035,
01843    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01844    -1035, -1035, -1035, -1035,   383, -1035, -1035,   385, -1035,   391,
01845    -1035, -1035,   397, -1035, -1035,   350,   351, -1035, -1035, -1035,
01846    -1035, -1035,   363,   172, -1035, -1035, -1035,   365,   274, -1035,
01847    -1035,   381, -1035, -1035,   387, -1035, -1035,   319, -1035, -1035,
01848      329, -1035,   349, -1035,   151, -1035, -1035, -1035, -1035,    19,
01849    -1035, -1035, -1035, -1035,    16, -1035, -1035, -1035, -1035,    28,
01850    -1035, -1035, -1035, -1035,    47, -1035, -1035, -1035, -1035,    57,
01851    -1035, -1035, -1035, -1035, -1035,   367, -1035,   451,   203,   453,
01852      203,   457,   203,   459, -1035,   369, -1035, -1035, -1035,   414,
01853      -50, -1035, -1035,   468,   469,   470,   471, -1035, -1035, -1035,
01854    -1035, -1035, -1035, -1035,   371,   274,   343, -1035, -1035,   476,
01855    -1035, -1035, -1035, -1035, -1035, -1035, -1035,   374, -1035, -1035,
01856      477, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01857    -1035, -1035, -1035, -1035, -1035, -1035,   376,   377, -1035, -1035,
01858    -1035, -1035,   356, -1035, -1035,   358, -1035, -1035,   372, -1035,
01859    -1035,   423, -1035, -1035,   395,   478,   -47, -1035, -1035, -1035,
01860    -1035,   346, -1035, -1035, -1035, -1035,   346, -1035, -1035, -1035,
01861    -1035,   346, -1035, -1035, -1035, -1035,   482, -1035,   173, -1035,
01862    -1035, -1035, -1035, -1035, -1035, -1035, -1035,   472,   483,    35,
01863    -1035, -1035, -1035, -1035,   389, -1035, -1035, -1035, -1035, -1035,
01864    -1035, -1035, -1035, -1035, -1035, -1035, -1035,   373,   274, -1035,
01865    -1035, -1035, -1035, -1035, -1035, -1035, -1035,   354,   364, -1035,
01866    -1035,   339, -1035,   345, -1035,   352, -1035, -1035,   366, -1035,
01867    -1035,   399,   400, -1035, -1035, -1035,   375, -1035,   368, -1035,
01868    -1035,   491, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01869    -1035, -1035,   402, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01870    -1035, -1035,   207, -1035, -1035, -1035, -1035, -1035, -1035,   378,
01871      274,   498,   -48, -1035, -1035, -1035, -1035, -1035,   409,   263,
01872      504, -1035, -1035,    15, -1035,   508, -1035, -1035, -1035, -1035,
01873    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,   405, -1035,
01874    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,   401,   393,
01875    -1035, -1035, -1035,   370,   380,   382,   263, -1035, -1035, -1035,
01876    -1035, -1035, -1035, -1035, -1035, -1035,   403, -1035, -1035, -1035,
01877    -1035, -1035, -1035,   384,   220, -1035,   413,   493,    40, -1035,
01878    -1035, -1035, -1035,   158, -1035, -1035, -1035, -1035, -1035, -1035,
01879    -1035, -1035,    61, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01880    -1035, -1035, -1035, -1035,   441,   499, -1035,   386, -1035, -1035,
01881    -1035,   425, -1035, -1035,   407,   411, -1035, -1035,   515, -1035,
01882    -1035, -1035,   410,   213, -1035, -1035, -1035, -1035,   517, -1035,
01883      412,   509, -1035,   388, -1035,   521,   379, -1035, -1035, -1035,
01884    -1035, -1035, -1035, -1035,   390,   226,   474, -1035, -1035, -1035,
01885    -1035,   418,   510, -1035,   392, -1035,   522,   416, -1035, -1035,
01886    -1035, -1035, -1035, -1035,   420,   424,   503,   422, -1035, -1035,
01887    -1035, -1035, -1035, -1035, -1035, -1035, -1035,   394, -1035,   525,
01888      450, -1035, -1035, -1035, -1035, -1035, -1035,   445, -1035,   532,
01889    -1035, -1035, -1035,   464,   503, -1035,   396, -1035, -1035,   531,
01890      206, -1035, -1035, -1035, -1035, -1035, -1035,   461, -1035,   537,
01891    -1035, -1035,   444, -1035,   398, -1035, -1035, -1035,   503,   404,
01892    -1035,   545,   161, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01893      440,   448, -1035, -1035, -1035, -1035,   449, -1035,   406, -1035,
01894    -1035, -1035, -1035,   548,   -42, -1035, -1035, -1035, -1035,   454,
01895      408, -1035,   261, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01896      430,   429, -1035,   530, -1035, -1035, -1035,   415,   220, -1035,
01897    -1035, -1035,   556,     0, -1035, -1035, -1035, -1035,   417,   160,
01898    -1035, -1035, -1035,   431,   465, -1035,   535, -1035, -1035, -1035,
01899      -19, -1035, -1035, -1035, -1035, -1035, -1035,   433,   442, -1035,
01900      536, -1035, -1035, -1035, -1035,   557,   119, -1035, -1035, -1035,
01901    -1035, -1035, -1035, -1035, -1035, -1035,   419,   187, -1035, -1035,
01902    -1035,   481,   492, -1035,   540,    53, -1035, -1035, -1035, -1035,
01903    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,   560,
01904      421,   235, -1035, -1035,   500,   443, -1035,   542, -1035, -1035,
01905    -1035,   426,   568,   432, -1035,   570, -1035, -1035, -1035,   467,
01906      243, -1035, -1035, -1035, -1035,   -29, -1035, -1035, -1035, -1035,
01907    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,   566,
01908    -1035, -1035,   484,   486, -1035,   550,   575,   434, -1035,   -61,
01909    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01910    -1035, -1035,   580,   579,    11, -1035, -1035, -1035, -1035, -1035,
01911    -1035, -1035,   438, -1035,   534, -1035, -1035, -1035, -1035,   487,
01912      519, -1035,   567,   591,   436, -1035, -1035, -1035,   435, -1035,
01913    -1035, -1035,   501, -1035, -1035,   494,   446, -1035,   576,   598,
01914      603, -1035, -1035, -1035, -1035,   447, -1035, -1035, -1035, -1035,
01915    -1035, -1035,   437, -1035, -1035, -1035,   533,   605,    31, -1035,
01916    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,   439, -1035,
01917      452, -1035, -1035,   608,    99, -1035, -1035, -1035, -1035, -1035,
01918    -1035, -1035, -1035, -1035, -1035, -1035,   516, -1035,   611,    10,
01919    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,   541, -1035,
01920    -1035, -1035, -1035, -1035,   458, -1035, -1035, -1035, -1035, -1035
01921 };
01922 
01923 /* YYPGOTO[NTERM-NUM].  */
01924 static const yytype_int16 yypgoto[] =
01925 {
01926    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01927    -1035, -1035, -1035,   569, -1035, -1035, -1035, -1035,   526, -1035,
01928    -1035, -1035, -1035, -1035,   455, -1035, -1035, -1035, -1035, -1035,
01929    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01930    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01931    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01932    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01933    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01934      341, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01935    -1035, -1035, -1035,   549, -1035, -1035, -1035, -1035, -1035, -1035,
01936    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01937    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01938    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01939    -1035, -1035, -1035, -1035,   246, -1035, -1035, -1035, -1035, -1035,
01940    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01941    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01942    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01943    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01944    -1035,   127, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01945    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01946    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01947    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01948    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,    49, -1035,
01949    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01950    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01951    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01952    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01953    -1035,    33, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01954    -1035, -1035, -1035, -1035, -1035, -1035, -1035,   178, -1035, -1035,
01955    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,   -46,
01956    -1035, -1035, -1035, -1035, -1035,  -109, -1035, -1035, -1035, -1035,
01957    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01958    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01959    -1035, -1035,  -250, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01960    -1035, -1035, -1035, -1035, -1035,  -286, -1035, -1035, -1035, -1035,
01961    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01962     -331, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01963    -1035, -1035, -1035, -1035, -1035,  -421, -1035, -1035, -1035, -1035,
01964    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01965    -1035, -1035, -1035, -1035, -1035, -1035, -1035,  -268, -1035, -1035,
01966    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01967    -1035, -1035, -1035,  -366, -1035, -1035, -1035, -1035, -1035, -1035,
01968    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01969    -1035, -1035, -1035, -1035, -1035,  -304, -1035, -1035, -1035, -1035,
01970    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01971     -401, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,
01972    -1035, -1035, -1035, -1035, -1035,  -211, -1035, -1035, -1035, -1035,
01973    -1035, -1035, -1035, -1035, -1035,  -339, -1035, -1035, -1035, -1035,
01974    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,   -26, -1035,
01975    -1035, -1035, -1035, -1035, -1035, -1035, -1035, -1035,   -99, -1035,
01976    -1035, -1035,  -686, -1035, -1035, -1035,   -78, -1035, -1035, -1035,
01977     -381, -1035, -1035, -1035,  -603, -1035, -1035, -1035,  -157, -1035,
01978    -1035, -1035,  -464, -1035, -1035, -1035,   -82, -1035, -1035, -1035,
01979    -1035, -1035, -1035, -1035, -1035,  -805,  -254,  -291, -1035,  -241,
01980    -1035,  -587,  -233, -1034,  -140, -1035, -1035
01981 };
01982 
01983 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
01984    positive, shift that token.  If negative, reduce the rule which
01985    number is the opposite.  If zero, do what YYDEFACT says.
01986    If YYTABLE_NINF, syntax error.  */
01987 #define YYTABLE_NINF -1
01988 static const yytype_uint16 yytable[] =
01989 {
01990      197,   560,   243,   165,   248,   163,   368,   484,   719,   840,
01991      257,   370,   395,   194,  1102,  1063,  1103,  1104,   398,   656,
01992      503,   683,   684,   500,   226,   191,   179,   182,   263,   264,
01993      362,   363,   506,   871,   312,  1102,   679,  1103,  1104,   203,
01994       64,   313,   176,    29,   729,   185,  1053,  1037,   188,   389,
01995      447,   509,   680,    65,   962,    66,   901,    67,     4,    68,
01996     1119,   512,   265,   600,   544,   314,   204,   666,   205,    17,
01997       18,   392,   403,   679,   448,  1125,   939,   601,  1038,   234,
01998      667,   242,    30,   247,   559,   940,    31,   315,    32,   680,
01999       33,   575,     1,   279,   206,   316,   280,    69,   576,  1054,
02000       89,    90,    34,  1102,   618,  1103,  1104,   266,   207,   317,
02001      510,   318,    35,     5,    36,   902,   379,   448,     7,   738,
02002       37,   739,   740,   319,     9,    70,   208,   320,   390,   321,
02003     1105,   322,   209,   323,   186,   177,    38,   730,   384,   189,
02004      311,   963,   183,   180,   513,   507,   393,   401,   192,   504,
02005      501,  1000,   195,   396,   685,   399,  1018,   227,    13,    65,
02006     1001,    66,   792,    67,    14,    68,   664,   258,   259,   260,
02007      261,  1123,  1064,    24,    25,   833,  1117,   975,    30,   976,
02008      977,    22,    31,    86,    32,   373,    33,   617,   374,    62,
02009      741,   149,    89,    90,   469,   470,    60,    61,    34,   857,
02010      480,   481,   932,    69,    89,    90,   469,   470,    35,   140,
02011       36,   146,   453,   454,   455,   456,    37,   643,   644,    89,
02012       90,   469,   470,   256,   105,   106,   458,   480,   481,   229,
02013      978,    70,    38,   168,   717,    89,    90,   645,   646,    89,
02014       90,   231,   232,    91,    92,   231,   232,   110,   111,   663,
02015      645,   646,    89,    90,   469,   470,   169,   494,    89,    90,
02016      495,   815,    91,    92,   446,   239,   444,    89,    90,   469,
02017      470,   738,   244,   739,   740,   480,   481,   352,   249,   589,
02018      353,   525,   590,   530,   273,   535,   354,    88,   582,   732,
02019      271,   355,   733,   584,   515,    89,    90,   272,   586,    91,
02020       92,   975,   274,   976,   977,   472,    89,    90,   469,   470,
02021      483,   115,   116,   721,   480,   481,   848,   275,   878,   849,
02022      277,   879,   120,   121,   125,   126,   130,   131,   135,   136,
02023      144,   145,   151,   152,   170,   171,   198,   199,   251,   252,
02024      285,   286,   290,   291,   295,   296,   300,   301,   305,   306,
02025      347,   348,   362,   363,   404,   405,   276,   409,   410,   278,
02026      524,   361,   529,   366,   534,   414,   415,   419,   420,   424,
02027      425,   429,   430,   466,   467,   477,   478,   516,   517,   538,
02028      539,   554,   555,   612,   613,   632,   633,   558,   658,   659,
02029      698,   699,   703,   704,   712,   713,   756,   757,   777,   778,
02030      787,   788,   800,   801,   820,   821,   842,   843,   864,   865,
02031      605,   606,   607,   608,   872,   873,   893,   894,   910,   911,
02032      915,   916,   610,   266,   611,   926,   927,   945,   946,   985,
02033      986,  1009,  1010,   371,   619,   953,  1024,  1025,  1030,  1031,
02034     1050,  1051,  1074,  1075,   385,  1078,  1079,  1094,  1095,  1109,
02035     1110,   380,   457,   434,   279,   631,   459,   373,   460,   462,
02036      640,   521,   461,   526,   489,   657,   491,   531,   490,   536,
02037      492,   543,   493,   993,   550,   551,   552,   553,   561,   562,
02038      564,   563,   573,   494,   574,   565,   572,   569,   587,   571,
02039      616,   570,   623,   598,   641,   595,   609,  1017,   637,   620,
02040      624,   682,   575,   625,   665,   672,   589,   934,   627,   642,
02041      681,   688,   689,   723,   726,   626,   691,   752,   952,   749,
02042      766,   667,   761,   769,   770,   690,   773,   782,   805,   815,
02043      796,   825,   695,   793,   826,   783,   836,   847,   762,   767,
02044      855,   709,   710,   795,   655,   733,   831,   833,   711,   857,
02045      860,   877,   662,   885,   900,   889,   992,   818,   848,   924,
02046      907,   678,   938,   901,   958,   970,   996,   973,   939,   998,
02047     1007,  1021,   806,  1019,  1029,  1033,  1044,   748,  1035,  1047,
02048     1016,  1049,   812,   811,  1000,  1062,   755,   922,   956,   879,
02049     1060,  1045,   968,  1068,  1069,  1037,  1071,  1073,   678,  1067,
02050     1084,  1085,   916,   963,  1089,  1087,  1054,  1090,  1092,    87,
02051     1100,  1101,   776,  1115,  1116,  1121,   720,  1122,  1127,  1129,
02052      175,   150,   463,   386,   566,   628,   763,   621,   545,   794,
02053      708,   923,   969,   799,  1020,  1086,   957,  1046,   997,  1070,
02054      886,  1036,   810,   692,   768,   954,   994,   935,     0,     0,
02055        0,     0,     0,     0,     0,     0,   819,     0,     0,     0,
02056        0,     0,     0,     0,     0,   830,     0,     0,     0,     0,
02057        0,     0,     0,     0,     0,   841,     0,     0,     0,     0,
02058        0,     0,     0,     0,     0,   854,     0,   791,     0,     0,
02059        0,     0,     0,   863,     0,     0,     0,     0,     0,     0,
02060        0,     0,     0,     0,     0,     0,     0,   884,     0,     0,
02061        0,     0,     0,     0,     0,     0,     0,   892,     0,     0,
02062        0,     0,     0,   381,     0,     0,     0,     0,     0,     0,
02063        0,     0,     0,     0,     0,     0,     0,   921,     0,     0,
02064        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02065        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02066      955,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02067        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02068        0,     0,     0,     0,   972,     0,     0,     0,     0,     0,
02069        0,     0,     0,     0,     0,     0,     0,     0,   995,     0,
02070        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02071      933,     0,     0,     0,     0,     0,     0,     0,  1006,     0,
02072        0,   951,     0,     0,     0,     0,     0,     0,     0,     0,
02073     1023,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02074        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02075        0,     0,     0,     0,     0,     0,     0,     0,  1043,   991,
02076        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02077        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02078        0,  1059,     0,  1015,     0,     0,     0,     0,     0,  1066,
02079        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02080        0,     0,     0,     0,     0,     0,     0,  1077,     0,  1083,
02081        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02082        0,     0,  1091,     0,     0,     0,     0,     0,     0,     0,
02083        0,  1093,     0,  1099,     0,     0,     0,     0,     0,     0,
02084        0,     0,     0,     0,     0,     0,     0,  1108,     0,  1114,
02085        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02086        0,  1120,     0,     0,     0,     0,     0,     0,     0,     0,
02087        0,     0,     0,     0,     0,     0,  1126,     0,     0,     0,
02088        0,     0,  1128
02089 };
02090 
02091 static const yytype_int16 yycheck[] =
02092 {
02093      140,   465,   159,    85,   161,    83,   239,   388,   694,   814,
02094        8,   244,     6,     4,     4,     4,     6,     7,     4,   622,
02095        4,     6,     7,     4,     4,     4,     4,     4,   168,   169,
02096        6,     7,     4,   838,    55,     4,   639,     6,     7,    53,
02097       51,    62,     4,    49,     4,     4,   107,    76,     4,     4,
02098       57,     4,   639,    64,    73,    66,    98,    68,     0,    70,
02099     1094,     4,    89,    28,   114,    86,    80,   115,    82,    10,
02100       11,     6,   305,   676,   124,  1109,    76,    42,   107,   157,
02101      128,   159,    88,   161,   465,    85,    92,   108,    94,   676,
02102       96,   138,    44,   106,   108,   116,   109,   108,   145,   160,
02103       32,    33,   108,     4,   568,     6,     7,   134,   122,   130,
02104       63,   132,   118,    46,   120,   157,   256,   124,    10,    58,
02105      126,    60,    61,   144,    48,   136,   140,   148,    83,   150,
02106       99,   152,   146,   154,    93,    97,   142,    97,   278,    95,
02107      222,   160,   119,   121,    87,   117,    81,   123,   127,   133,
02108      131,    98,   143,   147,   139,   141,   961,   137,    47,    64,
02109      107,    66,   765,    68,    50,    70,   630,   165,   166,   167,
02110      168,   161,   161,    10,    11,    15,    77,    58,    88,    60,
02111       61,    52,    92,    49,    94,   106,    96,   568,   109,    54,
02112      129,    51,    32,    33,    34,    35,    10,    11,   108,    12,
02113       40,    41,   888,   108,    32,    33,    34,    35,   118,    19,
02114      120,    56,   352,   353,   354,   355,   126,    10,    11,    32,
02115       33,    34,    35,     6,    10,    11,   366,    40,    41,    10,
02116      111,   136,   142,     3,    14,    32,    33,    30,    31,    32,
02117       33,    38,    39,    36,    37,    38,    39,    10,    11,   630,
02118       30,    31,    32,    33,    34,    35,     3,   106,    32,    33,
02119      109,    26,    36,    37,   346,    10,   344,    32,    33,    34,
02120       35,    58,    10,    60,    61,    40,    41,    13,    10,   106,
02121       16,   438,   109,   440,   119,   442,    22,    24,   521,   131,
02122       97,    27,   134,   526,   434,    32,    33,   121,   531,    36,
02123       37,    58,    93,    60,    61,   383,    32,    33,    34,    35,
02124      388,    10,    11,   694,    40,    41,   110,    95,   157,   113,
02125      143,   160,    10,    11,    10,    11,    10,    11,    10,    11,
02126       10,    11,    10,    11,    10,    11,    10,    11,    10,    11,
02127       10,    11,    10,    11,    10,    11,    10,    11,    10,    11,
02128       10,    11,     6,     7,    10,    11,   127,    10,    11,     6,
02129      438,   137,   440,     3,   442,    10,    11,    10,    11,    10,
02130       11,    10,    11,    10,    11,    10,    11,    10,    11,    10,
02131       11,    10,    11,    10,    11,    10,    11,   465,    10,    11,
02132       10,    11,    10,    11,    10,    11,    10,    11,    10,    11,
02133       10,    11,    10,    11,    10,    11,    10,    11,    10,    11,
02134      550,   551,   552,   553,    10,    11,    10,    11,    10,    11,
02135      159,   160,   562,   134,   564,    10,    11,    10,    11,    10,
02136       11,    10,    11,     6,   574,   899,    10,    11,     6,     7,
02137        6,     7,     6,     7,   109,    10,    11,    10,    11,    10,
02138       11,    89,    69,    25,   106,   595,    71,   106,    67,   109,
02139      600,    10,    65,    10,    83,   622,   147,    10,    81,    10,
02140      141,    57,   123,   937,     6,     6,     6,     6,   135,     3,
02141        3,   107,    87,   106,     6,   109,    63,   131,     6,   117,
02142      568,   133,   153,    10,     3,    23,   107,   961,   130,   145,
02143      155,   641,   138,   151,     6,    96,   106,   888,   109,   107,
02144        6,     3,   107,   100,    21,   149,   115,    18,   899,    78,
02145        5,   128,    97,     6,   112,   665,    17,     6,     6,    26,
02146       20,     6,   162,    59,    84,   156,    72,     6,   131,   129,
02147       79,   681,   139,   125,   622,   134,   101,    15,   688,    12,
02148      106,     6,   630,   113,     6,   106,   937,   135,   110,    29,
02149      106,   639,     6,    98,    29,    29,    85,    10,    76,    29,
02150       10,    29,   156,    73,     6,     5,    10,   717,   111,    29,
02151      961,     6,   158,   163,    98,     6,   726,   157,   157,   160,
02152       10,   107,   159,    59,   107,    76,    29,     6,   676,   161,
02153       99,   107,   160,   160,     6,    29,   160,     4,   161,    40,
02154       77,     6,   752,   161,     6,    99,   694,     6,    77,   161,
02155       94,    72,   376,   282,   497,   592,   735,   578,   450,   769,
02156      676,   881,   918,   773,   965,  1056,   904,  1003,   942,  1040,
02157      851,   980,   782,   669,   743,   899,   937,   888,    -1,    -1,
02158       -1,    -1,    -1,    -1,    -1,    -1,   796,    -1,    -1,    -1,
02159       -1,    -1,    -1,    -1,    -1,   805,    -1,    -1,    -1,    -1,
02160       -1,    -1,    -1,    -1,    -1,   815,    -1,    -1,    -1,    -1,
02161       -1,    -1,    -1,    -1,    -1,   825,    -1,   765,    -1,    -1,
02162       -1,    -1,    -1,   833,    -1,    -1,    -1,    -1,    -1,    -1,
02163       -1,    -1,    -1,    -1,    -1,    -1,    -1,   847,    -1,    -1,
02164       -1,    -1,    -1,    -1,    -1,    -1,    -1,   857,    -1,    -1,
02165       -1,    -1,    -1,   268,    -1,    -1,    -1,    -1,    -1,    -1,
02166       -1,    -1,    -1,    -1,    -1,    -1,    -1,   877,    -1,    -1,
02167       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02168       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02169      900,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02170       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02171       -1,    -1,    -1,    -1,   924,    -1,    -1,    -1,    -1,    -1,
02172       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   938,    -1,
02173       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02174      888,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   958,    -1,
02175       -1,   899,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02176      970,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02177       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02178       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   998,   937,
02179       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02180       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02181       -1,  1021,    -1,   961,    -1,    -1,    -1,    -1,    -1,  1029,
02182       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02183       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1047,    -1,  1049,
02184       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02185       -1,    -1,  1062,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02186       -1,  1071,    -1,  1073,    -1,    -1,    -1,    -1,    -1,    -1,
02187       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1087,    -1,  1089,
02188       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02189       -1,  1101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02190       -1,    -1,    -1,    -1,    -1,    -1,  1116,    -1,    -1,    -1,
02191       -1,    -1,  1122
02192 };
02193 
02194 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
02195    symbol of state STATE-NUM.  */
02196 static const yytype_uint16 yystos[] =
02197 {
02198        0,    44,   170,   171,     0,    46,   172,    10,   173,    48,
02199      174,   175,   176,    47,    50,   255,   256,    10,    11,   177,
02200      178,   179,    52,   309,    10,    11,   257,   258,   259,    49,
02201       88,    92,    94,    96,   108,   118,   120,   126,   142,   180,
02202      181,   182,   183,   184,   199,   200,   205,   206,   211,   212,
02203      217,   218,   223,   224,   229,   230,   235,   236,   241,   242,
02204       10,    11,    54,   356,    51,    64,    66,    68,    70,   108,
02205      136,   260,   261,   262,   263,   264,   269,   270,   276,   277,
02206      283,   284,   290,   291,   295,   296,    49,   182,    24,    32,
02207       33,    36,    37,   185,   186,   187,   675,   676,   677,   678,
02208      683,   684,   685,   686,   710,    10,    11,   201,   202,   203,
02209       10,    11,   207,   208,   209,    10,    11,   213,   214,   215,
02210       10,    11,   219,   220,   221,    10,    11,   225,   226,   227,
02211       10,    11,   231,   232,   233,    10,    11,   237,   238,   239,
02212       19,   243,   695,   310,    10,    11,    56,   446,   447,    51,
02213      262,    10,    11,   265,   266,   267,   271,   272,   278,   279,
02214      285,   286,   292,   675,   297,   695,   713,   714,     3,     3,
02215       10,    11,   188,   189,   190,   187,     4,    97,   204,     4,
02216      121,   210,     4,   119,   216,     4,    93,   222,     4,    95,
02217      228,     4,   127,   234,     4,   143,   240,   713,    10,    11,
02218      244,   245,   246,    53,    80,    82,   108,   122,   140,   146,
02219      311,   312,   313,   318,   319,   324,   325,   330,   331,   336,
02220      337,   342,   343,   357,   448,   449,     4,   137,   268,    10,
02221      274,    38,    39,   273,   675,   687,   688,   689,   690,    10,
02222      281,   280,   675,   687,    10,   288,   287,   675,   687,    10,
02223      293,    10,    11,   298,   299,   300,     6,     8,   165,   166,
02224      167,   168,   715,   713,   713,    89,   134,   191,   192,   193,
02225      194,    97,   121,   119,    93,    95,   127,   143,     6,   106,
02226      109,   247,   248,   249,   250,    10,    11,   314,   315,   316,
02227       10,    11,   320,   321,   322,    10,    11,   326,   327,   328,
02228       10,    11,   332,   333,   334,    10,    11,   338,   339,   340,
02229      344,   695,    55,    62,    86,   108,   116,   130,   132,   144,
02230      148,   150,   152,   154,   358,   359,   360,   365,   366,   371,
02231      372,   377,   378,   383,   384,   389,   390,   406,   407,   413,
02232      414,   420,   421,   427,   428,   432,   433,    10,    11,   451,
02233      452,   453,    13,    16,    22,    27,   450,   696,   697,   698,
02234      699,   137,     6,     7,   275,   711,     3,   282,   711,   289,
02235      711,     6,   294,   106,   109,   301,   302,   303,   304,   713,
02236       89,   193,   195,   196,   713,   109,   249,   251,   252,     4,
02237       83,   317,     6,    81,   323,     6,   147,   329,     4,   141,
02238      335,   123,   341,   711,    10,    11,   345,   346,   347,    10,
02239       11,   361,   362,   363,    10,    11,   367,   368,   369,    10,
02240       11,   373,   374,   375,    10,    11,   379,   380,   381,    10,
02241       11,   385,   386,   387,    25,   391,   707,   408,   409,   415,
02242      416,   422,   423,   429,   675,   434,   695,    57,   124,   454,
02243      455,   456,   457,   713,   713,   713,   713,    69,   713,    71,
02244       67,    65,   109,   303,   305,   306,    10,    11,   198,    34,
02245       35,   197,   675,   679,   680,   681,   682,    10,    11,   254,
02246       40,    41,   253,   675,   679,   691,   692,   693,   694,    83,
02247       81,   147,   141,   123,   106,   109,   348,   349,   350,   351,
02248        4,   131,   364,     4,   133,   370,     4,   117,   376,     4,
02249       63,   382,     4,    87,   388,   713,    10,    11,   392,   393,
02250      394,    10,   411,   410,   675,   687,    10,   418,   417,   675,
02251      687,    10,   425,   424,   675,   687,    10,   430,    10,    11,
02252      435,   436,   437,    57,   114,   456,   649,   650,   458,   459,
02253        6,     6,     6,     6,    10,    11,   308,   307,   675,   679,
02254      691,   135,     3,   107,     3,   109,   350,   352,   353,   131,
02255      133,   117,    63,    87,     6,   138,   145,   395,   396,   397,
02256      398,   412,   711,   419,   711,   426,   711,     6,   431,   106,
02257      109,   438,   439,   440,   441,    23,   651,   709,    10,   463,
02258       28,    42,   460,   461,   462,   713,   713,   713,   713,   107,
02259      713,   713,    10,    11,   355,   354,   675,   679,   691,   713,
02260      145,   397,   399,   153,   155,   151,   149,   109,   440,   442,
02261      443,   713,    10,    11,   652,   653,   654,   130,   464,   465,
02262      713,     3,   107,    10,    11,    30,    31,   400,   401,   402,
02263      403,   671,   672,   673,   674,   675,   683,   687,    10,    11,
02264      445,   444,   675,   679,   691,     6,   115,   128,   655,   656,
02265      657,   658,    96,   480,   481,   466,   467,   468,   675,   683,
02266      710,     6,   713,     6,     7,   139,   404,   405,     3,   107,
02267      713,   115,   657,   659,   660,   162,   486,   487,    10,    11,
02268      482,   483,   484,    10,    11,   469,   470,   471,   468,   713,
02269      139,   713,    10,    11,   662,   663,   664,    14,   661,   671,
02270      675,   679,   708,   100,   551,   552,    21,   488,   700,     4,
02271       97,   485,   131,   134,   472,   473,   474,   475,    58,    60,
02272       61,   129,   665,   666,   667,   668,   669,   670,   713,    78,
02273      589,   590,    18,   553,   701,   713,    10,    11,   489,   490,
02274      491,    97,   131,   474,   476,   477,     5,   129,   667,     6,
02275      112,   626,   627,    17,   591,   702,   713,    10,    11,   554,
02276      555,   556,     6,   156,   492,   493,   494,    10,    11,   479,
02277      478,   675,   683,    59,   713,   125,    20,   628,   703,   713,
02278       10,    11,   592,   593,   594,     6,   156,   557,   558,   559,
02279      713,   163,   158,   506,   507,    26,   495,   704,   135,   713,
02280       10,    11,   629,   630,   631,     6,    84,   595,   596,   597,
02281      713,   101,   571,    15,   560,   705,    72,   521,   522,   508,
02282      704,   713,    10,    11,   496,   497,   498,     6,   110,   113,
02283      632,   633,   634,   635,   713,    79,   608,    12,   598,   706,
02284      106,   572,   573,   713,    10,    11,   561,   562,   563,   533,
02285      523,   704,    10,    11,   509,   510,   511,     6,   157,   160,
02286      499,   500,   501,   502,   713,   113,   634,   636,   637,   106,
02287      609,   610,   713,    10,    11,   599,   600,   601,   574,   575,
02288        6,    98,   157,   564,   565,   566,   567,   106,   534,   535,
02289       10,    11,   524,   525,   526,   159,   160,   512,   513,   514,
02290      515,   713,   157,   501,    29,   503,    10,    11,   639,   640,
02291      641,   638,   671,   675,   679,   708,   611,   612,     6,    76,
02292       85,   602,   603,   604,   605,    10,    11,   577,   578,   579,
02293      576,   675,   679,   691,   705,   713,   157,   566,    29,   568,
02294      536,   537,    73,   160,   527,   528,   529,   530,   159,   514,
02295       29,   516,   713,    10,   504,    58,    60,    61,   111,   642,
02296      643,   644,   645,   646,   647,    10,    11,   614,   615,   616,
02297      613,   675,   679,   691,   706,   713,    85,   604,    29,   606,
02298       98,   107,   580,   581,   582,   583,   713,    10,   569,    10,
02299       11,   539,   540,   541,   538,   675,   679,   691,   704,    73,
02300      529,    29,   531,   713,    10,    11,   517,   518,   519,     6,
02301        6,     7,   505,     5,   648,   111,   644,    76,   107,   617,
02302      618,   619,   620,   713,    10,   107,   582,    29,   584,     6,
02303        6,     7,   570,   107,   160,   542,   543,   544,   545,   713,
02304       10,   532,     6,     4,   161,   520,   713,   161,    59,   107,
02305      619,    29,   621,     6,     6,     7,   607,   713,    10,    11,
02306      585,   586,   587,   713,    99,   107,   544,    29,   546,     6,
02307        4,   713,   161,   713,    10,    11,   622,   623,   624,   713,
02308       77,     6,     4,     6,     7,    99,   588,   712,   713,    10,
02309       11,   547,   548,   549,   713,   161,     6,    77,   625,   712,
02310      713,    99,     6,   161,   550,   712,   713,    77,   713,   161
02311 };
02312 
02313 #define yyerrok         (yyerrstatus = 0)
02314 #define yyclearin       (yychar = YYEMPTY)
02315 #define YYEMPTY         (-2)
02316 #define YYEOF           0
02317 
02318 #define YYACCEPT        goto yyacceptlab
02319 #define YYABORT         goto yyabortlab
02320 #define YYERROR         goto yyerrorlab
02321 
02322 
02323 /* Like YYERROR except do call yyerror.  This remains here temporarily
02324    to ease the transition to the new meaning of YYERROR, for GCC.
02325    Once GCC version 2 has supplanted version 1, this can go.  */
02326 
02327 #define YYFAIL          goto yyerrlab
02328 
02329 #define YYRECOVERING()  (!!yyerrstatus)
02330 
02331 #define YYBACKUP(Token, Value)                                  \
02332 do                                                              \
02333   if (yychar == YYEMPTY && yylen == 1)                          \
02334     {                                                           \
02335       yychar = (Token);                                         \
02336       yylval = (Value);                                         \
02337       yytoken = YYTRANSLATE (yychar);                           \
02338       YYPOPSTACK (1);                                           \
02339       goto yybackup;                                            \
02340     }                                                           \
02341   else                                                          \
02342     {                                                           \
02343       yyerror (&yylloc, osresult, parserData, YY_("syntax error: cannot back up")); \
02344       YYERROR;                                                  \
02345     }                                                           \
02346 while (YYID (0))
02347 
02348 
02349 #define YYTERROR        1
02350 #define YYERRCODE       256
02351 
02352 
02353 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
02354    If N is 0, then set CURRENT to the empty location which ends
02355    the previous symbol: RHS[0] (always defined).  */
02356 
02357 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
02358 #ifndef YYLLOC_DEFAULT
02359 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
02360     do                                                                  \
02361       if (YYID (N))                                                    \
02362         {                                                               \
02363           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
02364           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
02365           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
02366           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
02367         }                                                               \
02368       else                                                              \
02369         {                                                               \
02370           (Current).first_line   = (Current).last_line   =              \
02371             YYRHSLOC (Rhs, 0).last_line;                                \
02372           (Current).first_column = (Current).last_column =              \
02373             YYRHSLOC (Rhs, 0).last_column;                              \
02374         }                                                               \
02375     while (YYID (0))
02376 #endif
02377 
02378 
02379 /* YY_LOCATION_PRINT -- Print the location on the stream.
02380    This macro was not mandated originally: define only if we know
02381    we won't break user code: when these are the locations we know.  */
02382 
02383 #ifndef YY_LOCATION_PRINT
02384 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
02385 #  define YY_LOCATION_PRINT(File, Loc)                  \
02386      fprintf (File, "%d.%d-%d.%d",                      \
02387               (Loc).first_line, (Loc).first_column,     \
02388               (Loc).last_line,  (Loc).last_column)
02389 # else
02390 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
02391 # endif
02392 #endif
02393 
02394 
02395 /* YYLEX -- calling `yylex' with the right arguments.  */
02396 
02397 #ifdef YYLEX_PARAM
02398 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
02399 #else
02400 # define YYLEX yylex (&yylval, &yylloc, scanner)
02401 #endif
02402 
02403 /* Enable debugging if requested.  */
02404 #if YYDEBUG
02405 
02406 # ifndef YYFPRINTF
02407 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
02408 #  define YYFPRINTF fprintf
02409 # endif
02410 
02411 # define YYDPRINTF(Args)                        \
02412 do {                                            \
02413   if (yydebug)                                  \
02414     YYFPRINTF Args;                             \
02415 } while (YYID (0))
02416 
02417 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
02418 do {                                                                      \
02419   if (yydebug)                                                            \
02420     {                                                                     \
02421       YYFPRINTF (stderr, "%s ", Title);                                   \
02422       yy_symbol_print (stderr,                                            \
02423                   Type, Value, Location, osresult, parserData); \
02424       YYFPRINTF (stderr, "\n");                                           \
02425     }                                                                     \
02426 } while (YYID (0))
02427 
02428 
02429 /*--------------------------------.
02430 | Print this symbol on YYOUTPUT.  |
02431 `--------------------------------*/
02432 
02433 /*ARGSUSED*/
02434 #if (defined __STDC__ || defined __C99__FUNC__ \
02435      || defined __cplusplus || defined _MSC_VER)
02436 static void
02437 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, OSResult *osresult, OSrLParserData *parserData)
02438 #else
02439 static void
02440 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, osresult, parserData)
02441     FILE *yyoutput;
02442     int yytype;
02443     YYSTYPE const * const yyvaluep;
02444     YYLTYPE const * const yylocationp;
02445     OSResult *osresult;
02446     OSrLParserData *parserData;
02447 #endif
02448 {
02449   if (!yyvaluep)
02450     return;
02451   YYUSE (yylocationp);
02452   YYUSE (osresult);
02453   YYUSE (parserData);
02454 # ifdef YYPRINT
02455   if (yytype < YYNTOKENS)
02456     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
02457 # else
02458   YYUSE (yyoutput);
02459 # endif
02460   switch (yytype)
02461     {
02462       default:
02463         break;
02464     }
02465 }
02466 
02467 
02468 /*--------------------------------.
02469 | Print this symbol on YYOUTPUT.  |
02470 `--------------------------------*/
02471 
02472 #if (defined __STDC__ || defined __C99__FUNC__ \
02473      || defined __cplusplus || defined _MSC_VER)
02474 static void
02475 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, OSResult *osresult, OSrLParserData *parserData)
02476 #else
02477 static void
02478 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, osresult, parserData)
02479     FILE *yyoutput;
02480     int yytype;
02481     YYSTYPE const * const yyvaluep;
02482     YYLTYPE const * const yylocationp;
02483     OSResult *osresult;
02484     OSrLParserData *parserData;
02485 #endif
02486 {
02487   if (yytype < YYNTOKENS)
02488     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
02489   else
02490     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
02491 
02492   YY_LOCATION_PRINT (yyoutput, *yylocationp);
02493   YYFPRINTF (yyoutput, ": ");
02494   yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, osresult, parserData);
02495   YYFPRINTF (yyoutput, ")");
02496 }
02497 
02498 /*------------------------------------------------------------------.
02499 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
02500 | TOP (included).                                                   |
02501 `------------------------------------------------------------------*/
02502 
02503 #if (defined __STDC__ || defined __C99__FUNC__ \
02504      || defined __cplusplus || defined _MSC_VER)
02505 static void
02506 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
02507 #else
02508 static void
02509 yy_stack_print (bottom, top)
02510     yytype_int16 *bottom;
02511     yytype_int16 *top;
02512 #endif
02513 {
02514   YYFPRINTF (stderr, "Stack now");
02515   for (; bottom <= top; ++bottom)
02516     YYFPRINTF (stderr, " %d", *bottom);
02517   YYFPRINTF (stderr, "\n");
02518 }
02519 
02520 # define YY_STACK_PRINT(Bottom, Top)                            \
02521 do {                                                            \
02522   if (yydebug)                                                  \
02523     yy_stack_print ((Bottom), (Top));                           \
02524 } while (YYID (0))
02525 
02526 
02527 /*------------------------------------------------.
02528 | Report that the YYRULE is going to be reduced.  |
02529 `------------------------------------------------*/
02530 
02531 #if (defined __STDC__ || defined __C99__FUNC__ \
02532      || defined __cplusplus || defined _MSC_VER)
02533 static void
02534 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, OSResult *osresult, OSrLParserData *parserData)
02535 #else
02536 static void
02537 yy_reduce_print (yyvsp, yylsp, yyrule, osresult, parserData)
02538     YYSTYPE *yyvsp;
02539     YYLTYPE *yylsp;
02540     int yyrule;
02541     OSResult *osresult;
02542     OSrLParserData *parserData;
02543 #endif
02544 {
02545   int yynrhs = yyr2[yyrule];
02546   int yyi;
02547   unsigned long int yylno = yyrline[yyrule];
02548   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
02549              yyrule - 1, yylno);
02550   /* The symbols being reduced.  */
02551   for (yyi = 0; yyi < yynrhs; yyi++)
02552     {
02553       fprintf (stderr, "   $%d = ", yyi + 1);
02554       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
02555                        &(yyvsp[(yyi + 1) - (yynrhs)])
02556                        , &(yylsp[(yyi + 1) - (yynrhs)])                , osresult, parserData);
02557       fprintf (stderr, "\n");
02558     }
02559 }
02560 
02561 # define YY_REDUCE_PRINT(Rule)          \
02562 do {                                    \
02563   if (yydebug)                          \
02564     yy_reduce_print (yyvsp, yylsp, Rule, osresult, parserData); \
02565 } while (YYID (0))
02566 
02567 /* Nonzero means print parse trace.  It is left uninitialized so that
02568    multiple parsers can coexist.  */
02569 int yydebug;
02570 #else /* !YYDEBUG */
02571 # define YYDPRINTF(Args)
02572 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
02573 # define YY_STACK_PRINT(Bottom, Top)
02574 # define YY_REDUCE_PRINT(Rule)
02575 #endif /* !YYDEBUG */
02576 
02577 
02578 /* YYINITDEPTH -- initial size of the parser's stacks.  */
02579 #ifndef YYINITDEPTH
02580 # define YYINITDEPTH 200
02581 #endif
02582 
02583 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
02584    if the built-in stack extension method is used).
02585 
02586    Do not make this value too large; the results are undefined if
02587    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
02588    evaluated with infinite-precision integer arithmetic.  */
02589 
02590 #ifndef YYMAXDEPTH
02591 # define YYMAXDEPTH 10000
02592 #endif
02593 
02594 
02595 
02596 #if YYERROR_VERBOSE
02597 
02598 # ifndef yystrlen
02599 #  if defined __GLIBC__ && defined _STRING_H
02600 #   define yystrlen strlen
02601 #  else
02602 /* Return the length of YYSTR.  */
02603 #if (defined __STDC__ || defined __C99__FUNC__ \
02604      || defined __cplusplus || defined _MSC_VER)
02605 static YYSIZE_T
02606 yystrlen (const char *yystr)
02607 #else
02608 static YYSIZE_T
02609 yystrlen (yystr)
02610     const char *yystr;
02611 #endif
02612 {
02613   YYSIZE_T yylen;
02614   for (yylen = 0; yystr[yylen]; yylen++)
02615     continue;
02616   return yylen;
02617 }
02618 #  endif
02619 # endif
02620 
02621 # ifndef yystpcpy
02622 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
02623 #   define yystpcpy stpcpy
02624 #  else
02625 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
02626    YYDEST.  */
02627 #if (defined __STDC__ || defined __C99__FUNC__ \
02628      || defined __cplusplus || defined _MSC_VER)
02629 static char *
02630 yystpcpy (char *yydest, const char *yysrc)
02631 #else
02632 static char *
02633 yystpcpy (yydest, yysrc)
02634     char *yydest;
02635     const char *yysrc;
02636 #endif
02637 {
02638   char *yyd = yydest;
02639   const char *yys = yysrc;
02640 
02641   while ((*yyd++ = *yys++) != '\0')
02642     continue;
02643 
02644   return yyd - 1;
02645 }
02646 #  endif
02647 # endif
02648 
02649 # ifndef yytnamerr
02650 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
02651    quotes and backslashes, so that it's suitable for yyerror.  The
02652    heuristic is that double-quoting is unnecessary unless the string
02653    contains an apostrophe, a comma, or backslash (other than
02654    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
02655    null, do not copy; instead, return the length of what the result
02656    would have been.  */
02657 static YYSIZE_T
02658 yytnamerr (char *yyres, const char *yystr)
02659 {
02660   if (*yystr == '"')
02661     {
02662       YYSIZE_T yyn = 0;
02663       char const *yyp = yystr;
02664 
02665       for (;;)
02666         switch (*++yyp)
02667           {
02668           case '\'':
02669           case ',':
02670             goto do_not_strip_quotes;
02671 
02672           case '\\':
02673             if (*++yyp != '\\')
02674               goto do_not_strip_quotes;
02675             /* Fall through.  */
02676           default:
02677             if (yyres)
02678               yyres[yyn] = *yyp;
02679             yyn++;
02680             break;
02681 
02682           case '"':
02683             if (yyres)
02684               yyres[yyn] = '\0';
02685             return yyn;
02686           }
02687     do_not_strip_quotes: ;
02688     }
02689 
02690   if (! yyres)
02691     return yystrlen (yystr);
02692 
02693   return yystpcpy (yyres, yystr) - yyres;
02694 }
02695 # endif
02696 
02697 /* Copy into YYRESULT an error message about the unexpected token
02698    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
02699    including the terminating null byte.  If YYRESULT is null, do not
02700    copy anything; just return the number of bytes that would be
02701    copied.  As a special case, return 0 if an ordinary "syntax error"
02702    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
02703    size calculation.  */
02704 static YYSIZE_T
02705 yysyntax_error (char *yyresult, int yystate, int yychar)
02706 {
02707   int yyn = yypact[yystate];
02708 
02709   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
02710     return 0;
02711   else
02712     {
02713       int yytype = YYTRANSLATE (yychar);
02714       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
02715       YYSIZE_T yysize = yysize0;
02716       YYSIZE_T yysize1;
02717       int yysize_overflow = 0;
02718       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
02719       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
02720       int yyx;
02721 
02722 # if 0
02723       /* This is so xgettext sees the translatable formats that are
02724          constructed on the fly.  */
02725       YY_("syntax error, unexpected %s");
02726       YY_("syntax error, unexpected %s, expecting %s");
02727       YY_("syntax error, unexpected %s, expecting %s or %s");
02728       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
02729       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
02730 # endif
02731       char *yyfmt;
02732       char const *yyf;
02733       static char const yyunexpected[] = "syntax error, unexpected %s";
02734       static char const yyexpecting[] = ", expecting %s";
02735       static char const yyor[] = " or %s";
02736       char yyformat[sizeof yyunexpected
02737                     + sizeof yyexpecting - 1
02738                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
02739                        * (sizeof yyor - 1))];
02740       char const *yyprefix = yyexpecting;
02741 
02742       /* Start YYX at -YYN if negative to avoid negative indexes in
02743          YYCHECK.  */
02744       int yyxbegin = yyn < 0 ? -yyn : 0;
02745 
02746       /* Stay within bounds of both yycheck and yytname.  */
02747       int yychecklim = YYLAST - yyn + 1;
02748       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
02749       int yycount = 1;
02750 
02751       yyarg[0] = yytname[yytype];
02752       yyfmt = yystpcpy (yyformat, yyunexpected);
02753 
02754       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
02755         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
02756           {
02757             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
02758               {
02759                 yycount = 1;
02760                 yysize = yysize0;
02761                 yyformat[sizeof yyunexpected - 1] = '\0';
02762                 break;
02763               }
02764             yyarg[yycount++] = yytname[yyx];
02765             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
02766             yysize_overflow |= (yysize1 < yysize);
02767             yysize = yysize1;
02768             yyfmt = yystpcpy (yyfmt, yyprefix);
02769             yyprefix = yyor;
02770           }
02771 
02772       yyf = YY_(yyformat);
02773       yysize1 = yysize + yystrlen (yyf);
02774       yysize_overflow |= (yysize1 < yysize);
02775       yysize = yysize1;
02776 
02777       if (yysize_overflow)
02778         return YYSIZE_MAXIMUM;
02779 
02780       if (yyresult)
02781         {
02782           /* Avoid sprintf, as that infringes on the user's name space.
02783              Don't have undefined behavior even if the translation
02784              produced a string with the wrong number of "%s"s.  */
02785           char *yyp = yyresult;
02786           int yyi = 0;
02787           while ((*yyp = *yyf) != '\0')
02788             {
02789               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
02790                 {
02791                   yyp += yytnamerr (yyp, yyarg[yyi++]);
02792                   yyf += 2;
02793                 }
02794               else
02795                 {
02796                   yyp++;
02797                   yyf++;
02798                 }
02799             }
02800         }
02801       return yysize;
02802     }
02803 }
02804 #endif /* YYERROR_VERBOSE */
02805 
02806 
02807 /*-----------------------------------------------.
02808 | Release the memory associated to this symbol.  |
02809 `-----------------------------------------------*/
02810 
02811 /*ARGSUSED*/
02812 #if (defined __STDC__ || defined __C99__FUNC__ \
02813      || defined __cplusplus || defined _MSC_VER)
02814 static void
02815 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, OSResult *osresult, OSrLParserData *parserData)
02816 #else
02817 static void
02818 yydestruct (yymsg, yytype, yyvaluep, yylocationp, osresult, parserData)
02819     const char *yymsg;
02820     int yytype;
02821     YYSTYPE *yyvaluep;
02822     YYLTYPE *yylocationp;
02823     OSResult *osresult;
02824     OSrLParserData *parserData;
02825 #endif
02826 {
02827   YYUSE (yyvaluep);
02828   YYUSE (yylocationp);
02829   YYUSE (osresult);
02830   YYUSE (parserData);
02831 
02832   if (!yymsg)
02833     yymsg = "Deleting";
02834   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
02835 
02836   switch (yytype)
02837     {
02838 
02839       default:
02840         break;
02841     }
02842 }
02843 
02844 
02845 /* Prevent warnings from -Wmissing-prototypes.  */
02846 
02847 #ifdef YYPARSE_PARAM
02848 #if defined __STDC__ || defined __cplusplus
02849 int yyparse (void *YYPARSE_PARAM);
02850 #else
02851 int yyparse ();
02852 #endif
02853 #else /* ! YYPARSE_PARAM */
02854 #if defined __STDC__ || defined __cplusplus
02855 int yyparse (OSResult *osresult, OSrLParserData *parserData);
02856 #else
02857 int yyparse ();
02858 #endif
02859 #endif /* ! YYPARSE_PARAM */
02860 
02861 
02862 
02863 
02864 
02865 
02866 /*----------.
02867 | yyparse.  |
02868 `----------*/
02869 
02870 #ifdef YYPARSE_PARAM
02871 #if (defined __STDC__ || defined __C99__FUNC__ \
02872      || defined __cplusplus || defined _MSC_VER)
02873 int
02874 yyparse (void *YYPARSE_PARAM)
02875 #else
02876 int
02877 yyparse (YYPARSE_PARAM)
02878     void *YYPARSE_PARAM;
02879 #endif
02880 #else /* ! YYPARSE_PARAM */
02881 #if (defined __STDC__ || defined __C99__FUNC__ \
02882      || defined __cplusplus || defined _MSC_VER)
02883 int
02884 yyparse (OSResult *osresult, OSrLParserData *parserData)
02885 #else
02886 int
02887 yyparse (osresult, parserData)
02888     OSResult *osresult;
02889     OSrLParserData *parserData;
02890 #endif
02891 #endif
02892 {
02893   /* The look-ahead symbol.  */
02894 int yychar;
02895 
02896 /* The semantic value of the look-ahead symbol.  */
02897 YYSTYPE yylval;
02898 
02899 /* Number of syntax errors so far.  */
02900 int yynerrs;
02901 /* Location data for the look-ahead symbol.  */
02902 YYLTYPE yylloc;
02903 
02904   int yystate;
02905   int yyn;
02906   int yyresult;
02907   /* Number of tokens to shift before error messages enabled.  */
02908   int yyerrstatus;
02909   /* Look-ahead token as an internal (translated) token number.  */
02910   int yytoken = 0;
02911 #if YYERROR_VERBOSE
02912   /* Buffer for error messages, and its allocated size.  */
02913   char yymsgbuf[128];
02914   char *yymsg = yymsgbuf;
02915   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
02916 #endif
02917 
02918   /* Three stacks and their tools:
02919      `yyss': related to states,
02920      `yyvs': related to semantic values,
02921      `yyls': related to locations.
02922 
02923      Refer to the stacks thru separate pointers, to allow yyoverflow
02924      to reallocate them elsewhere.  */
02925 
02926   /* The state stack.  */
02927   yytype_int16 yyssa[YYINITDEPTH];
02928   yytype_int16 *yyss = yyssa;
02929   yytype_int16 *yyssp;
02930 
02931   /* The semantic value stack.  */
02932   YYSTYPE yyvsa[YYINITDEPTH];
02933   YYSTYPE *yyvs = yyvsa;
02934   YYSTYPE *yyvsp;
02935 
02936   /* The location stack.  */
02937   YYLTYPE yylsa[YYINITDEPTH];
02938   YYLTYPE *yyls = yylsa;
02939   YYLTYPE *yylsp;
02940   /* The locations where the error started and ended.  */
02941   YYLTYPE yyerror_range[2];
02942 
02943 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
02944 
02945   YYSIZE_T yystacksize = YYINITDEPTH;
02946 
02947   /* The variables used to return semantic value and location from the
02948      action routines.  */
02949   YYSTYPE yyval;
02950   YYLTYPE yyloc;
02951 
02952   /* The number of symbols on the RHS of the reduced rule.
02953      Keep to zero when no symbol should be popped.  */
02954   int yylen = 0;
02955 
02956   YYDPRINTF ((stderr, "Starting parse\n"));
02957 
02958   yystate = 0;
02959   yyerrstatus = 0;
02960   yynerrs = 0;
02961   yychar = YYEMPTY;             /* Cause a token to be read.  */
02962 
02963   /* Initialize stack pointers.
02964      Waste one element of value and location stack
02965      so that they stay on the same level as the state stack.
02966      The wasted elements are never initialized.  */
02967 
02968   yyssp = yyss;
02969   yyvsp = yyvs;
02970   yylsp = yyls;
02971 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
02972   /* Initialize the default location before parsing starts.  */
02973   yylloc.first_line   = yylloc.last_line   = 1;
02974   yylloc.first_column = yylloc.last_column = 0;
02975 #endif
02976 
02977   goto yysetstate;
02978 
02979 /*------------------------------------------------------------.
02980 | yynewstate -- Push a new state, which is found in yystate.  |
02981 `------------------------------------------------------------*/
02982  yynewstate:
02983   /* In all cases, when you get here, the value and location stacks
02984      have just been pushed.  So pushing a state here evens the stacks.  */
02985   yyssp++;
02986 
02987  yysetstate:
02988   *yyssp = yystate;
02989 
02990   if (yyss + yystacksize - 1 <= yyssp)
02991     {
02992       /* Get the current used size of the three stacks, in elements.  */
02993       YYSIZE_T yysize = yyssp - yyss + 1;
02994 
02995 #ifdef yyoverflow
02996       {
02997         /* Give user a chance to reallocate the stack.  Use copies of
02998            these so that the &'s don't force the real ones into
02999            memory.  */
03000         YYSTYPE *yyvs1 = yyvs;
03001         yytype_int16 *yyss1 = yyss;
03002         YYLTYPE *yyls1 = yyls;
03003 
03004         /* Each stack pointer address is followed by the size of the
03005            data in use in that stack, in bytes.  This used to be a
03006            conditional around just the two extra args, but that might
03007            be undefined if yyoverflow is a macro.  */
03008         yyoverflow (YY_("memory exhausted"),
03009                     &yyss1, yysize * sizeof (*yyssp),
03010                     &yyvs1, yysize * sizeof (*yyvsp),
03011                     &yyls1, yysize * sizeof (*yylsp),
03012                     &yystacksize);
03013         yyls = yyls1;
03014         yyss = yyss1;
03015         yyvs = yyvs1;
03016       }
03017 #else /* no yyoverflow */
03018 # ifndef YYSTACK_RELOCATE
03019       goto yyexhaustedlab;
03020 # else
03021       /* Extend the stack our own way.  */
03022       if (YYMAXDEPTH <= yystacksize)
03023         goto yyexhaustedlab;
03024       yystacksize *= 2;
03025       if (YYMAXDEPTH < yystacksize)
03026         yystacksize = YYMAXDEPTH;
03027 
03028       {
03029         yytype_int16 *yyss1 = yyss;
03030         union yyalloc *yyptr =
03031           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
03032         if (! yyptr)
03033           goto yyexhaustedlab;
03034         YYSTACK_RELOCATE (yyss);
03035         YYSTACK_RELOCATE (yyvs);
03036         YYSTACK_RELOCATE (yyls);
03037 #  undef YYSTACK_RELOCATE
03038         if (yyss1 != yyssa)
03039           YYSTACK_FREE (yyss1);
03040       }
03041 # endif
03042 #endif /* no yyoverflow */
03043 
03044       yyssp = yyss + yysize - 1;
03045       yyvsp = yyvs + yysize - 1;
03046       yylsp = yyls + yysize - 1;
03047 
03048       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
03049                   (unsigned long int) yystacksize));
03050 
03051       if (yyss + yystacksize - 1 <= yyssp)
03052         YYABORT;
03053     }
03054 
03055   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
03056 
03057   goto yybackup;
03058 
03059 /*-----------.
03060 | yybackup.  |
03061 `-----------*/
03062 yybackup:
03063 
03064   /* Do appropriate processing given the current state.  Read a
03065      look-ahead token if we need one and don't already have one.  */
03066 
03067   /* First try to decide what to do without reference to look-ahead token.  */
03068   yyn = yypact[yystate];
03069   if (yyn == YYPACT_NINF)
03070     goto yydefault;
03071 
03072   /* Not known => get a look-ahead token if don't already have one.  */
03073 
03074   /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
03075   if (yychar == YYEMPTY)
03076     {
03077       YYDPRINTF ((stderr, "Reading a token: "));
03078       yychar = YYLEX;
03079     }
03080 
03081   if (yychar <= YYEOF)
03082     {
03083       yychar = yytoken = YYEOF;
03084       YYDPRINTF ((stderr, "Now at end of input.\n"));
03085     }
03086   else
03087     {
03088       yytoken = YYTRANSLATE (yychar);
03089       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
03090     }
03091 
03092   /* If the proper action on seeing token YYTOKEN is to reduce or to
03093      detect an error, take that action.  */
03094   yyn += yytoken;
03095   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
03096     goto yydefault;
03097   yyn = yytable[yyn];
03098   if (yyn <= 0)
03099     {
03100       if (yyn == 0 || yyn == YYTABLE_NINF)
03101         goto yyerrlab;
03102       yyn = -yyn;
03103       goto yyreduce;
03104     }
03105 
03106   if (yyn == YYFINAL)
03107     YYACCEPT;
03108 
03109   /* Count tokens shifted since error; after three, turn off error
03110      status.  */
03111   if (yyerrstatus)
03112     yyerrstatus--;
03113 
03114   /* Shift the look-ahead token.  */
03115   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
03116 
03117   /* Discard the shifted token unless it is eof.  */
03118   if (yychar != YYEOF)
03119     yychar = YYEMPTY;
03120 
03121   yystate = yyn;
03122   *++yyvsp = yylval;
03123   *++yylsp = yylloc;
03124   goto yynewstate;
03125 
03126 
03127 /*-----------------------------------------------------------.
03128 | yydefault -- do the default action for the current state.  |
03129 `-----------------------------------------------------------*/
03130 yydefault:
03131   yyn = yydefact[yystate];
03132   if (yyn == 0)
03133     goto yyerrlab;
03134   goto yyreduce;
03135 
03136 
03137 /*-----------------------------.
03138 | yyreduce -- Do a reduction.  |
03139 `-----------------------------*/
03140 yyreduce:
03141   /* yyn is the number of a rule to reduce with.  */
03142   yylen = yyr2[yyn];
03143 
03144   /* If YYLEN is nonzero, implement the default value of the action:
03145      `$$ = $1'.
03146 
03147      Otherwise, the following line sets YYVAL to garbage.
03148      This behavior is undocumented and Bison
03149      users should not rely upon it.  Assigning to YYVAL
03150      unconditionally makes the parser a bit smaller, and it avoids a
03151      GCC warning that YYVAL may be used uninitialized.  */
03152   yyval = yyvsp[1-yylen];
03153 
03154   /* Default location.  */
03155   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
03156   YY_REDUCE_PRINT (yyn);
03157   switch (yyn)
03158     {
03159         case 3:
03160 
03161     {
03162 #ifdef DEBUG
03163 yydebug = 1;
03164 #endif
03165 }
03166     break;
03167 
03168   case 29:
03169 
03170     {   if (parserData->generalStatusPresent)
03171                         osrlerror(NULL, NULL, parserData, "only one generalStatus element allowed");    
03172                 if (osresult->general->generalStatus != NULL) 
03173                         osrlerror(NULL, NULL, parserData, "generalStatus previously allocated");
03174                 parserData->generalStatusPresent = true;
03175                 parserData->typeAttributePresent = false;
03176                 parserData->descriptionAttributePresent = false;
03177                 parserData->numberAttributePresent = false;
03178                 parserData->numberOf = 0;
03179         }
03180     break;
03181 
03182   case 30:
03183 
03184     {   if (!parserData->typeAttributePresent)
03185                         osrlerror(NULL, NULL, parserData, "type attribute must be present for generalStatus element");
03186                 parserData->kounter = 0;
03187         }
03188     break;
03189 
03190   case 33:
03191 
03192     { 
03193             if ((parserData->typeAttribute != "error"  ) &&
03194                 (parserData->typeAttribute != "warning") && 
03195                 (parserData->typeAttribute != "normal"))
03196                         osrlerror(NULL, NULL, parserData, "general status type does not match any legal value");
03197                 if (osresult->setGeneralStatusType(parserData->typeAttribute) == false)
03198                         osrlerror(NULL, NULL, parserData, "Error while setting general status type");
03199         }
03200     break;
03201 
03202   case 34:
03203 
03204     {   
03205                 osresult->setGeneralStatusDescription(parserData->descriptionAttribute);
03206         }
03207     break;
03208 
03209   case 35:
03210 
03211     {   if (osresult->setNumberOfGeneralSubstatuses(parserData->tempInt) == false)
03212                         osrlerror(NULL, NULL, parserData, "Attempting to reallocate substatus array. Potential loss of data.");
03213                 parserData->numberOf = parserData->tempInt;
03214                 parserData->kounter = 0;
03215         }
03216     break;
03217 
03218   case 36:
03219 
03220     {   if (parserData->numberOf > 0)
03221                         osrlerror(NULL, NULL, parserData, "expected at least one <substatus> element");
03222         }
03223     break;
03224 
03225   case 37:
03226 
03227     {   if (parserData->kounter != parserData->numberOf)
03228                         osrlerror(NULL, NULL, parserData, "fewer <substatus> elements than specified");
03229         }
03230     break;
03231 
03232   case 44:
03233 
03234     {   parserData->kounter++;
03235 }
03236     break;
03237 
03238   case 45:
03239 
03240     {   if (parserData->kounter >= parserData->numberOf)
03241                 osrlerror( NULL, NULL, parserData, "more <substatus> elements than specified");
03242         parserData->nameAttributePresent = false;
03243         parserData->descriptionAttributePresent = false;
03244 }
03245     break;
03246 
03247   case 46:
03248 
03249     {   if (!parserData->nameAttributePresent)
03250                 osrlerror (NULL, NULL, parserData, "<substatus> must have name attribute");
03251 }
03252     break;
03253 
03254   case 49:
03255 
03256     {   
03257                 if (osresult->setGeneralSubstatusName(parserData->kounter, parserData->nameAttribute) == false)
03258                         osrlerror(NULL, NULL, parserData, "Error while setting <general> substatus name");
03259         }
03260     break;
03261 
03262   case 50:
03263 
03264     {   
03265                 if (osresult->setGeneralSubstatusDescription(parserData->kounter, parserData->descriptionAttribute) == false)
03266                         osrlerror(NULL, NULL, parserData, "Error while setting <general> substatus description");
03267         }
03268     break;
03269 
03270   case 54:
03271 
03272     {   if (parserData->generalMessagePresent)
03273                         osrlerror(NULL, NULL, parserData, "only one message element allowed");
03274                 parserData->generalMessagePresent = true;
03275         }
03276     break;
03277 
03278   case 60:
03279 
03280     {osresult->setGeneralMessage((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;}
03281     break;
03282 
03283   case 62:
03284 
03285     {   if (parserData->generalServiceURIPresent)
03286                         osrlerror(NULL, NULL, parserData, "only one serviceURI element allowed");
03287                 parserData->generalServiceURIPresent = true;
03288         }
03289     break;
03290 
03291   case 68:
03292 
03293     {osresult->setServiceURI((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;}
03294     break;
03295 
03296   case 70:
03297 
03298     {   if (parserData->generalServiceNamePresent)
03299                         osrlerror(NULL, NULL, parserData, "only one serviceName element allowed");
03300                 parserData->generalServiceNamePresent = true;
03301         }
03302     break;
03303 
03304   case 76:
03305 
03306     {osresult->setServiceName((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;}
03307     break;
03308 
03309   case 78:
03310 
03311     {   if (parserData->generalInstanceNamePresent)
03312                         osrlerror(NULL, NULL, parserData, "only one instanceName element allowed");
03313                 parserData->generalInstanceNamePresent = true;
03314         }
03315     break;
03316 
03317   case 84:
03318 
03319     {osresult->setInstanceName((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;}
03320     break;
03321 
03322   case 86:
03323 
03324     {   if (parserData->generalJobIDPresent)
03325                         osrlerror(NULL, NULL, parserData, "only one jobID element allowed");
03326                 parserData->generalJobIDPresent = true;
03327         }
03328     break;
03329 
03330   case 92:
03331 
03332     {osresult->setJobID((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;}
03333     break;
03334 
03335   case 94:
03336 
03337     {   if (parserData->generalSolverInvokedPresent)
03338                         osrlerror(NULL, NULL, parserData, "only one solverInvoked element allowed");
03339                 parserData->generalSolverInvokedPresent = true;
03340         }
03341     break;
03342 
03343   case 100:
03344 
03345     {osresult->setSolverInvoked((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;}
03346     break;
03347 
03348   case 102:
03349 
03350     {   if (parserData->generalTimeStampPresent)
03351                         osrlerror(NULL, NULL, parserData, "only one timeStamp element allowed");
03352                 parserData->generalTimeStampPresent = true;
03353         }
03354     break;
03355 
03356   case 108:
03357 
03358     {osresult->setTimeStamp((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;}
03359     break;
03360 
03361   case 110:
03362 
03363     {   if (parserData->generalOtherResultsPresent)
03364                         osrlerror(NULL, NULL, parserData, "only one general other results element allowed");
03365                 parserData->generalOtherResultsPresent = true;
03366         }
03367     break;
03368 
03369   case 111:
03370 
03371     {
03372         if (parserData->tempInt < 0) osrlerror(NULL, NULL, parserData, "number of other general results cannot be negative");
03373         if (osresult->setNumberOfOtherGeneralResults(parserData->tempInt) == false)
03374                 osrlerror(NULL, NULL, parserData, "Attempting to reallocate other general results array. Potential loss of data.");
03375         parserData->numberOf = parserData->tempInt;
03376         parserData->kounter = 0;
03377 }
03378     break;
03379 
03380   case 112:
03381 
03382     {   if (parserData->numberOf > 0)
03383                         osrlerror(NULL, NULL, parserData, "expected at least one <other> element");
03384         }
03385     break;
03386 
03387   case 113:
03388 
03389     {   if (parserData->kounter < parserData->numberOf - 1)
03390                         osrlerror(NULL, NULL, parserData, "fewer <other> elements than specified");
03391         }
03392     break;
03393 
03394   case 120:
03395 
03396     {   parserData->kounter++;
03397 }
03398     break;
03399 
03400   case 121:
03401 
03402     {   if (parserData->kounter >= parserData->numberOf)
03403                 osrlerror(NULL, NULL, parserData, "more <other> elements than specified");
03404         parserData->nameAttributePresent = false;
03405         parserData->valueAttributePresent = false;
03406         parserData->descriptionAttributePresent = false;
03407 }
03408     break;
03409 
03410   case 122:
03411 
03412     {   if (!parserData->nameAttributePresent)
03413                 osrlerror (NULL, NULL, parserData, "<other> must have name attribute");
03414 }
03415     break;
03416 
03417   case 125:
03418 
03419     {   if (parserData->nameAttribute.length() == 0)
03420                         osrlerror(NULL, NULL, parserData, "otherResult name cannot be empty");
03421                 if (osresult->setOtherGeneralResultName(parserData->kounter, parserData->nameAttribute) == false)
03422                         osrlerror(NULL, NULL, parserData, "setGeneralOtherResultName failed");
03423         }
03424     break;
03425 
03426   case 126:
03427 
03428     {   
03429                 if (osresult->setOtherGeneralResultValue(parserData->kounter, parserData->valueAttribute) == false)
03430                         osrlerror(NULL, NULL, parserData, "setGeneralOtherResultValue failed");
03431         }
03432     break;
03433 
03434   case 127:
03435 
03436     {   
03437                 if (osresult->setOtherGeneralResultDescription(parserData->kounter, parserData->descriptionAttribute) == false)
03438                         osrlerror(NULL, NULL, parserData, "setGeneralOtherResultDescription failed");
03439         }
03440     break;
03441 
03442   case 148:
03443 
03444     {   if (parserData->systemInformationPresent)
03445                         osrlerror(NULL, NULL, parserData, "only one systemInformation element allowed");
03446                 parserData->systemInformationPresent = true;
03447         }
03448     break;
03449 
03450   case 154:
03451 
03452     {   osresult->setSystemInformation((yyvsp[(1) - (1)].sval)); 
03453                 free((yyvsp[(1) - (1)].sval)); 
03454                 parserData->errorText = NULL;
03455         }
03456     break;
03457 
03458   case 156:
03459 
03460     {   if (parserData->systemAvailableDiskSpacePresent)
03461                         osrlerror(NULL, NULL, parserData, "only one availableDiskSpace element allowed");
03462                 parserData->systemAvailableDiskSpacePresent = true;     
03463                 parserData->unitAttributePresent = false;       
03464                 parserData->descriptionAttributePresent = false;        
03465         }
03466     break;
03467 
03468   case 160:
03469 
03470     {   if (parserData->unitAttribute != "exabyte"  && 
03471                         parserData->unitAttribute != "petabyte" && 
03472                         parserData->unitAttribute != "terabyte" && 
03473                         parserData->unitAttribute != "gigabyte" &&
03474                         parserData->unitAttribute != "megabyte" && 
03475                         parserData->unitAttribute != "kilobyte" && 
03476                         parserData->unitAttribute != "byte")
03477                         osrlerror(NULL, NULL, parserData, "availableDiskSpace unit not recognized");
03478                 osresult->setAvailableDiskSpaceUnit( parserData->unitAttribute); 
03479                 parserData->errorText = NULL;
03480         }
03481     break;
03482 
03483   case 161:
03484 
03485     {   osresult->setAvailableDiskSpaceDescription( parserData->descriptionAttribute); 
03486                 parserData->errorText = NULL;
03487         }
03488     break;
03489 
03490   case 163:
03491 
03492     {   osresult->setAvailableDiskSpaceValue(parserData->tempVal);  
03493         parserData->errorText = NULL;
03494 }
03495     break;
03496 
03497   case 165:
03498 
03499     {   if (parserData->systemAvailableMemoryPresent)
03500                         osrlerror(NULL, NULL, parserData, "only one availableMemory element allowed");
03501                 parserData->systemAvailableMemoryPresent = true;
03502                 parserData->unitAttributePresent = false;       
03503                 parserData->descriptionAttributePresent = false;        
03504         }
03505     break;
03506 
03507   case 169:
03508 
03509     {   if (parserData->unitAttribute != "exabyte"  && 
03510                         parserData->unitAttribute != "petabyte" && 
03511                         parserData->unitAttribute != "terabyte" && 
03512                         parserData->unitAttribute != "gigabyte" &&
03513                         parserData->unitAttribute != "megabyte" && 
03514                         parserData->unitAttribute != "kilobyte" && 
03515                         parserData->unitAttribute != "byte")
03516                         osrlerror(NULL, NULL, parserData, "availableDiskSpace unit not recognized");
03517                 osresult->setAvailableMemoryUnit( parserData->unitAttribute); 
03518                 parserData->errorText = NULL;
03519         }
03520     break;
03521 
03522   case 170:
03523 
03524     {   osresult->setAvailableMemoryDescription( parserData->descriptionAttribute); 
03525                 parserData->errorText = NULL;
03526         }
03527     break;
03528 
03529   case 172:
03530 
03531     {   osresult->setAvailableMemoryValue(parserData->tempVal);  
03532     parserData->errorText = NULL;
03533 }
03534     break;
03535 
03536   case 174:
03537 
03538     {   if (parserData->systemAvailableCPUSpeedPresent)
03539                         osrlerror(NULL, NULL, parserData, "only one availableCPUSpeed element allowed");
03540                 parserData->systemAvailableCPUSpeedPresent = true;
03541                 parserData->unitAttributePresent = false;       
03542                 parserData->descriptionAttributePresent = false;        
03543         }
03544     break;
03545 
03546   case 178:
03547 
03548     {   if (parserData->unitAttribute != "terahertz" && 
03549                         parserData->unitAttribute != "gigahertz" && 
03550                         parserData->unitAttribute != "megahertz" && 
03551                         parserData->unitAttribute != "kilohertz" && 
03552                         parserData->unitAttribute != "hertz"     && 
03553                         parserData->unitAttribute != "petaflops" && 
03554                         parserData->unitAttribute != "teraflops" && 
03555                         parserData->unitAttribute != "gigaflops" && 
03556                         parserData->unitAttribute != "megaflops" && 
03557                         parserData->unitAttribute != "kiloflops" && 
03558                         parserData->unitAttribute != "flops" )
03559                         osrlerror(NULL, NULL, parserData, "availableCPUSpeed unit not recognized");
03560                 osresult->setAvailableCPUSpeedUnit( parserData->unitAttribute); 
03561                 parserData->errorText = NULL;
03562         }
03563     break;
03564 
03565   case 179:
03566 
03567     {   osresult->setAvailableCPUSpeedDescription( parserData->descriptionAttribute); 
03568                 parserData->errorText = NULL;
03569         }
03570     break;
03571 
03572   case 181:
03573 
03574     {   osresult->setAvailableCPUSpeedValue(parserData->tempVal);  
03575     parserData->errorText = NULL;
03576 }
03577     break;
03578 
03579   case 183:
03580 
03581     {   if (parserData->systemAvailableCPUNumberPresent)
03582                         osrlerror(NULL, NULL, parserData, "only one availableCPUNumber element allowed");
03583                 parserData->systemAvailableCPUNumberPresent = true;
03584                 parserData->descriptionAttributePresent = false;        
03585         }
03586     break;
03587 
03588   case 185:
03589 
03590     {   osresult->setAvailableCPUNumberDescription( parserData->descriptionAttribute); 
03591                 parserData->errorText = NULL;
03592         }
03593     break;
03594 
03595   case 187:
03596 
03597     {   osresult->setAvailableCPUNumberValue( (yyvsp[(1) - (1)].ival));  parserData->errorText = NULL; }
03598     break;
03599 
03600   case 189:
03601 
03602     {   if (parserData->systemOtherResultsPresent)
03603                         osrlerror(NULL, NULL, parserData, "only one system other results element allowed");
03604                 parserData->systemOtherResultsPresent = true;
03605         }
03606     break;
03607 
03608   case 190:
03609 
03610     {
03611         if (parserData->tempInt < 0) osrlerror(NULL, NULL, parserData, "number of other system results cannot be negative");
03612         if (osresult->setNumberOfOtherSystemResults(parserData->tempInt) == false)
03613                         osrlerror(NULL, NULL, parserData, "setNumberOfOtherSystemResults failed");
03614         parserData->numberOf = parserData->tempInt;
03615         parserData->kounter = 0;
03616 }
03617     break;
03618 
03619   case 191:
03620 
03621     {   if (parserData->numberOf > 0)
03622                         osrlerror(NULL, NULL, parserData, "expected at least one <other> element");
03623         }
03624     break;
03625 
03626   case 192:
03627 
03628     {   if (parserData->kounter < parserData->numberOf - 1)
03629                         osrlerror(NULL, NULL, parserData, "fewer <other> elements than specified");
03630         }
03631     break;
03632 
03633   case 199:
03634 
03635     {   parserData->kounter++;
03636 }
03637     break;
03638 
03639   case 200:
03640 
03641     {   if (parserData->kounter >= parserData->numberOf)
03642                 osrlerror(NULL, NULL, parserData, "more <other> elements than specified");
03643         parserData->nameAttributePresent = false;
03644         parserData->valueAttributePresent = false;
03645         parserData->descriptionAttributePresent = false;
03646 }
03647     break;
03648 
03649   case 201:
03650 
03651     {   if (!parserData->nameAttributePresent)
03652                 osrlerror (NULL, NULL, parserData, "<other> must have name attribute");
03653 }
03654     break;
03655 
03656   case 204:
03657 
03658     {   if (parserData->nameAttribute.length() == 0)
03659                         osrlerror(NULL, NULL, parserData, "otherResult name cannot be empty");
03660                 if (osresult->setOtherSystemResultName(parserData->kounter, parserData->nameAttribute) == false)
03661                         osrlerror(NULL, NULL, parserData, "setSystemOtherResultName failed");
03662         }
03663     break;
03664 
03665   case 205:
03666 
03667     {   
03668                 if (osresult->setOtherSystemResultValue(parserData->kounter, parserData->valueAttribute) == false)
03669                         osrlerror(NULL, NULL, parserData, "setSystemOtherResultValue failed");
03670         }
03671     break;
03672 
03673   case 206:
03674 
03675     {   
03676                 if (osresult->setOtherSystemResultDescription(parserData->kounter, parserData->descriptionAttribute) == false)
03677                         osrlerror(NULL, NULL, parserData, "setSystemOtherResultDescription failed");
03678         }
03679     break;
03680 
03681   case 221:
03682 
03683     {   if (parserData->serviceCurrentStatePresent)
03684                         osrlerror(NULL, NULL, parserData, "only one currentState element allowed");
03685                 parserData->serviceCurrentStatePresent = true;
03686         }
03687     break;
03688 
03689   case 227:
03690 
03691     {   parserData->tempStr = (yyvsp[(1) - (1)].sval); free((yyvsp[(1) - (1)].sval));
03692                 if (parserData->tempStr != "busy"                &&
03693                         parserData->tempStr != "busyButAccepting"    &&
03694                         parserData->tempStr != "idle"                &&
03695                         parserData->tempStr != "idleButNotAccepting" &&
03696                         parserData->tempStr != "noResponse"             )
03697                         osrlerror(NULL, NULL, parserData, "current system state not recognized");
03698                 if (osresult->setCurrentState(parserData->tempStr) == false)
03699                         osrlerror(NULL, NULL, parserData, "setCurrentState failed");
03700                 parserData->errorText = NULL;
03701         }
03702     break;
03703 
03704   case 229:
03705 
03706     {   if (parserData->serviceCurrentJobCountPresent)
03707                         osrlerror(NULL, NULL, parserData, "only one currentJobCount element allowed");
03708                 parserData->serviceCurrentJobCountPresent = true;
03709         }
03710     break;
03711 
03712   case 235:
03713 
03714     { osresult->setCurrentJobCount((yyvsp[(1) - (1)].ival)); parserData->errorText = NULL; }
03715     break;
03716 
03717   case 237:
03718 
03719     {   if (parserData->serviceTotalJobsSoFarPresent)
03720                         osrlerror(NULL, NULL, parserData, "only one totalJobsSoFar element allowed");
03721                 parserData->serviceTotalJobsSoFarPresent = true;
03722         }
03723     break;
03724 
03725   case 243:
03726 
03727     { osresult->setTotalJobsSoFar((yyvsp[(1) - (1)].ival)); parserData->errorText = NULL; }
03728     break;
03729 
03730   case 245:
03731 
03732     {   if (parserData->timeServiceStartedPresent)
03733                         osrlerror(NULL, NULL, parserData, "only one timeServiceStarted element allowed");
03734                 parserData->timeServiceStartedPresent = true;
03735         }
03736     break;
03737 
03738   case 251:
03739 
03740     {osresult->setTimeServiceStarted((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;}
03741     break;
03742 
03743   case 253:
03744 
03745     {   if (parserData->serviceUtilizationPresent)
03746                         osrlerror(NULL, NULL, parserData, "only one serviceUtilization element allowed");
03747                 parserData->serviceUtilizationPresent = true;
03748         }
03749     break;
03750 
03751   case 259:
03752 
03753     {   if (osresult->setServiceUtilization( parserData->tempVal) == false)
03754                 osrlerror(NULL, NULL, parserData, "setServiceUtilization failed");
03755         parserData->errorText = NULL;
03756 }
03757     break;
03758 
03759   case 261:
03760 
03761     {   if (parserData->serviceOtherResultsPresent)
03762                         osrlerror(NULL, NULL, parserData, "only one service other results element allowed");
03763                 parserData->serviceOtherResultsPresent = true;
03764         }
03765     break;
03766 
03767   case 262:
03768 
03769     {
03770         if (parserData->tempInt < 0) osrlerror(NULL, NULL, parserData, "number of other service results cannot be negative");
03771         if (osresult->setNumberOfOtherServiceResults(parserData->tempInt) == false)
03772                 osrlerror(NULL, NULL, parserData, "setNumberOfOtherServiceResults failed");
03773         parserData->numberOf = parserData->tempInt;
03774         parserData->kounter = 0;
03775 }
03776     break;
03777 
03778   case 263:
03779 
03780     {   if (parserData->numberOf > 0)
03781                         osrlerror(NULL, NULL, parserData, "expected at least one <other> element");
03782         }
03783     break;
03784 
03785   case 264:
03786 
03787     {   if (parserData->kounter < parserData->numberOf - 1)
03788                         osrlerror(NULL, NULL, parserData, "fewer <other> elements than specified");
03789         }
03790     break;
03791 
03792   case 271:
03793 
03794     {   parserData->kounter++;
03795 }
03796     break;
03797 
03798   case 272:
03799 
03800     {   if (parserData->kounter >= parserData->numberOf)
03801                 osrlerror(NULL, NULL, parserData, "more <other> elements than specified");
03802         parserData->nameAttributePresent = false;
03803         parserData->valueAttributePresent = false;
03804         parserData->descriptionAttributePresent = false;
03805 }
03806     break;
03807 
03808   case 273:
03809 
03810     {   if (!parserData->nameAttributePresent)
03811                 osrlerror (NULL, NULL, parserData, "<other> must have name attribute");
03812 }
03813     break;
03814 
03815   case 276:
03816 
03817     {   if (parserData->nameAttribute.length() == 0)
03818                         osrlerror(NULL, NULL, parserData, "otherResult name cannot be empty");
03819                 if (osresult->setOtherServiceResultName(parserData->kounter, parserData->nameAttribute) == false)
03820                         osrlerror(NULL, NULL, parserData, "setServiceOtherResultName failed");
03821         }
03822     break;
03823 
03824   case 277:
03825 
03826     {   
03827                 if (osresult->setOtherServiceResultValue(parserData->kounter, parserData->valueAttribute) == false)
03828                         osrlerror(NULL, NULL, parserData, "setServiceOtherResultValue failed");
03829         }
03830     break;
03831 
03832   case 278:
03833 
03834     {   
03835                 if (osresult->setOtherServiceResultDescription(parserData->kounter, parserData->descriptionAttribute) == false)
03836                         osrlerror(NULL, NULL, parserData, "setServiceOtherResultDescription failed");
03837         }
03838     break;
03839 
03840   case 298:
03841 
03842     {   if (parserData->jobStatusPresent)
03843                         osrlerror(NULL, NULL, parserData, "only one job status element allowed");
03844                 parserData->jobStatusPresent = true;
03845         }
03846     break;
03847 
03848   case 304:
03849 
03850     {   parserData->tempStr = (yyvsp[(1) - (1)].sval); free((yyvsp[(1) - (1)].sval));
03851                 if (parserData->tempStr != "waiting"  &&
03852                         parserData->tempStr != "running"  &&
03853                         parserData->tempStr != "killed"   &&
03854                         parserData->tempStr != "finished" &&
03855                         parserData->tempStr != "unknown"     )
03856                         osrlerror (NULL, NULL, parserData, "status of this job not recognized");
03857                 if (osresult->setJobStatus(parserData->tempStr) == false)
03858                         osrlerror(NULL, NULL, parserData, "setJobStatus failed");
03859                 parserData->errorText = NULL;
03860         }
03861     break;
03862 
03863   case 306:
03864 
03865     {   if (parserData->jobSubmitTimePresent)
03866                         osrlerror(NULL, NULL, parserData, "only one submitTime element allowed");
03867                 parserData->jobSubmitTimePresent = true;
03868         }
03869     break;
03870 
03871   case 312:
03872 
03873     {osresult->setJobSubmitTime((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;}
03874     break;
03875 
03876   case 314:
03877 
03878     {   if (parserData->scheduledStartTimePresent)
03879                         osrlerror(NULL, NULL, parserData, "only one scheduledStartTime element allowed");
03880                 parserData->scheduledStartTimePresent = true;
03881         }
03882     break;
03883 
03884   case 320:
03885 
03886     {osresult->setScheduledStartTime((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;}
03887     break;
03888 
03889   case 322:
03890 
03891     {   if (parserData->actualStartTimePresent)
03892                         osrlerror(NULL, NULL, parserData, "only one actualStartTime element allowed");
03893                 parserData->actualStartTimePresent = true;
03894         }
03895     break;
03896 
03897   case 328:
03898 
03899     {osresult->setActualStartTime((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval));  parserData->errorText = NULL;}
03900     break;
03901 
03902   case 330:
03903 
03904     {   if (parserData->jobEndTimePresent)
03905                         osrlerror(NULL, NULL, parserData, "only one job endTime element allowed");
03906                 parserData->jobEndTimePresent = true;
03907         }
03908     break;
03909 
03910   case 336:
03911 
03912     {osresult->setJobEndTime((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval));  parserData->errorText = NULL;}
03913     break;
03914 
03915   case 338:
03916 
03917     {   if (parserData->jobTimingInformationPresent)
03918                         osrlerror(NULL, NULL, parserData, "only one timingInformation element allowed");
03919                 parserData->jobTimingInformationPresent = true;
03920         }
03921     break;
03922 
03923   case 339:
03924 
03925     {   if (parserData->tempInt < 0) osrlerror(NULL, NULL, parserData, "number of time measurements cannot be negative");
03926         if (osresult->setNumberOfTimes(parserData->tempInt) == false)
03927                         osrlerror(NULL, NULL, parserData, "setNumberOfTimes failed");
03928         parserData->numberOfTimes = parserData->tempInt;
03929         parserData->ivar = 0;
03930 }
03931     break;
03932 
03933   case 340:
03934 
03935     {   if (parserData->numberOfTimes > 0)
03936                         osrlerror(NULL, NULL, parserData, "expected at least one <time> element");
03937         }
03938     break;
03939 
03940   case 341:
03941 
03942     {   if (parserData->ivar != parserData->numberOfTimes)
03943                         osrlerror(NULL, NULL, parserData, "fewer <time> elements than specified");
03944         }
03945     break;
03946 
03947   case 349:
03948 
03949     {   if (parserData->ivar >= parserData->numberOfTimes)
03950                 osrlerror(NULL, NULL, parserData, "more <time> elements than specified");
03951         parserData->unitAttributePresent = false;
03952         parserData->typeAttributePresent = false;
03953         parserData->categoryAttributePresent = false;
03954         parserData->descriptionAttributePresent = false;
03955         parserData->unitAttribute = "";
03956         parserData->typeAttribute = "";
03957         parserData->categoryAttribute = "";
03958         parserData->descriptionAttribute = "";
03959 }
03960     break;
03961 
03962   case 352:
03963 
03964     {   if (parserData->unitAttribute != "tick"        &&
03965                         parserData->unitAttribute != "millisecond" &&
03966                         parserData->unitAttribute != "second"      &&
03967                         parserData->unitAttribute != "minute"      &&
03968                         parserData->unitAttribute != "hour"        &&
03969                         parserData->unitAttribute != "day"         &&
03970                         parserData->unitAttribute != "week"        &&
03971                         parserData->unitAttribute != "month"       &&
03972                         parserData->unitAttribute != "year"   )     
03973                         osrlerror(NULL, NULL, parserData, "time unit not recognized");
03974         }
03975     break;
03976 
03977   case 353:
03978 
03979     {   if (parserData->typeAttribute != "cpuTime"     &&
03980                         parserData->typeAttribute != "elapsedTime" &&
03981                         parserData->typeAttribute != "other"   )     
03982                         osrlerror(NULL, NULL, parserData, "time type not recognized");
03983         }
03984     break;
03985 
03986   case 354:
03987 
03988     {   if (parserData->categoryAttribute != "total"          &&
03989                         parserData->categoryAttribute != "input"          &&
03990                         parserData->categoryAttribute != "preprocessing"  &&
03991                         parserData->categoryAttribute != "optimization"   &&
03992                         parserData->categoryAttribute != "postprocessing" &&
03993                         parserData->categoryAttribute != "output"         &&
03994                         parserData->categoryAttribute != "other"   )
03995                         osrlerror(NULL, NULL, parserData, "time category not recognized");
03996         }
03997     break;
03998 
03999   case 361:
04000 
04001     {   osresult->setTimingInformation(parserData->ivar, parserData->typeAttribute, parserData->categoryAttribute,
04002                 parserData->unitAttribute, parserData->descriptionAttribute, parserData->timeValue);       
04003         parserData->ivar++;
04004         parserData->timeType = "";
04005         parserData->timeCategory = "";
04006         parserData->timeUnit = "";
04007         parserData->timeDescription = "";      
04008 }
04009     break;
04010 
04011   case 362:
04012 
04013     { parserData->timeValue = (yyvsp[(1) - (1)].dval); }
04014     break;
04015 
04016   case 363:
04017 
04018     { parserData->timeValue = (yyvsp[(1) - (1)].ival); }
04019     break;
04020 
04021   case 365:
04022 
04023     {   if (parserData->jobUsedDiskSpacePresent)
04024                         osrlerror(NULL, NULL, parserData, "only one usedDiskSpace element allowed");
04025                 parserData->jobUsedDiskSpacePresent = true;             
04026                 parserData->unitAttributePresent = false;       
04027                 parserData->descriptionAttributePresent = false;
04028         }
04029     break;
04030 
04031   case 369:
04032 
04033     {   if (parserData->unitAttribute != "exabyte"  && 
04034                         parserData->unitAttribute != "petabyte" && 
04035                         parserData->unitAttribute != "terabyte" && 
04036                         parserData->unitAttribute != "gigabyte" &&
04037                         parserData->unitAttribute != "megabyte" && 
04038                         parserData->unitAttribute != "kilobyte" && 
04039                         parserData->unitAttribute != "byte")
04040                         osrlerror(NULL, NULL, parserData, "availableDiskSpace unit not recognized");
04041                 osresult->setUsedDiskSpaceUnit( parserData->unitAttribute); 
04042                 parserData->errorText = NULL;
04043         }
04044     break;
04045 
04046   case 370:
04047 
04048     {   osresult->setUsedDiskSpaceDescription( parserData->descriptionAttribute); 
04049                 parserData->errorText = NULL;
04050         }
04051     break;
04052 
04053   case 372:
04054 
04055     {   osresult->setUsedDiskSpaceValue(parserData->tempVal);  
04056         parserData->errorText = NULL;
04057 }
04058     break;
04059 
04060   case 374:
04061 
04062     {   if (parserData->jobUsedMemoryPresent)
04063                         osrlerror(NULL, NULL, parserData, "only one usedMemory element allowed");
04064                 parserData->jobUsedMemoryPresent = true;
04065                 parserData->unitAttributePresent = false;       
04066                 parserData->descriptionAttributePresent = false;        
04067         }
04068     break;
04069 
04070   case 378:
04071 
04072     {   if (parserData->unitAttribute != "exabyte"  && 
04073                         parserData->unitAttribute != "petabyte" && 
04074                         parserData->unitAttribute != "terabyte" && 
04075                         parserData->unitAttribute != "gigabyte" &&
04076                         parserData->unitAttribute != "megabyte" && 
04077                         parserData->unitAttribute != "kilobyte" && 
04078                         parserData->unitAttribute != "byte")
04079                         osrlerror(NULL, NULL, parserData, "usedDiskSpace unit not recognized");
04080                 osresult->setUsedMemoryUnit( parserData->unitAttribute); 
04081                 parserData->errorText = NULL;
04082         }
04083     break;
04084 
04085   case 379:
04086 
04087     {   osresult->setUsedMemoryDescription( parserData->descriptionAttribute); 
04088                 parserData->errorText = NULL;
04089         }
04090     break;
04091 
04092   case 381:
04093 
04094     {   osresult->setUsedMemoryValue(parserData->tempVal);  
04095         parserData->errorText = NULL;
04096 }
04097     break;
04098 
04099   case 383:
04100 
04101     {   if (parserData->jobUsedCPUSpeedPresent)
04102                         osrlerror(NULL, NULL, parserData, "only one usedCPUSpeed element allowed");
04103                 parserData->jobUsedCPUSpeedPresent = true;
04104                 parserData->unitAttributePresent = false;       
04105                 parserData->descriptionAttributePresent = false;        
04106                 parserData->unitAttributePresent = false;       
04107                 parserData->descriptionAttributePresent = false;        
04108         }
04109     break;
04110 
04111   case 387:
04112 
04113     {   if (parserData->unitAttribute != "terahertz" && 
04114                         parserData->unitAttribute != "gigahertz" && 
04115                         parserData->unitAttribute != "megahertz" && 
04116                         parserData->unitAttribute != "kilohertz" && 
04117                         parserData->unitAttribute != "hertz"     && 
04118                         parserData->unitAttribute != "petaflops" && 
04119                         parserData->unitAttribute != "teraflops" && 
04120                         parserData->unitAttribute != "gigaflops" && 
04121                         parserData->unitAttribute != "megaflops" && 
04122                         parserData->unitAttribute != "kiloflops" && 
04123                         parserData->unitAttribute != "flops" )
04124                         osrlerror(NULL, NULL, parserData, "availableCPUSpeed unit not recognized");
04125                 osresult->setUsedCPUSpeedUnit( parserData->unitAttribute); 
04126                 parserData->errorText = NULL;
04127         }
04128     break;
04129 
04130   case 388:
04131 
04132     {   osresult->setUsedCPUSpeedDescription( parserData->descriptionAttribute); 
04133                 parserData->errorText = NULL;
04134         }
04135     break;
04136 
04137   case 390:
04138 
04139     {   osresult->setUsedCPUSpeedValue(parserData->tempVal);  
04140         parserData->errorText = NULL;
04141 }
04142     break;
04143 
04144   case 392:
04145 
04146     {   if (parserData->jobUsedCPUNumberPresent)
04147                         osrlerror(NULL, NULL, parserData, "only one usedCPUNumber element allowed");
04148                 parserData->jobUsedCPUNumberPresent = true;
04149                 parserData->descriptionAttributePresent = false;        
04150         }
04151     break;
04152 
04153   case 394:
04154 
04155     {   osresult->setUsedCPUNumberDescription( parserData->descriptionAttribute); 
04156                 parserData->errorText = NULL;
04157         }
04158     break;
04159 
04160   case 396:
04161 
04162     { osresult->setUsedCPUNumberValue( (yyvsp[(1) - (1)].ival));  parserData->errorText = NULL; }
04163     break;
04164 
04165   case 398:
04166 
04167     {   if (parserData->jobOtherResultsPresent)
04168                         osrlerror(NULL, NULL, parserData, "only one job other results element allowed");
04169                 parserData->jobOtherResultsPresent = true;
04170         }
04171     break;
04172 
04173   case 399:
04174 
04175     {
04176         if (parserData->tempInt < 0) osrlerror(NULL, NULL, parserData, "number of other job results cannot be negative");
04177         if (osresult->setNumberOfOtherJobResults(parserData->tempInt) == false)
04178                         osrlerror(NULL, NULL, parserData, "setNumberOfOtherJobResults failed");
04179         parserData->numberOf = parserData->tempInt;
04180         parserData->kounter = 0;
04181 }
04182     break;
04183 
04184   case 400:
04185 
04186     {   if (parserData->numberOf > 0)
04187                         osrlerror(NULL, NULL, parserData, "expected at least one <other> element");
04188         }
04189     break;
04190 
04191   case 401:
04192 
04193     {   if (parserData->kounter < parserData->numberOf - 1)
04194                         osrlerror(NULL, NULL, parserData, "fewer <other> elements than specified");
04195         }
04196     break;
04197 
04198   case 408:
04199 
04200     {   parserData->kounter++;
04201 }
04202     break;
04203 
04204   case 409:
04205 
04206     {   if (parserData->kounter >= parserData->numberOf)
04207                 osrlerror(NULL, NULL, parserData, "more <other> elements than specified");
04208         parserData->nameAttributePresent = false;
04209         parserData->valueAttributePresent = false;
04210         parserData->descriptionAttributePresent = false;
04211 }
04212     break;
04213 
04214   case 410:
04215 
04216     {   if (!parserData->nameAttributePresent)
04217                 osrlerror (NULL, NULL, parserData, "<other> must have name attribute");
04218 }
04219     break;
04220 
04221   case 413:
04222 
04223     {   if (parserData->nameAttribute.length() == 0)
04224                         osrlerror(NULL, NULL, parserData, "otherResult name cannot be empty");
04225                 if (osresult->setOtherJobResultName(parserData->kounter, parserData->nameAttribute) == false)
04226                         osrlerror(NULL, NULL, parserData, "setJobOtherResultName failed");
04227         }
04228     break;
04229 
04230   case 414:
04231 
04232     {   
04233                 if (osresult->setOtherJobResultValue(parserData->kounter, parserData->valueAttribute) == false)
04234                         osrlerror(NULL, NULL, parserData, "setJobOtherResultValue failed");
04235         }
04236     break;
04237 
04238   case 415:
04239 
04240     {   
04241                 if (osresult->setOtherJobResultDescription(parserData->kounter, parserData->descriptionAttribute) == false)
04242                         osrlerror(NULL, NULL, parserData, "setJobOtherResultDescription failed");
04243         }
04244     break;
04245 
04246   case 420:
04247 
04248     {   parserData->numberAttributePresent = false;
04249         parserData->nVarPresent = false;
04250         parserData->nObjPresent = false;
04251         parserData->nConPresent = false;
04252 }
04253     break;
04254 
04255   case 421:
04256 
04257     {   if (!parserData->numberAttributePresent)
04258                 osrlerror (NULL, NULL, parserData, "numberOfSolutions was never set");
04259 }
04260     break;
04261 
04262   case 424:
04263 
04264     {
04265                 parserData->numberOfSolutions = parserData->tempInt; 
04266                 if (osresult->setSolutionNumber(parserData->tempInt) == false)
04267                         osrlerror(NULL, NULL, parserData, "setSolutionNumber failed");
04268                 parserData->solutionIdx = 0;
04269         }
04270     break;
04271 
04272   case 425:
04273 
04274     {   
04275                 parserData->numberOfVariables = parserData->tempInt; 
04276                 if (osresult->setVariableNumber(parserData->tempInt) == false)
04277                         osrlerror(NULL, NULL, parserData, "setVariableNumber failed");
04278         }
04279     break;
04280 
04281   case 426:
04282 
04283     {
04284                 parserData->numberOfConstraints = parserData->tempInt; 
04285                 if (osresult->setConstraintNumber(parserData->tempInt) == false)
04286                         osrlerror(NULL, NULL, parserData, "setConstraintNumber failed");
04287         }
04288     break;
04289 
04290   case 427:
04291 
04292     {   
04293                 parserData->numberOfObjectives = parserData->tempInt; 
04294                 if (osresult->setObjectiveNumber(parserData->tempInt) == false)
04295                         osrlerror(NULL, NULL, parserData, "setObjectiveNumber failed");
04296         }
04297     break;
04298 
04299   case 428:
04300 
04301     {   if (parserData->numberOfSolutions > 0)
04302                         osrlerror(NULL, NULL, parserData, "expected at least one <solution> element");
04303         }
04304     break;
04305 
04306   case 429:
04307 
04308     {   if (parserData->solutionIdx != parserData->numberOfSolutions)
04309                         osrlerror(NULL, NULL, parserData, "fewer <solution> elements than specified");
04310         }
04311     break;
04312 
04313   case 437:
04314 
04315     {
04316         if (parserData->solutionIdx >= parserData->numberOfSolutions) 
04317         osrlerror(NULL, NULL, parserData, "too many solutions"); 
04318         parserData->idxAttributePresent = false;
04319         parserData->weightedObjAttributePresent = false;
04320 }
04321     break;
04322 
04323   case 443:
04324 
04325     {   if (parserData->idxAttributePresent)
04326                 osrlerror(NULL, NULL, parserData, "target objective idx previously set");
04327         parserData->idxAttributePresent = true;
04328         if((yyvsp[(3) - (4)].ival) >= 0) osrlerror(NULL, NULL, parserData, "target objective index must be negative");
04329         if (osresult->setSolutionTargetObjectiveIdx(parserData->solutionIdx, (yyvsp[(3) - (4)].ival)) == false)
04330                 osrlerror(NULL, NULL, parserData, "setSolutionTargetObjectiveIdx failed");
04331  }
04332     break;
04333 
04334   case 444:
04335 
04336     {   if (parserData->weightedObjAttributePresent)
04337                 osrlerror(NULL, NULL, parserData, "target objective idx previously set");
04338         parserData->weightedObjAttributePresent = true;
04339         parserData->tempStr = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));
04340         if (parserData->tempStr == "true")
04341         {       if (osresult->setSolutionWeightedObjectives(parserData->solutionIdx, true) == false)
04342                         osrlerror(NULL, NULL, parserData, "setSolutionWeightedObjectives failed");
04343         }
04344         else if (parserData->tempStr == "false")
04345         {       if (osresult->setSolutionWeightedObjectives(parserData->solutionIdx, false) == false)
04346                         osrlerror(NULL, NULL, parserData, "setSolutionWeightedObjectives failed");
04347         }
04348         else
04349                 osrlerror(NULL, NULL, parserData, "weightedobjectives must be true or false");
04350 }
04351     break;
04352 
04353   case 445:
04354 
04355     {
04356                 parserData->solutionIdx++;
04357         }
04358     break;
04359 
04360   case 447:
04361 
04362     {   parserData->typeAttributePresent = false;
04363                 parserData->descriptionAttributePresent = false;
04364                 parserData->numberAttributePresent = false;
04365                 parserData->numberOf = 0;
04366         }
04367     break;
04368 
04369   case 448:
04370 
04371     {   if (!parserData->typeAttributePresent)
04372                         osrlerror(NULL, NULL, parserData, "type attribute must be present for solution status element");
04373         }
04374     break;
04375 
04376   case 451:
04377 
04378     {   if ((parserData->typeAttribute != "unbounded"      ) && 
04379                         (parserData->typeAttribute != "globallyOptimal") && 
04380                 (parserData->typeAttribute != "locallyOptimal" ) &&
04381                 (parserData->typeAttribute != "optimal"        ) && 
04382                 (parserData->typeAttribute != "bestSoFar"      ) &&
04383                 (parserData->typeAttribute != "feasible"       ) && 
04384                 (parserData->typeAttribute != "infeasible"     ) &&
04385                 (parserData->typeAttribute != "unsure"         ) && 
04386                 (parserData->typeAttribute != "error"          ) &&
04387                 (parserData->typeAttribute != "other"          ))
04388                         osrlerror(NULL, NULL, parserData, "solution status type does not matched any legal value");
04389                 if (osresult->setSolutionStatusType(parserData->solutionIdx, parserData->typeAttribute) == false)
04390                         osrlerror(NULL, NULL, parserData, "setSolutionStatusType failed");
04391         }
04392     break;
04393 
04394   case 452:
04395 
04396     {   if (osresult->setSolutionStatusDescription(parserData->solutionIdx, parserData->descriptionAttribute) == false)
04397                         osrlerror(NULL, NULL, parserData, "setSolutionStatusDescription failed");
04398         }
04399     break;
04400 
04401   case 453:
04402 
04403     {   if (osresult->setNumberOfSolutionSubstatuses(parserData->solutionIdx, parserData->tempInt) == false)
04404                         osrlerror(NULL, NULL, parserData, "setNumberOfSolutionSubstatuses failed");
04405                 parserData->numberOf = parserData->tempInt;
04406                 parserData->kounter = 0;
04407         }
04408     break;
04409 
04410   case 454:
04411 
04412     {   if (parserData->numberOf > 0)
04413                         osrlerror(NULL, NULL, parserData, "expected at least one <substatus> element");
04414         }
04415     break;
04416 
04417   case 455:
04418 
04419     {   if (parserData->kounter != parserData->numberOf)
04420                         osrlerror(NULL, NULL, parserData, "fewer <substatus> elements than specified");
04421         }
04422     break;
04423 
04424   case 462:
04425 
04426     {   parserData->kounter++; }
04427     break;
04428 
04429   case 463:
04430 
04431     {   if (parserData->kounter >= parserData->numberOf)
04432                 osrlerror(NULL, NULL, parserData, "more <substatus> elements than specified");
04433         parserData->typeAttributePresent = false;
04434         parserData->descriptionAttributePresent = false;
04435 }
04436     break;
04437 
04438   case 464:
04439 
04440     {   if (!parserData->typeAttributePresent)
04441                 osrlerror (NULL, NULL, parserData, "<substatus> must have type attribute");
04442 }
04443     break;
04444 
04445   case 467:
04446 
04447     {   
04448                 if (parserData->typeAttribute != "stoppedByLimit"  &&
04449                         parserData->typeAttribute != "stoppedByBounds" &&
04450                         parserData->typeAttribute != "other" )
04451                 osrlerror(NULL, NULL, parserData, "substatus type attribute has bad value");
04452                 if (osresult->setSolutionSubstatusType(parserData->solutionIdx, parserData->kounter, 
04453                                                                                            parserData->typeAttribute) == false)
04454                         osrlerror(NULL, NULL, parserData, "setSolutionSubstatusType failed");
04455         }
04456     break;
04457 
04458   case 468:
04459 
04460     {   
04461                 if (osresult->setSolutionSubstatusDescription(parserData->solutionIdx, parserData->kounter,
04462                                                                                                           parserData->descriptionAttribute) == false)
04463                         osrlerror(NULL, NULL, parserData, "setSolutionSubstatusDescription failed");
04464         }
04465     break;
04466 
04467   case 479:
04468 
04469     {   parserData->tempStr = (yyvsp[(1) - (1)].sval);
04470         free((yyvsp[(1) - (1)].sval));
04471                 osresult->setSolutionMessage(parserData->solutionIdx, parserData->tempStr);
04472                 parserData->errorText = NULL;
04473         }
04474     break;
04475 
04476   case 482:
04477 
04478     {   parserData->numberOfOtherVariableResults = 0; }
04479     break;
04480 
04481   case 484:
04482 
04483     {   
04484         if (osresult->setNumberOfOtherVariableResults(parserData->solutionIdx, 
04485                                                                                                   parserData->tempInt) == false)
04486                 osrlerror(NULL, NULL, parserData, "setNumberOfOtherVariableResults failed");
04487         parserData->numberOfOtherVariableResults = parserData->tempInt;
04488         parserData->iOther = 0;
04489 }
04490     break;
04491 
04492   case 493:
04493 
04494     {
04495         if (osresult->setNumberOfVarValues(parserData->solutionIdx, parserData->numberOfVar) == false)
04496                 osrlerror(NULL, NULL, parserData, "setNumberOfVarValues failed");
04497         parserData->kounter = 0;
04498 }
04499     break;
04500 
04501   case 494:
04502 
04503     {   if (parserData->numberOfVar > 0)
04504                         osrlerror(NULL, NULL, parserData, "expected at least one <var> element");
04505         }
04506     break;
04507 
04508   case 495:
04509 
04510     {   if (parserData->kounter != parserData->numberOfVar)
04511                         osrlerror(NULL, NULL, parserData, "fewer <var> elements than specified");
04512         }
04513     break;
04514 
04515   case 502:
04516 
04517     {   if (osresult->setVarValue(parserData->solutionIdx, parserData->kounter, 
04518                                                           parserData->idx,         parserData->tempVal) == false)
04519                         osrlerror(NULL, NULL, parserData, "setVarValue failed");
04520         parserData->kounter++;
04521 }
04522     break;
04523 
04524   case 503:
04525 
04526     {   
04527         if (parserData->kounter >= parserData->numberOfVar)
04528                 osrlerror(NULL, NULL, parserData, "more <var> elements than specified");
04529 }
04530     break;
04531 
04532   case 504:
04533 
04534     {   parserData->idx = (yyvsp[(3) - (4)].ival); }
04535     break;
04536 
04537   case 506:
04538 
04539     {parserData->tempVal = (yyvsp[(1) - (1)].ival); }
04540     break;
04541 
04542   case 507:
04543 
04544     {parserData->tempVal = (yyvsp[(1) - (1)].dval); }
04545     break;
04546 
04547   case 511:
04548 
04549     {
04550         if (osresult->setNumberOfVarValuesString(parserData->solutionIdx, parserData->numberOfVar) == false)
04551                 osrlerror(NULL, NULL, parserData, "setNumberOfVarValuesString failed");
04552         parserData->kounter = 0;
04553 }
04554     break;
04555 
04556   case 512:
04557 
04558     {   if (parserData->numberOfVar > 0)
04559                         osrlerror(NULL, NULL, parserData, "expected at least one <var> element");
04560         }
04561     break;
04562 
04563   case 513:
04564 
04565     {   if (parserData->kounter != parserData->numberOfVar)
04566                         osrlerror(NULL, NULL, parserData, "fewer <var> elements than specified");
04567         }
04568     break;
04569 
04570   case 520:
04571 
04572     {
04573         if (osresult->setVarValueString(parserData->solutionIdx, parserData->kounter, 
04574                                                                         parserData->idx,         parserData->tempStr) == false)
04575                         osrlerror(NULL, NULL, parserData, "setVarValueString failed");
04576         parserData->kounter++;
04577 }
04578     break;
04579 
04580   case 521:
04581 
04582     {   
04583         if (parserData->kounter >= parserData->numberOfVar)
04584                 osrlerror(NULL, NULL, parserData, "more <var> elements than specified");
04585 }
04586     break;
04587 
04588   case 522:
04589 
04590     { parserData->idx = (yyvsp[(3) - (4)].ival); }
04591     break;
04592 
04593   case 523:
04594 
04595     {parserData->tempStr = "";}
04596     break;
04597 
04598   case 528:
04599 
04600     {parserData->tempStr = (yyvsp[(1) - (1)].sval); free((yyvsp[(1) - (1)].sval));}
04601     break;
04602 
04603   case 532:
04604 
04605     {
04606         if (osresult->setNumberOfBasisVar(parserData->solutionIdx, parserData->numberOfVar) == false)
04607                 osrlerror(NULL, NULL, parserData, "setNumberOfBasisVar failed");
04608         parserData->kounter = 0;
04609 }
04610     break;
04611 
04612   case 533:
04613 
04614     {   if (parserData->numberOfVar > 0)
04615                         osrlerror(NULL, NULL, parserData, "expected at least one <var> element");
04616         }
04617     break;
04618 
04619   case 534:
04620 
04621     {   if (parserData->kounter != parserData->numberOfVar)
04622                         osrlerror(NULL, NULL, parserData, "fewer <var> elements than specified");
04623         }
04624     break;
04625 
04626   case 542:
04627 
04628     {   
04629         if (parserData->kounter >= parserData->numberOfVar)
04630                 osrlerror(NULL, NULL, parserData, "more <var> elements than specified");
04631 }
04632     break;
04633 
04634   case 543:
04635 
04636     { parserData->idx = (yyvsp[(3) - (4)].ival); }
04637     break;
04638 
04639   case 544:
04640 
04641     {   parserData->tempStr = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));
04642         if (parserData->tempStr != "unknown"  &&
04643                 parserData->tempStr != "basic"    &&
04644                 parserData->tempStr != "atLower"  &&
04645                 parserData->tempStr != "atUpper"  &&
04646                 parserData->tempStr != "superBasic" )
04647                 osrlerror(NULL, NULL, parserData, "unrecognized basis status");
04648         if (osresult->setBasisVar(parserData->solutionIdx, parserData->kounter, 
04649                                                           parserData->idx,         parserData->tempStr) == false)
04650                         osrlerror(NULL, NULL, parserData, "setBasisVar failed");
04651         parserData->kounter++;
04652 }
04653     break;
04654 
04655   case 547:
04656 
04657     {    
04658                 parserData->iOther++;
04659         }
04660     break;
04661 
04662   case 548:
04663 
04664     {
04665         if (parserData->iOther >= parserData->numberOfOtherVariableResults)
04666                 osrlerror(NULL, NULL, parserData, "more <otherVariableResults> than specified");
04667         parserData->nameAttributePresent = false;       
04668         parserData->numberAttributePresent = false;     
04669         parserData->valueAttributePresent = false;      
04670         parserData->descriptionAttributePresent = false;        
04671 }
04672     break;
04673 
04674   case 549:
04675 
04676     {   if(!parserData->nameAttributePresent) 
04677                         osrlerror(NULL, NULL, parserData, "other element requires name attribute"); 
04678                 if(!parserData->numberAttributePresent) 
04679                         osrlerror(NULL, NULL, parserData, "other element requires numberOfVar attribute"); 
04680         }
04681     break;
04682 
04683   case 552:
04684 
04685     {   if (parserData->numberAttributePresent)
04686                         osrlerror(NULL, NULL, parserData, "numberOfVar attribute previously set");
04687                 parserData->numberAttributePresent = true;
04688                 if (osresult->setOtherVariableResultNumberOfVar(parserData->solutionIdx, 
04689                                                                                                                 parserData->iOther, 
04690                                                                                                                 parserData->numberOfVar) == false)
04691                         osrlerror(NULL, NULL, parserData, "setOtherVariableResultNumberOfVar failed");
04692                 parserData->kounter = 0;
04693         }
04694     break;
04695 
04696   case 553:
04697 
04698     {   
04699                 if (osresult->setOtherVariableResultValue(parserData->solutionIdx, parserData->iOther, 
04700                                                                                                   parserData->valueAttribute) == false)
04701                         osrlerror(NULL, NULL, parserData, "setOtherVariableResultValue failed");
04702     }
04703     break;
04704 
04705   case 554:
04706 
04707     {   
04708                 if (osresult->setOtherVariableResultName(parserData->solutionIdx, parserData->iOther, 
04709                                                                                                  parserData->nameAttribute) == false)
04710                         osrlerror(NULL, NULL, parserData, "setOtherVariableResultName failed");
04711     }
04712     break;
04713 
04714   case 555:
04715 
04716     {   
04717                 if (osresult->setOtherVariableResultDescription(parserData->solutionIdx, parserData->iOther, 
04718                                                                                                                 parserData->descriptionAttribute) == false)
04719                         osrlerror(NULL, NULL, parserData, "setOtherVariableResultDescription failed");
04720     }
04721     break;
04722 
04723   case 564:
04724 
04725     {   
04726         parserData->kounter++;
04727 }
04728     break;
04729 
04730   case 566:
04731 
04732     {   
04733         if (osresult->setOtherVariableResultVarIdx(parserData->solutionIdx, parserData->iOther, 
04734                                                                                            parserData->kounter, (yyvsp[(3) - (4)].ival)) == false)
04735                         osrlerror(NULL, NULL, parserData, "setOtherVariableResultVarIdx failed");
04736 }
04737     break;
04738 
04739   case 572:
04740 
04741     {   
04742                 if (osresult->setOtherVariableResultVar(parserData->solutionIdx, parserData->iOther, 
04743                                                                                                 parserData->kounter,     parserData->tempStr) 
04744                                                                                                     == false)
04745                         osrlerror(NULL, NULL, parserData, "setOtherVariableResultVar failed");
04746         }
04747     break;
04748 
04749   case 575:
04750 
04751     {   parserData->numberOfOtherObjectiveResults = 0; 
04752         parserData->iOther = 0;
04753 }
04754     break;
04755 
04756   case 577:
04757 
04758     {
04759         parserData->numberOfOtherObjectiveResults = parserData->tempInt;
04760     if (osresult->setNumberOfOtherObjectiveResults(parserData->solutionIdx, 
04761                                                                                                    parserData->tempInt) == false)
04762                 osrlerror(NULL, NULL, parserData, "setNumberOfOtherObjectiveResults failed");
04763         parserData->iOther = 0;
04764 }
04765     break;
04766 
04767   case 586:
04768 
04769     {
04770         if (osresult->setNumberOfObjValues(parserData->solutionIdx, parserData->numberOfObj) == false)
04771                         osrlerror(NULL, NULL, parserData, "setNumberOfObjValues failed");
04772         parserData->kounter = 0;
04773 }
04774     break;
04775 
04776   case 587:
04777 
04778     {   if (parserData->numberOfObj > 0)
04779                         osrlerror(NULL, NULL, parserData, "expected at least one <obj> element");
04780         }
04781     break;
04782 
04783   case 588:
04784 
04785     {   if (parserData->kounter != parserData->numberOfObj)
04786                         osrlerror(NULL, NULL, parserData, "fewer <obj> elements than specified");
04787         }
04788     break;
04789 
04790   case 595:
04791 
04792     {   if (osresult->setObjValue(parserData->solutionIdx, parserData->kounter, 
04793                                                           parserData->idx,         parserData->tempVal) == false)
04794                         osrlerror(NULL, NULL, parserData, "setObjValue failed");
04795         parserData->kounter++;
04796 }
04797     break;
04798 
04799   case 596:
04800 
04801     {   
04802         if (parserData->kounter >= parserData->numberOfObj)
04803                 osrlerror(NULL, NULL, parserData, "more <obj> elements than specified");
04804         parserData->idx = -1;
04805 }
04806     break;
04807 
04808   case 598:
04809 
04810     { parserData->idx = (yyvsp[(3) - (4)].ival); }
04811     break;
04812 
04813   case 600:
04814 
04815     {parserData->tempVal = (yyvsp[(1) - (1)].ival); }
04816     break;
04817 
04818   case 601:
04819 
04820     {parserData->tempVal = (yyvsp[(1) - (1)].dval); }
04821     break;
04822 
04823   case 604:
04824 
04825     {    
04826                 parserData->iOther++;  
04827         }
04828     break;
04829 
04830   case 605:
04831 
04832     {
04833         if (parserData->iOther >= parserData->numberOfOtherObjectiveResults)
04834                 osrlerror(NULL, NULL, parserData, "more <otherObjectiveResults> than specified");
04835         parserData->nameAttributePresent = false;       
04836         parserData->numberAttributePresent = false;     
04837         parserData->valueAttributePresent = false;      
04838         parserData->descriptionAttributePresent = false;        
04839 }
04840     break;
04841 
04842   case 606:
04843 
04844     {   if(!parserData->nameAttributePresent) 
04845                         osrlerror(NULL, NULL, parserData, "other element requires name attribute"); 
04846                 if(!parserData->numberAttributePresent) 
04847                         osrlerror(NULL, NULL, parserData, "other element requires numberOfObj attribute"); 
04848         }
04849     break;
04850 
04851   case 609:
04852 
04853     {   if (parserData->numberAttributePresent)
04854                         osrlerror(NULL, NULL, parserData, "numberOfObj attribute previously set");
04855                 parserData->numberAttributePresent = true;
04856                 if (osresult->setOtherObjectiveResultNumberOfObj(parserData->solutionIdx, 
04857                                                                                  parserData->iOther, 
04858                                                                                  parserData->numberOfObj) == false)
04859                         osrlerror(NULL, NULL, parserData, "setOtherObjectiveResultNumberOfObj failed");
04860                 parserData->kounter = 0;
04861         }
04862     break;
04863 
04864   case 610:
04865 
04866     {   
04867                 if (osresult->setOtherObjectiveResultValue(parserData->solutionIdx, parserData->iOther, 
04868                                                                                                    parserData->valueAttribute) == false)
04869                         osrlerror(NULL, NULL, parserData, "setOtherObjectiveResultValue failed");
04870     }
04871     break;
04872 
04873   case 611:
04874 
04875     {   
04876                 if (osresult->setOtherObjectiveResultName(parserData->solutionIdx, parserData->iOther, 
04877                                                                                                   parserData->nameAttribute) == false)
04878                         osrlerror(NULL, NULL, parserData, "setOtherObjectiveResultName failed");
04879     }
04880     break;
04881 
04882   case 612:
04883 
04884     {   
04885                 if (osresult->setOtherObjectiveResultDescription(parserData->solutionIdx, 
04886                                                                                                                  parserData->iOther, 
04887                                                                                                                  parserData->descriptionAttribute) 
04888                                                                                                                      == false)
04889                         osrlerror(NULL, NULL, parserData, "setOtherObjectiveResultDescription failed");
04890     }
04891     break;
04892 
04893   case 621:
04894 
04895     {  
04896         parserData->kounter++;
04897 }
04898     break;
04899 
04900   case 623:
04901 
04902     {   if (osresult->setOtherObjectiveResultObjIdx(parserData->solutionIdx, parserData->iOther, parserData->kounter, (yyvsp[(3) - (4)].ival)) == false)
04903                 osrlerror(NULL, NULL, parserData, "setOtherObjectiveResultObjIdx failed");
04904 }
04905     break;
04906 
04907   case 629:
04908 
04909     {   if (osresult->setOtherObjectiveResultObj(parserData->solutionIdx, parserData->iOther, parserData->kounter, parserData->tempStr) == false)
04910                         osrlerror(NULL, NULL, parserData, "setOtherObjectiveResultObj failed");
04911         }
04912     break;
04913 
04914   case 632:
04915 
04916     {   parserData->numberOfOtherObjectiveResults = 0; 
04917         parserData->iOther = 0;
04918 }
04919     break;
04920 
04921   case 634:
04922 
04923     {
04924         parserData->numberOfOtherConstraintResults = parserData->tempInt;
04925         if (osresult->setNumberOfOtherConstraintResults(parserData->solutionIdx, parserData->tempInt) == false)
04926                 osrlerror(NULL, NULL, parserData, "setNumberOfOtherConstraintResults failed");
04927         parserData->iOther = 0;
04928 }
04929     break;
04930 
04931   case 642:
04932 
04933     {   parserData->numberAttributePresent = false; }
04934     break;
04935 
04936   case 643:
04937 
04938     {
04939         if (osresult->setNumberOfDualValues(parserData->solutionIdx, parserData->numberOfCon) == false)
04940                 osrlerror(NULL, NULL, parserData, "setNumberOfDualValues failed");
04941         parserData->kounter = 0;
04942 }
04943     break;
04944 
04945   case 644:
04946 
04947     {   if (parserData->numberOfCon > 0)
04948                         osrlerror(NULL, NULL, parserData, "expected at least one <con> element");
04949         }
04950     break;
04951 
04952   case 645:
04953 
04954     {   if (parserData->kounter != parserData->numberOfCon)
04955                         osrlerror(NULL, NULL, parserData, "fewer <con> elements than specified");
04956         }
04957     break;
04958 
04959   case 652:
04960 
04961     {   if (osresult->setDualValue(parserData->solutionIdx, parserData->kounter, 
04962                                                            parserData->idx,         parserData->tempVal) == false)
04963                 osrlerror(NULL, NULL, parserData, "setDualValue failed");
04964         parserData->kounter++;
04965 }
04966     break;
04967 
04968   case 653:
04969 
04970     {   
04971         if (parserData->kounter >= parserData->numberOfCon)
04972                 osrlerror(NULL, NULL, parserData, "more <con> elements than specified");
04973 }
04974     break;
04975 
04976   case 654:
04977 
04978     { parserData->idx = (yyvsp[(3) - (4)].ival); }
04979     break;
04980 
04981   case 655:
04982 
04983     {parserData->tempVal = (yyvsp[(1) - (1)].ival); }
04984     break;
04985 
04986   case 656:
04987 
04988     {parserData->tempVal = (yyvsp[(1) - (1)].dval); }
04989     break;
04990 
04991   case 659:
04992 
04993     {    
04994                 parserData->iOther++;  
04995         }
04996     break;
04997 
04998   case 660:
04999 
05000     {
05001         if (parserData->iOther >= parserData->numberOfOtherConstraintResults)
05002                 osrlerror(NULL, NULL, parserData, "more <otherConstraintResults> than specified");
05003         parserData->nameAttributePresent = false;       
05004         parserData->numberAttributePresent = false;     
05005         parserData->valueAttributePresent = false;      
05006         parserData->descriptionAttributePresent = false;        
05007 }
05008     break;
05009 
05010   case 661:
05011 
05012     {   if(!parserData->nameAttributePresent) 
05013                         osrlerror(NULL, NULL, parserData, "other element requires name attribute"); 
05014                 if(!parserData->numberAttributePresent) 
05015                         osrlerror(NULL, NULL, parserData, "other element requires numberOfCon attribute"); 
05016         }
05017     break;
05018 
05019   case 664:
05020 
05021     {   if (parserData->numberAttributePresent)
05022                         osrlerror(NULL, NULL, parserData, "numberOfCon attribute previously set");
05023                 parserData->numberAttributePresent = true;
05024                 if (osresult->setOtherConstraintResultNumberOfCon(parserData->solutionIdx, 
05025                                                                                       parserData->iOther, 
05026                                                                                       parserData->numberOfCon) == false)
05027                         osrlerror(NULL, NULL, parserData, "setOtherConstraintResultNumberOfCon failed");
05028                 parserData->kounter = 0;
05029         }
05030     break;
05031 
05032   case 665:
05033 
05034     {   
05035                 if (osresult->setOtherConstraintResultValue(parserData->solutionIdx, parserData->iOther, 
05036                                                                                                         parserData->valueAttribute) == false)
05037                         osrlerror(NULL, NULL, parserData, "setOtherConstraintResultValue failed");
05038     }
05039     break;
05040 
05041   case 666:
05042 
05043     {   
05044                 if (osresult->setOtherConstraintResultName(parserData->solutionIdx, parserData->iOther, 
05045                                                                                                    parserData->nameAttribute) == false)
05046                         osrlerror(NULL, NULL, parserData, "setOtherConstraintResultName failed");
05047     }
05048     break;
05049 
05050   case 667:
05051 
05052     {   
05053                 if (osresult->setOtherConstraintResultDescription(parserData->solutionIdx, parserData->iOther, 
05054                                                                                                                   parserData->descriptionAttribute) == false)
05055                         osrlerror(NULL, NULL, parserData, "setOtherConstraintResultDescription failed");
05056     }
05057     break;
05058 
05059   case 676:
05060 
05061     {   
05062         parserData->kounter++;
05063 }
05064     break;
05065 
05066   case 678:
05067 
05068     {   
05069         if (osresult->setOtherConstraintResultConIdx(parserData->solutionIdx, parserData->iOther, parserData->kounter, (yyvsp[(3) - (4)].ival)) == false)
05070                 osrlerror(NULL, NULL, parserData, "setOtherConstraintResultConIdx failed");
05071 }
05072     break;
05073 
05074   case 684:
05075 
05076     {   
05077                 if (osresult->setOtherConstraintResultCon(parserData->solutionIdx, parserData->iOther, parserData->kounter, parserData->tempStr) == false)
05078                         osrlerror(NULL, NULL, parserData, "setOtherConstraintResultCon failed");
05079         }
05080     break;
05081 
05082   case 687:
05083 
05084     {
05085         parserData->numberOf = 0; 
05086 }
05087     break;
05088 
05089   case 688:
05090 
05091     {   
05092     if (osresult->setNumberOfOtherSolutionResults(parserData->solutionIdx, parserData->tempInt) == false)
05093                 osrlerror(NULL, NULL, parserData, "setNumberOfOtherSolutionResults failed");
05094         parserData->numberOf = parserData->tempInt;
05095         parserData->iOther = 0; 
05096 }
05097     break;
05098 
05099   case 689:
05100 
05101     {   if (parserData->numberOf > 0)
05102                         osrlerror(NULL, NULL, parserData, "expected at least one <otherSolutionResult> element");
05103         }
05104     break;
05105 
05106   case 690:
05107 
05108     {   if (parserData->iOther != parserData->numberOf)
05109                         osrlerror(NULL, NULL, parserData, "fewer <otherSolutionResult> elements than specified");
05110         }
05111     break;
05112 
05113   case 697:
05114 
05115     {   parserData->iOther++;
05116 }
05117     break;
05118 
05119   case 698:
05120 
05121     {   if (parserData->iOther >= parserData->numberOf)
05122                 osrlerror(NULL, NULL, parserData, "more <otherSolutionResult> elements than specified");
05123         parserData->numberOfItemsPresent = false; 
05124         parserData->nameAttributePresent = false;
05125         parserData->categoryAttributePresent = false;
05126         parserData->descriptionAttributePresent = false;
05127 }
05128     break;
05129 
05130   case 699:
05131 
05132     {   if (!parserData->nameAttributePresent)
05133                 osrlerror (NULL, NULL, parserData, "<otherSolutionResult> element must have name attribute");
05134         if (!parserData->numberOfItemsPresent)
05135                 osrlerror (NULL, NULL, parserData, "<otherSolutionResult> element must have numberOfItems attribute");
05136 }
05137     break;
05138 
05139   case 702:
05140 
05141     {   
05142                 if (osresult->setOtherSolutionResultName(parserData->solutionIdx, parserData->iOther,
05143                                                                                                  parserData->nameAttribute) == false)
05144                         osrlerror(NULL, NULL, parserData, "setOtherSolutionResultName failed");
05145         }
05146     break;
05147 
05148   case 703:
05149 
05150     {   
05151                 if (osresult->setOtherSolutionResultCategory(parserData->solutionIdx, parserData->iOther,
05152                                                                                                          parserData->categoryAttribute) == false)
05153                         osrlerror(NULL, NULL, parserData, "setOtherSolutionResultCategory failed");
05154         }
05155     break;
05156 
05157   case 704:
05158 
05159     {   
05160                 if (osresult->setOtherSolutionResultDescription(parserData->solutionIdx, 
05161                                                                                                                 parserData->iOther,
05162                                                                                                                 parserData->descriptionAttribute) 
05163                                                                                                                     == false)
05164                         osrlerror(NULL, NULL, parserData, "setOtherSolutionResultDescription failed");
05165         }
05166     break;
05167 
05168   case 705:
05169 
05170     {   
05171                 if (osresult->setOtherSolutionResultNumberOfItems(parserData->solutionIdx, 
05172                                                                                                                   parserData->iOther,
05173                                                                                                                   parserData->numberOfItems) == false)
05174                         osrlerror(NULL, NULL, parserData, "setOtherSolutionResultNumberOfItems failed");
05175                 parserData->kounter = 0;
05176         }
05177     break;
05178 
05179   case 706:
05180 
05181     {   if (parserData->numberOfItems > 0)
05182                         osrlerror(NULL, NULL, parserData, "expected at least one <item> element");
05183         }
05184     break;
05185 
05186   case 707:
05187 
05188     {   if (parserData->kounter != parserData->numberOfItems)
05189                         osrlerror(NULL, NULL, parserData, "fewer <item> elements than specified");
05190         }
05191     break;
05192 
05193   case 714:
05194 
05195     {   parserData->kounter++;
05196 }
05197     break;
05198 
05199   case 715:
05200 
05201     {   if (parserData->kounter >= parserData->numberOfItems)
05202                 osrlerror(NULL, NULL, parserData, "more <item> elements than specified");
05203 }
05204     break;
05205 
05206   case 720:
05207 
05208     {   if (parserData->kounter >= parserData->numberOfItems)
05209                 osrlerror(NULL, NULL, parserData, "more <item> elements than specified");
05210         parserData->itemContent = (yyvsp[(1) - (1)].sval); free((yyvsp[(1) - (1)].sval));
05211         if (osresult->setOtherSolutionResultItem(parserData->solutionIdx, parserData->iOther, 
05212                                                                                          parserData->kounter, parserData->itemContent) 
05213                                                                                              == false)
05214                         osrlerror(NULL, NULL, parserData, "setOtherSolutionResultItem failed");
05215 }
05216     break;
05217 
05218   case 723:
05219 
05220     {
05221         parserData->numberOf = 0; 
05222 }
05223     break;
05224 
05225   case 724:
05226 
05227     {   
05228     if (osresult->setNumberOfSolverOutputs(parserData->tempInt) == false)
05229                 osrlerror(NULL, NULL, parserData, "setNumberOfSolverOutputs failed");
05230         parserData->numberOf = parserData->tempInt;
05231         parserData->iOther = 0; 
05232 }
05233     break;
05234 
05235   case 725:
05236 
05237     {   if (parserData->numberOf > 0)
05238                         osrlerror(NULL, NULL, parserData, "expected at least one <solverOutput> element");
05239         }
05240     break;
05241 
05242   case 726:
05243 
05244     {   if (parserData->iOther != parserData->numberOf)
05245                         osrlerror(NULL, NULL, parserData, "fewer <solverOutput> elements than specified");
05246         }
05247     break;
05248 
05249   case 733:
05250 
05251     {   parserData->iOther++;
05252 }
05253     break;
05254 
05255   case 734:
05256 
05257     {   if (parserData->iOther >= parserData->numberOf)
05258                 osrlerror(NULL, NULL, parserData, "more <solverOutput> elements than specified");
05259         parserData->numberOfItemsPresent = false; 
05260         parserData->nameAttributePresent = false;
05261         parserData->categoryAttributePresent = false;
05262         parserData->descriptionAttributePresent = false;
05263 }
05264     break;
05265 
05266   case 735:
05267 
05268     {   if (!parserData->nameAttributePresent)
05269                 osrlerror (NULL, NULL, parserData, "<solverOutput> element must have name attribute");
05270         if (!parserData->numberOfItemsPresent)
05271                 osrlerror (NULL, NULL, parserData, "<solverOutput> element must have numberOfItems attribute");
05272 }
05273     break;
05274 
05275   case 738:
05276 
05277     {   
05278                 if (osresult->setSolverOutputName(parserData->iOther, parserData->nameAttribute) == false)
05279                         osrlerror(NULL, NULL, parserData, "setSolverOutputName failed");
05280         }
05281     break;
05282 
05283   case 739:
05284 
05285     {   
05286                 if (osresult->setSolverOutputCategory(parserData->iOther, 
05287                                                                                           parserData->categoryAttribute) == false)
05288                         osrlerror(NULL, NULL, parserData, "setSolverOutputCategory failed");
05289         }
05290     break;
05291 
05292   case 740:
05293 
05294     {   
05295                 if (osresult->setSolverOutputDescription(parserData->iOther, 
05296                                                                                                  parserData->descriptionAttribute) == false)
05297                         osrlerror(NULL, NULL, parserData, "setSolverOutputDescription failed");
05298         }
05299     break;
05300 
05301   case 741:
05302 
05303     {   
05304                 if (osresult->setSolverOutputNumberOfItems(parserData->iOther, 
05305                                                                                                    parserData->numberOfItems) == false)
05306                         osrlerror(NULL, NULL, parserData, "setSolverOutputNumberOfItems failed");
05307                 parserData->kounter = 0;
05308         }
05309     break;
05310 
05311   case 742:
05312 
05313     {   if (parserData->numberOfItems > 0)
05314                         osrlerror(NULL, NULL, parserData, "expected at least one <item> element");
05315         }
05316     break;
05317 
05318   case 743:
05319 
05320     {   if (parserData->kounter != parserData->numberOfItems)
05321                         osrlerror(NULL, NULL, parserData, "fewer <item> elements than specified");
05322         }
05323     break;
05324 
05325   case 750:
05326 
05327     {   parserData->kounter++;
05328 }
05329     break;
05330 
05331   case 751:
05332 
05333     {   if (parserData->kounter >= parserData->numberOfItems)
05334                 osrlerror(NULL, NULL, parserData, "more <item> elements than specified");
05335 }
05336     break;
05337 
05338   case 755:
05339 
05340     {   if (parserData->kounter >= parserData->numberOfItems)
05341                 osrlerror(NULL, NULL, parserData, "more <item> elements than specified");
05342         parserData->itemContent = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));
05343         if (osresult->setSolverOutputItem(parserData->iOther, parserData->kounter, 
05344                                                                           parserData->itemContent) == false)
05345                 osrlerror(NULL, NULL, parserData, "setSolverOutputItem failed");
05346 }
05347     break;
05348 
05349   case 756:
05350 
05351     {   if (parserData->categoryAttributePresent ) 
05352                                 osrlerror(NULL, NULL, parserData, "only one category attribute allowed for this element");
05353                         parserData->categoryAttributePresent = true;
05354                 }
05355     break;
05356 
05357   case 759:
05358 
05359     { parserData->categoryAttribute = ""; }
05360     break;
05361 
05362   case 760:
05363 
05364     { parserData->categoryAttribute = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval)); }
05365     break;
05366 
05367   case 761:
05368 
05369     {   if (parserData->descriptionAttributePresent ) 
05370                                 osrlerror(NULL, NULL, parserData, "only one description attribute allowed for this element");
05371                         parserData->descriptionAttributePresent = true;
05372                 }
05373     break;
05374 
05375   case 764:
05376 
05377     { parserData->descriptionAttribute = ""; }
05378     break;
05379 
05380   case 765:
05381 
05382     { parserData->descriptionAttribute = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));}
05383     break;
05384 
05385   case 766:
05386 
05387     {   if (parserData->nameAttributePresent ) 
05388                                 osrlerror(NULL, NULL, parserData, "only one name attribute allowed for this element");
05389                         parserData->nameAttributePresent = true;
05390                 }
05391     break;
05392 
05393   case 769:
05394 
05395     { parserData->nameAttribute = ""; }
05396     break;
05397 
05398   case 770:
05399 
05400     { parserData->nameAttribute = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));}
05401     break;
05402 
05403   case 771:
05404 
05405     {   if (parserData->typeAttributePresent ) 
05406                                 osrlerror(NULL, NULL, parserData, "only one type attribute allowed for this element");
05407                         parserData->typeAttributePresent = true;
05408                 }
05409     break;
05410 
05411   case 774:
05412 
05413     { parserData->typeAttribute = ""; }
05414     break;
05415 
05416   case 775:
05417 
05418     { parserData->typeAttribute = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));}
05419     break;
05420 
05421   case 776:
05422 
05423     {   if (parserData->unitAttributePresent ) 
05424                                 osrlerror(NULL, NULL, parserData, "only one unit attribute allowed for this element");
05425                         parserData->unitAttributePresent = true;
05426                 }
05427     break;
05428 
05429   case 779:
05430 
05431     { parserData->unitAttribute = ""; }
05432     break;
05433 
05434   case 780:
05435 
05436     { parserData->unitAttribute = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));}
05437     break;
05438 
05439   case 781:
05440 
05441     {   if (parserData->valueAttributePresent ) 
05442                                 osrlerror(NULL, NULL, parserData, "only one value attribute allowed for this element");
05443                         parserData->valueAttributePresent = true;
05444                 }
05445     break;
05446 
05447   case 784:
05448 
05449     { parserData->valueAttribute = ""; }
05450     break;
05451 
05452   case 785:
05453 
05454     { parserData->valueAttribute = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));}
05455     break;
05456 
05457   case 786:
05458 
05459     {
05460         parserData->tempInt = (yyvsp[(3) - (4)].ival);
05461 }
05462     break;
05463 
05464   case 787:
05465 
05466     {   if (parserData->numberAttributePresent)
05467                 osrlerror(NULL, NULL, parserData, "numberOfSolutions attribute previously set");
05468         if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, "number of solutions cannot be negative");
05469         parserData->numberAttributePresent = true;
05470         parserData->tempInt = (yyvsp[(3) - (4)].ival); 
05471 }
05472     break;
05473 
05474   case 788:
05475 
05476     {   if (parserData->nVarPresent)
05477                 osrlerror(NULL, NULL, parserData, "numberOfVariables attribute previously set");
05478         if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, "number of variables cannot be negative");
05479         parserData->nVarPresent = true; 
05480         parserData->tempInt = (yyvsp[(3) - (4)].ival); 
05481 }
05482     break;
05483 
05484   case 789:
05485 
05486     {   if (parserData->nConPresent)
05487                 osrlerror(NULL, NULL, parserData, "numberOfConstraints attribute previously set");
05488         if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, "number of constraints cannot be negative");
05489         parserData->nConPresent = true;         
05490         parserData->tempInt = (yyvsp[(3) - (4)].ival); 
05491 }
05492     break;
05493 
05494   case 790:
05495 
05496     {   if (parserData->nObjPresent)
05497                 osrlerror(NULL, NULL, parserData, "numberOfObjectives attribute previously set");
05498         if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, "number of objectives cannot be negative");
05499         parserData->nObjPresent = true;
05500         parserData->tempInt = (yyvsp[(3) - (4)].ival); 
05501 }
05502     break;
05503 
05504   case 791:
05505 
05506     {   
05507         if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, "number of other variable results cannot be negative");
05508         parserData->tempInt = (yyvsp[(3) - (4)].ival);
05509 }
05510     break;
05511 
05512   case 792:
05513 
05514     {
05515         if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, "number of other objective results cannot be negative");
05516         parserData->tempInt = (yyvsp[(3) - (4)].ival);
05517 }
05518     break;
05519 
05520   case 793:
05521 
05522     {
05523         if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, "number of other constraint results cannot be negative");
05524         parserData->tempInt = (yyvsp[(3) - (4)].ival);
05525 }
05526     break;
05527 
05528   case 794:
05529 
05530     {   
05531         if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, "number of other solution results cannot be negative");
05532         parserData->tempInt = (yyvsp[(3) - (4)].ival);
05533 }
05534     break;
05535 
05536   case 795:
05537 
05538     {
05539         if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, "number of <var> cannot be negative");
05540         parserData->numberOfVar = (yyvsp[(3) - (4)].ival); 
05541 }
05542     break;
05543 
05544   case 796:
05545 
05546     {
05547         if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, "number of <obj> cannot be negative");
05548         parserData->numberOfObj = (yyvsp[(3) - (4)].ival);
05549 }
05550     break;
05551 
05552   case 797:
05553 
05554     {
05555         if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, "number of <con> cannot be negative");
05556         parserData->numberOfCon = (yyvsp[(3) - (4)].ival);
05557 }
05558     break;
05559 
05560   case 798:
05561 
05562     {
05563         parserData->tempInt = (yyvsp[(3) - (4)].ival);
05564 }
05565     break;
05566 
05567   case 799:
05568 
05569     {   
05570    if (parserData->numberOfItemsPresent ) 
05571         osrlerror(NULL, NULL, parserData, "only one numberOfItems attribute allowed");
05572         if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, "number of items cannot be negative");
05573         parserData->numberOfItemsPresent = true;
05574         parserData->numberOfItems = (yyvsp[(3) - (4)].ival);
05575 }
05576     break;
05577 
05578   case 800:
05579 
05580     {   
05581         if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, "number of other solver outputs cannot be negative");
05582         parserData->tempInt = (yyvsp[(3) - (4)].ival);
05583 }
05584     break;
05585 
05586   case 801:
05587 
05588     {   if (parserData->numberAttributePresent ) 
05589         osrlerror(NULL, NULL, parserData, "only one numberOfSubstatuses attribute allowed");
05590     parserData->numberAttributePresent = true;
05591         if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, "number of <substatus> elements cannot be negative");
05592         parserData->tempInt = (yyvsp[(3) - (4)].ival);
05593 }
05594     break;
05595 
05596   case 802:
05597 
05598     {parserData->tempVal = (yyvsp[(1) - (1)].ival);}
05599     break;
05600 
05601   case 803:
05602 
05603     {parserData->tempVal = (yyvsp[(1) - (1)].dval);}
05604     break;
05605 
05606   case 804:
05607 
05608     { parserData->tempStr = (yyvsp[(1) - (1)].sval);       free((yyvsp[(1) - (1)].sval)); }
05609     break;
05610 
05611   case 805:
05612 
05613     { parserData->tempStr = os_dtoa_format((yyvsp[(1) - (1)].ival)); }
05614     break;
05615 
05616   case 806:
05617 
05618     { parserData->tempStr = os_dtoa_format((yyvsp[(1) - (1)].dval)); }
05619     break;
05620 
05621 
05622 /* Line 1267 of yacc.c.  */
05623 
05624       default: break;
05625     }
05626   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
05627 
05628   YYPOPSTACK (yylen);
05629   yylen = 0;
05630   YY_STACK_PRINT (yyss, yyssp);
05631 
05632   *++yyvsp = yyval;
05633   *++yylsp = yyloc;
05634 
05635   /* Now `shift' the result of the reduction.  Determine what state
05636      that goes to, based on the state we popped back to and the rule
05637      number reduced by.  */
05638 
05639   yyn = yyr1[yyn];
05640 
05641   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
05642   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
05643     yystate = yytable[yystate];
05644   else
05645     yystate = yydefgoto[yyn - YYNTOKENS];
05646 
05647   goto yynewstate;
05648 
05649 
05650 /*------------------------------------.
05651 | yyerrlab -- here on detecting error |
05652 `------------------------------------*/
05653 yyerrlab:
05654   /* If not already recovering from an error, report this error.  */
05655   if (!yyerrstatus)
05656     {
05657       ++yynerrs;
05658 #if ! YYERROR_VERBOSE
05659       yyerror (&yylloc, osresult, parserData, YY_("syntax error"));
05660 #else
05661       {
05662         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
05663         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
05664           {
05665             YYSIZE_T yyalloc = 2 * yysize;
05666             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
05667               yyalloc = YYSTACK_ALLOC_MAXIMUM;
05668             if (yymsg != yymsgbuf)
05669               YYSTACK_FREE (yymsg);
05670             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
05671             if (yymsg)
05672               yymsg_alloc = yyalloc;
05673             else
05674               {
05675                 yymsg = yymsgbuf;
05676                 yymsg_alloc = sizeof yymsgbuf;
05677               }
05678           }
05679 
05680         if (0 < yysize && yysize <= yymsg_alloc)
05681           {
05682             (void) yysyntax_error (yymsg, yystate, yychar);
05683             yyerror (&yylloc, osresult, parserData, yymsg);
05684           }
05685         else
05686           {
05687             yyerror (&yylloc, osresult, parserData, YY_("syntax error"));
05688             if (yysize != 0)
05689               goto yyexhaustedlab;
05690           }
05691       }
05692 #endif
05693     }
05694 
05695   yyerror_range[0] = yylloc;
05696 
05697   if (yyerrstatus == 3)
05698     {
05699       /* If just tried and failed to reuse look-ahead token after an
05700          error, discard it.  */
05701 
05702       if (yychar <= YYEOF)
05703         {
05704           /* Return failure if at end of input.  */
05705           if (yychar == YYEOF)
05706             YYABORT;
05707         }
05708       else
05709         {
05710           yydestruct ("Error: discarding",
05711                       yytoken, &yylval, &yylloc, osresult, parserData);
05712           yychar = YYEMPTY;
05713         }
05714     }
05715 
05716   /* Else will try to reuse look-ahead token after shifting the error
05717      token.  */
05718   goto yyerrlab1;
05719 
05720 
05721 /*---------------------------------------------------.
05722 | yyerrorlab -- error raised explicitly by YYERROR.  |
05723 `---------------------------------------------------*/
05724 yyerrorlab:
05725 
05726   /* Pacify compilers like GCC when the user code never invokes
05727      YYERROR and the label yyerrorlab therefore never appears in user
05728      code.  */
05729   if (/*CONSTCOND*/ 0)
05730      goto yyerrorlab;
05731 
05732   yyerror_range[0] = yylsp[1-yylen];
05733   /* Do not reclaim the symbols of the rule which action triggered
05734      this YYERROR.  */
05735   YYPOPSTACK (yylen);
05736   yylen = 0;
05737   YY_STACK_PRINT (yyss, yyssp);
05738   yystate = *yyssp;
05739   goto yyerrlab1;
05740 
05741 
05742 /*-------------------------------------------------------------.
05743 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
05744 `-------------------------------------------------------------*/
05745 yyerrlab1:
05746   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
05747 
05748   for (;;)
05749     {
05750       yyn = yypact[yystate];
05751       if (yyn != YYPACT_NINF)
05752         {
05753           yyn += YYTERROR;
05754           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
05755             {
05756               yyn = yytable[yyn];
05757               if (0 < yyn)
05758                 break;
05759             }
05760         }
05761 
05762       /* Pop the current state because it cannot handle the error token.  */
05763       if (yyssp == yyss)
05764         YYABORT;
05765 
05766       yyerror_range[0] = *yylsp;
05767       yydestruct ("Error: popping",
05768                   yystos[yystate], yyvsp, yylsp, osresult, parserData);
05769       YYPOPSTACK (1);
05770       yystate = *yyssp;
05771       YY_STACK_PRINT (yyss, yyssp);
05772     }
05773 
05774   if (yyn == YYFINAL)
05775     YYACCEPT;
05776 
05777   *++yyvsp = yylval;
05778 
05779   yyerror_range[1] = yylloc;
05780   /* Using YYLLOC is tempting, but would change the location of
05781      the look-ahead.  YYLOC is available though.  */
05782   YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
05783   *++yylsp = yyloc;
05784 
05785   /* Shift the error token.  */
05786   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
05787 
05788   yystate = yyn;
05789   goto yynewstate;
05790 
05791 
05792 /*-------------------------------------.
05793 | yyacceptlab -- YYACCEPT comes here.  |
05794 `-------------------------------------*/
05795 yyacceptlab:
05796   yyresult = 0;
05797   goto yyreturn;
05798 
05799 /*-----------------------------------.
05800 | yyabortlab -- YYABORT comes here.  |
05801 `-----------------------------------*/
05802 yyabortlab:
05803   yyresult = 1;
05804   goto yyreturn;
05805 
05806 #ifndef yyoverflow
05807 /*-------------------------------------------------.
05808 | yyexhaustedlab -- memory exhaustion comes here.  |
05809 `-------------------------------------------------*/
05810 yyexhaustedlab:
05811   yyerror (&yylloc, osresult, parserData, YY_("memory exhausted"));
05812   yyresult = 2;
05813   /* Fall through.  */
05814 #endif
05815 
05816 yyreturn:
05817   if (yychar != YYEOF && yychar != YYEMPTY)
05818      yydestruct ("Cleanup: discarding lookahead",
05819                  yytoken, &yylval, &yylloc, osresult, parserData);
05820   /* Do not reclaim the symbols of the rule which action triggered
05821      this YYABORT or YYACCEPT.  */
05822   YYPOPSTACK (yylen);
05823   YY_STACK_PRINT (yyss, yyssp);
05824   while (yyssp != yyss)
05825     {
05826       yydestruct ("Cleanup: popping",
05827                   yystos[*yyssp], yyvsp, yylsp, osresult, parserData);
05828       YYPOPSTACK (1);
05829     }
05830 #ifndef yyoverflow
05831   if (yyss != yyssa)
05832     YYSTACK_FREE (yyss);
05833 #endif
05834 #if YYERROR_VERBOSE
05835   if (yymsg != yymsgbuf)
05836     YYSTACK_FREE (yymsg);
05837 #endif
05838   /* Make sure YYID is used.  */
05839   return YYID (yyresult);
05840 }
05841 
05842 
05843 
05844 
05845 
05846 void osrlerror(YYLTYPE* mytype, OSResult *osresult, OSrLParserData* parserData, const char* errormsg )
05847 {
05848         osrl_empty_vectors( parserData);
05849         std::ostringstream outStr;
05850         std::string error = errormsg;
05851         error = "Input is either not valid or well formed: "  + error;
05852         outStr << error << std::endl;
05853         outStr << "See line number: " << osrlget_lineno( scanner) << std::endl; 
05854         outStr << "The offending text is: " << osrlget_text ( scanner ) << std::endl; 
05855         error = outStr.str();
05856         //printf("THIS DID NOT GET DESTROYED:   %s\n", parserData->errorText);
05857         //if( (parserData->errorText != NULL) &&  (strlen(parserData->errorText) > 0) ) free(  parserData->errorText);
05858         //osrllex_destroy( scanner);
05859         throw ErrorClass( error);
05860 } //end osrlerror
05861 
05862 void  yygetOSResult(const char *parsestring, OSResult *osresult, OSrLParserData *parserData) throw(ErrorClass){
05863         try{
05864                 osrl_scan_string( parsestring, scanner);
05865                 osrlset_lineno (1 , scanner );
05866                 //
05867                 // call the Bison parser
05868                 //
05869                 if(  osrlparse( osresult,  parserData) != 0) {
05870                         //osrllex_destroy(scanner);
05871                         throw ErrorClass(  "Error parsing the OSrL");
05872                  }
05873         }
05874         catch(const ErrorClass& eclass){
05875                 throw ErrorClass(  eclass.errormsg); 
05876         }
05877 } //end yygetOSResult
05878 
05879 void osrl_empty_vectors( OSrLParserData* parserData){
05880 
05881     int k;
05882     int numOtherVarVec = parserData->otherVarVec.size();
05883    
05884     for( k = 0; k < numOtherVarVec; k++){
05885         if( (parserData->otherVarVec[ k]  != NULL) && (parserData->otherVarVec[ k]->otherVarText != NULL) ) 
05886                         delete[] parserData->otherVarVec[ k]->otherVarText;
05887                 if( (parserData->otherVarVec[ k]  != NULL) && (parserData->otherVarVec[ k]->otherVarIndex != NULL) ) 
05888                         delete[] parserData->otherVarVec[ k]->otherVarIndex;
05889                         
05890                 if( parserData->otherVarVec[ k]  != NULL) delete parserData->otherVarVec[ k];
05891     }
05892         parserData->otherVarVec.clear(); 
05893         
05894         int numDualVals =  parserData->dualVals.size();
05895         for(k = 0; k < numDualVals; k++){
05896                 if( parserData->dualVals[ k]  != NULL  ) 
05897                         delete parserData->dualVals[ k];
05898         }
05899         parserData->dualVals.clear();
05900         
05901         
05902         int numObjVals =  parserData->objVals.size();
05903         for(k = 0; k < numObjVals; k++){
05904                 if( parserData->objVals[ k]  != NULL  ) 
05905                         delete parserData->objVals[ k];
05906         }
05907         parserData->objVals.clear();
05908         
05909         
05910         int numPrimalVals =  parserData->primalVals.size();
05911         for(k = 0; k < numPrimalVals; k++){     
05912                 if( parserData->primalVals[ k]  != NULL  ) 
05913                         delete parserData->primalVals[ k];
05914         }
05915         parserData->primalVals.clear();
05916 }//end osrl_empty_vectors
05917 
05918 

Generated on Thu Aug 5 03:03:01 2010 by  doxygen 1.4.7