OSParseosrl.tab.cpp
Go to the documentation of this file.
1 
2 /* A Bison parser, made by GNU Bison 2.4.1. */
3 
4 /* Skeleton implementation for Bison's Yacc-like parsers in C
5 
6  Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
7  Free Software Foundation, Inc.
8 
9  This program is free software: you can redistribute it and/or modify
10  it under the terms of the GNU General Public License as published by
11  the Free Software Foundation, either version 3 of the License, or
12  (at your option) any later version.
13 
14  This program is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with this program. If not, see <http://www.gnu.org/licenses/>. */
21 
22 /* As a special exception, you may create a larger work that contains
23  part or all of the Bison parser skeleton and distribute that work
24  under terms of your choice, so long as that work isn't itself a
25  parser generator using the skeleton or a modified version thereof
26  as a parser skeleton. Alternatively, if you modify or redistribute
27  the parser skeleton itself, you may (at your option) remove this
28  special exception, which will cause the skeleton and the resulting
29  Bison output files to be licensed under the GNU General Public
30  License without this special exception.
31 
32  This special exception was added by the Free Software Foundation in
33  version 2.2 of Bison. */
34 
35 /* C LALR(1) parser skeleton written by Richard Stallman, by
36  simplifying the original so-called "semantic" parser. */
37 
38 /* All symbols defined below should begin with yy or YY, to avoid
39  infringing on user name space. This should be done even for local
40  variables, as they might otherwise be expanded by user macros.
41  There are some unavoidable exceptions within include files to
42  define necessary library symbols; they are noted "INFRINGES ON
43  USER NAME SPACE" below. */
44 
45 /* Identify Bison output. */
46 #define YYBISON 1
47 
48 /* Bison version. */
49 #define YYBISON_VERSION "2.4.1"
50 
51 /* Skeleton name. */
52 #define YYSKELETON_NAME "yacc.c"
53 
54 /* Pure parsers. */
55 #define YYPURE 1
56 
57 /* Push parsers. */
58 #define YYPUSH 0
59 
60 /* Pull parsers. */
61 #define YYPULL 1
62 
63 /* Using locations. */
64 #define YYLSP_NEEDED 1
65 
66 /* Substitute the variable and function names. */
67 #define yyparse osrlparse
68 #define yylex osrllex
69 #define yyerror osrlerror
70 #define yylval osrllval
71 #define yychar osrlchar
72 #define yydebug osrldebug
73 #define yynerrs osrlnerrs
74 #define yylloc osrllloc
75 
76 /* Copy the first part of user declarations. */
77 
78 
79 
80 
81 #include "OSConfig.h"
82 #include "OSMathUtil.h"
83 #include "OSParameters.h"
84 #include "OSGeneral.h"
85 #include "OSErrorClass.h"
86 #include "OSResult.h"
87 #include "OSrLParserData.h"
88 #include "OSgLParserData.h"
89 #include "OSnLParserData.h"
90 #include "OSBase64.h"
91 
92 #include <iostream>
93 #include <sstream>
94 #include <stdio.h>
95 #include <cstring>
96 
97 #define OSRESULT_AVAILABLE
98 
99 //#define DEBUG
100 
101 #ifdef DEBUG
102 #define YYDEBUG 1
103 #endif
104 
106 YY_BUFFER_STATE osrl_scan_string (const char *yy_str , void* yyscanner );
107 int osrllex_init(void** ptr_yy_globals);
108 int osrllex_destroy (void* yyscanner );
109 int osrlget_lineno( void* yyscanner);
110 char *osrlget_text (void* yyscanner );
111 void osrlset_lineno (int line_number , void* yyscanner );
112 void osrlset_extra (OSrLParserData* parserData , void* yyscanner );
113 void yygetOSResult(const char *ch, OSResult* m_osresult, OSrLParserData *m_parserData, OSgLParserData *osglData, OSnLParserData *osnlData ) throw(ErrorClass);
117 
118 
119 
120 
121 
122 
123 /* Enabling traces. */
124 #ifndef YYDEBUG
125 # define YYDEBUG 0
126 #endif
127 
128 /* Enabling verbose error messages. */
129 #ifdef YYERROR_VERBOSE
130 # undef YYERROR_VERBOSE
131 # define YYERROR_VERBOSE 1
132 #else
133 # define YYERROR_VERBOSE 0
134 #endif
135 
136 /* Enabling the token table. */
137 #ifndef YYTOKEN_TABLE
138 # define YYTOKEN_TABLE 0
139 #endif
140 
141 
142 /* Tokens. */
143 #ifndef YYTOKENTYPE
144 # define YYTOKENTYPE
145  /* Put the tokens into the symbol table, so that GDB and other debuggers
146  know about them. */
147  enum yytokentype {
149  ELEMENTTEXT = 259,
150  ITEMTEXT = 260,
151  INTEGER = 261,
152  DOUBLE = 262,
153  QUOTE = 263,
154  TWOQUOTES = 264,
155  GREATERTHAN = 265,
157  OSRLSTART = 267,
160  OSRLEND = 270,
198  ENDTIMEEND = 308,
199  IDXSTART = 309,
200  IDXEND = 310,
206  MESSAGEEND = 316,
224  SOLUTIONEND = 334,
229  STATUSSTART = 339,
230  STATUSEND = 340,
237  TIMESTART = 347,
238  TIMEEND = 348,
265  HEADERSTART = 375,
266  HEADEREND = 376,
268  FILENAMEEND = 378,
288  INDEXESEND = 398,
289  VALUESSTART = 399,
290  VALUESEND = 400,
292  NONZEROSEND = 402,
293  ELSTART = 403,
294  ELEND = 404,
297  ITEMEMPTY = 407,
298  ITEMSTART = 408,
299  ITEMEND = 409,
301  BASE64START = 411,
302  BASE64END = 412,
307  CATEGORYATT = 417,
311  SOLVERATT = 421,
313  NAMEATT = 423,
315  TYPEATT = 425,
317  ENUMTYPEATT = 427,
319  SHAPEATT = 429,
321  UNITATT = 431,
323  VALUEATT = 433,
327  CONTYPEATT = 437,
329  OBJTYPEATT = 439,
331  VARTYPEATT = 441,
341  SYMMETRYATT = 451,
343  ROWMAJORATT = 453,
376  IDXATT = 486,
377  INCRATT = 487,
378  MULTATT = 488,
379  SIZEOFATT = 489,
380  COEFATT = 490,
381  CONSTANTATT = 491,
383  MATRICESEND = 493,
384  MATRIXSTART = 494,
385  MATRIXEND = 495,
388  BLOCKSSTART = 498,
389  BLOCKSEND = 499,
390  BLOCKSTART = 500,
391  BLOCKEND = 501,
397  ELEMENTSEND = 507,
414  INDEXSTART = 524,
415  INDEXEND = 525,
416  VALUESTART = 526,
417  VALUEEND = 527,
418  VARIDXSTART = 528,
419  VARIDXEND = 529,
436  CONSTART = 546,
437  CONEND = 547,
440  OBJSTART = 550,
441  OBJEND = 551,
444  VARSTART = 554,
445  VAREND = 555,
449  GENERALEND = 559,
450  SYSTEMSTART = 560,
451  SYSTEMEND = 561,
453  SERVICEEND = 563,
454  JOBSTART = 564,
455  JOBEND = 565,
461  ATLOWEREND = 571,
463  ATUPPEREND = 573,
464  BASICSTART = 574,
465  BASICEND = 575,
466  ISFREESTART = 576,
467  ISFREEEND = 577,
471  UNKNOWNEND = 581,
478  JOBIDSTART = 588,
479  JOBIDEND = 589,
480  OTHERSTART = 590,
481  OTHEREND = 591,
482  DUMMY = 592,
486  NLSTART = 596,
487  NLEND = 597,
491  EXPRSTART = 601,
492  EXPREND = 602,
496  POWERSTART = 606,
497  POWEREND = 607,
498  PLUSSTART = 608,
499  PLUSEND = 609,
500  MINUSSTART = 610,
501  MINUSEND = 611,
502  DIVIDESTART = 612,
503  DIVIDEEND = 613,
504  LNSTART = 614,
505  LNEND = 615,
506  SQRTSTART = 616,
507  SQRTEND = 617,
508  SUMSTART = 618,
509  SUMEND = 619,
511  PRODUCTEND = 621,
512  EXPSTART = 622,
513  EXPEND = 623,
514  NEGATESTART = 624,
515  NEGATEEND = 625,
516  IFSTART = 626,
517  IFEND = 627,
518  SQUARESTART = 628,
519  SQUAREEND = 629,
520  COSSTART = 630,
521  COSEND = 631,
522  SINSTART = 632,
523  SINEND = 633,
525  VARIABLEEND = 635,
526  ABSSTART = 636,
527  ABSEND = 637,
528  ERFSTART = 638,
529  ERFEND = 639,
530  MAXSTART = 640,
531  MAXEND = 641,
533  ALLDIFFEND = 643,
534  MINSTART = 644,
535  MINEND = 645,
536  ESTART = 646,
537  EEND = 647,
538  PISTART = 648,
539  PIEND = 649,
540  TIMESSTART = 650,
541  TIMESEND = 651,
542  NUMBERSTART = 652,
543  NUMBEREND = 653,
584  EMPTYIDATT = 694,
585  IDATT = 695
586  };
587 #endif
588 /* Tokens. */
589 #define ATTRIBUTETEXT 258
590 #define ELEMENTTEXT 259
591 #define ITEMTEXT 260
592 #define INTEGER 261
593 #define DOUBLE 262
594 #define QUOTE 263
595 #define TWOQUOTES 264
596 #define GREATERTHAN 265
597 #define ENDOFELEMENT 266
598 #define OSRLSTART 267
599 #define OSRLSTARTEMPTY 268
600 #define OSRLATTRIBUTETEXT 269
601 #define OSRLEND 270
602 #define WEIGHTEDOBJECTIVESATT 271
603 #define EMPTYWEIGHTEDOBJECTIVESATT 272
604 #define TARGETOBJECTIVENAMEATT 273
605 #define EMPTYTARGETOBJECTIVENAMEATT 274
606 #define NUMBEROFOTHERCONSTRAINTRESULTSATT 275
607 #define NUMBEROFOTHEROBJECTIVERESULTSATT 276
608 #define NUMBEROFOTHERRESULTSATT 277
609 #define NUMBEROFOTHERSOLUTIONRESULTSATT 278
610 #define NUMBEROFOTHERVARIABLERESULTSATT 279
611 #define NUMBEROFSOLUTIONSATT 280
612 #define NUMBEROFOTHERMATRIXOBJECTIVERESULTSATT 281
613 #define NUMBEROFOTHERMATRIXCONSTRAINTRESULTSATT 282
614 #define NUMBEROFOTHERMATRIXPROGRAMMINGRESULTSATT 283
615 #define NUMBEROFOTHERMATRIXVARIABLERESULTSATT 284
616 #define NUMBEROFSOLVEROUTPUTSATT 285
617 #define NUMBEROFSUBSTATUSESATT 286
618 #define NUMBEROFTIMESATT 287
619 #define TARGETOBJECTIVEIDXATT 288
620 #define ACTUALSTARTTIMESTART 289
621 #define ACTUALSTARTTIMEEND 290
622 #define AVAILABLECPUNUMBERSTART 291
623 #define AVAILABLECPUNUMBEREND 292
624 #define AVAILABLECPUSPEEDSTART 293
625 #define AVAILABLECPUSPEEDEND 294
626 #define AVAILABLEDISKSPACESTART 295
627 #define AVAILABLEDISKSPACEEND 296
628 #define AVAILABLEMEMORYSTART 297
629 #define AVAILABLEMEMORYEND 298
630 #define BASISSTATUSSTART 299
631 #define BASISSTATUSEND 300
632 #define CURRENTJOBCOUNTSTART 301
633 #define CURRENTJOBCOUNTEND 302
634 #define CURRENTSTATESTART 303
635 #define CURRENTSTATEEND 304
636 #define DUALVALUESSTART 305
637 #define DUALVALUESEND 306
638 #define ENDTIMESTART 307
639 #define ENDTIMEEND 308
640 #define IDXSTART 309
641 #define IDXEND 310
642 #define GENERALSTATUSSTART 311
643 #define GENERALSTATUSEND 312
644 #define GENERALSUBSTATUSSTART 313
645 #define GENERALSUBSTATUSEND 314
646 #define MESSAGESTART 315
647 #define MESSAGEEND 316
648 #define OPTIMIZATIONSOLUTIONSTATUSSTART 317
649 #define OPTIMIZATIONSOLUTIONSTATUSEND 318
650 #define OPTIMIZATIONSOLUTIONSUBSTATUSSTART 319
651 #define OPTIMIZATIONSOLUTIONSUBSTATUSEND 320
652 #define OTHERRESULTSSTART 321
653 #define OTHERRESULTSEND 322
654 #define OTHERSOLUTIONRESULTSTART 323
655 #define OTHERSOLUTIONRESULTEND 324
656 #define OTHERSOLUTIONRESULTSSTART 325
657 #define OTHERSOLUTIONRESULTSEND 326
658 #define OTHERSOLVEROUTPUTSTART 327
659 #define OTHERSOLVEROUTPUTEND 328
660 #define SCHEDULEDSTARTTIMESTART 329
661 #define SCHEDULEDSTARTTIMEEND 330
662 #define SERVICEUTILIZATIONSTART 331
663 #define SERVICEUTILIZATIONEND 332
664 #define SOLUTIONSTART 333
665 #define SOLUTIONEND 334
666 #define SOLVERINVOKEDSTART 335
667 #define SOLVERINVOKEDEND 336
668 #define SOLVEROUTPUTSTART 337
669 #define SOLVEROUTPUTEND 338
670 #define STATUSSTART 339
671 #define STATUSEND 340
672 #define SUBMITTIMESTART 341
673 #define SUBMITTIMEEND 342
674 #define SUBSTATUSSTART 343
675 #define SUBSTATUSEND 344
676 #define SYSTEMINFORMATIONSTART 345
677 #define SYSTEMINFORMATIONEND 346
678 #define TIMESTART 347
679 #define TIMEEND 348
680 #define TIMESERVICESTARTEDSTART 349
681 #define TIMESERVICESTARTEDEND 350
682 #define TIMESTAMPSTART 351
683 #define TIMESTAMPEND 352
684 #define TIMINGINFORMATIONSTART 353
685 #define TIMINGINFORMATIONEND 354
686 #define TOTALJOBSSOFARSTART 355
687 #define TOTALJOBSSOFAREND 356
688 #define USEDCPUNUMBERSTART 357
689 #define USEDCPUNUMBEREND 358
690 #define USEDCPUSPEEDSTART 359
691 #define USEDCPUSPEEDEND 360
692 #define USEDDISKSPACESTART 361
693 #define USEDDISKSPACEEND 362
694 #define USEDMEMORYSTART 363
695 #define USEDMEMORYEND 364
696 #define VALUESSTRINGSTART 365
697 #define VALUESSTRINGEND 366
698 #define OTHERMATRIXVARIABLERESULTSTART 367
699 #define OTHERMATRIXVARIABLERESULTEND 368
700 #define OTHERMATRIXOBJECTIVERESULTSTART 369
701 #define OTHERMATRIXOBJECTIVERESULTEND 370
702 #define OTHERMATRIXCONSTRAINTRESULTSTART 371
703 #define OTHERMATRIXCONSTRAINTRESULTEND 372
704 #define OTHERMATRIXPROGRAMMINGRESULTSTART 373
705 #define OTHERMATRIXPROGRAMMINGRESULTEND 374
706 #define HEADERSTART 375
707 #define HEADEREND 376
708 #define FILENAMESTART 377
709 #define FILENAMEEND 378
710 #define FILENAMEEMPTY 379
711 #define FILENAMESTARTANDEND 380
712 #define FILESOURCESTART 381
713 #define FILESOURCEEND 382
714 #define FILESOURCEEMPTY 383
715 #define FILESOURCESTARTANDEND 384
716 #define FILEDESCRIPTIONSTART 385
717 #define FILEDESCRIPTIONEND 386
718 #define FILEDESCRIPTIONEMPTY 387
719 #define FILEDESCRIPTIONSTARTANDEND 388
720 #define FILECREATORSTART 389
721 #define FILECREATOREND 390
722 #define FILECREATOREMPTY 391
723 #define FILECREATORSTARTANDEND 392
724 #define FILELICENCESTART 393
725 #define FILELICENCEEND 394
726 #define FILELICENCEEMPTY 395
727 #define FILELICENCESTARTANDEND 396
728 #define INDEXESSTART 397
729 #define INDEXESEND 398
730 #define VALUESSTART 399
731 #define VALUESEND 400
732 #define NONZEROSSTART 401
733 #define NONZEROSEND 402
734 #define ELSTART 403
735 #define ELEND 404
736 #define ENUMERATIONSTART 405
737 #define ENUMERATIONEND 406
738 #define ITEMEMPTY 407
739 #define ITEMSTART 408
740 #define ITEMEND 409
741 #define ITEMSTARTANDEND 410
742 #define BASE64START 411
743 #define BASE64END 412
744 #define NUMBEROFELATT 413
745 #define NUMBEROFENUMERATIONSATT 414
746 #define NUMBEROFITEMSATT 415
747 #define EMPTYCATEGORYATT 416
748 #define CATEGORYATT 417
749 #define EMPTYDESCRIPTIONATT 418
750 #define DESCRIPTIONATT 419
751 #define EMPTYSOLVERATT 420
752 #define SOLVERATT 421
753 #define EMPTYNAMEATT 422
754 #define NAMEATT 423
755 #define EMPTYTYPEATT 424
756 #define TYPEATT 425
757 #define EMPTYENUMTYPEATT 426
758 #define ENUMTYPEATT 427
759 #define EMPTYSHAPEATT 428
760 #define SHAPEATT 429
761 #define EMPTYUNITATT 430
762 #define UNITATT 431
763 #define EMPTYVALUEATT 432
764 #define VALUEATT 433
765 #define EMPTYVALUETYPEATT 434
766 #define VALUETYPEATT 435
767 #define EMPTYCONTYPEATT 436
768 #define CONTYPEATT 437
769 #define EMPTYOBJTYPEATT 438
770 #define OBJTYPEATT 439
771 #define EMPTYVARTYPEATT 440
772 #define VARTYPEATT 441
773 #define EMPTYMATRIXCONTYPEATT 442
774 #define MATRIXCONTYPEATT 443
775 #define EMPTYMATRIXOBJTYPEATT 444
776 #define MATRIXOBJTYPEATT 445
777 #define EMPTYMATRIXVARTYPEATT 446
778 #define MATRIXVARTYPEATT 447
779 #define EMPTYMATRIXTYPEATT 448
780 #define MATRIXTYPEATT 449
781 #define EMPTYSYMMETRYATT 450
782 #define SYMMETRYATT 451
783 #define EMPTYROWMAJORATT 452
784 #define ROWMAJORATT 453
785 #define EMPTYBASETRANSPOSEATT 454
786 #define BASETRANSPOSEATT 455
787 #define NUMBEROFBLOCKSATT 456
788 #define NUMBEROFCOLUMNSATT 457
789 #define NUMBEROFROWSATT 458
790 #define NUMBEROFMATRICESATT 459
791 #define NUMBEROFVALUESATT 460
792 #define NUMBEROFCONSTRAINTSATT 461
793 #define NUMBEROFCONATT 462
794 #define NUMBEROFCONIDXATT 463
795 #define NUMBEROFOBJECTIVESATT 464
796 #define NUMBEROFOBJATT 465
797 #define NUMBEROFOBJIDXATT 466
798 #define NUMBEROFVARIABLESATT 467
799 #define NUMBEROFVARATT 468
800 #define NUMBEROFVARIDXATT 469
801 #define NUMBEROFMATRIXCONATT 470
802 #define NUMBEROFMATRIXOBJATT 471
803 #define NUMBEROFMATRIXVARATT 472
804 #define BASEMATRIXIDXATT 473
805 #define TARGETMATRIXFIRSTROWATT 474
806 #define TARGETMATRIXFIRSTCOLATT 475
807 #define BASEMATRIXSTARTROWATT 476
808 #define BASEMATRIXSTARTCOLATT 477
809 #define BASEMATRIXENDROWATT 478
810 #define BASEMATRIXENDCOLATT 479
811 #define SCALARMULTIPLIERATT 480
812 #define BLOCKROWIDXATT 481
813 #define BLOCKCOLIDXATT 482
814 #define MATRIXVARIDXATT 483
815 #define MATRIXOBJIDXATT 484
816 #define MATRIXCONIDXATT 485
817 #define IDXATT 486
818 #define INCRATT 487
819 #define MULTATT 488
820 #define SIZEOFATT 489
821 #define COEFATT 490
822 #define CONSTANTATT 491
823 #define MATRICESSTART 492
824 #define MATRICESEND 493
825 #define MATRIXSTART 494
826 #define MATRIXEND 495
827 #define BASEMATRIXEND 496
828 #define BASEMATRIXSTART 497
829 #define BLOCKSSTART 498
830 #define BLOCKSEND 499
831 #define BLOCKSTART 500
832 #define BLOCKEND 501
833 #define COLOFFSETSTART 502
834 #define COLOFFSETEND 503
835 #define ROWOFFSETSTART 504
836 #define ROWOFFSETEND 505
837 #define ELEMENTSSTART 506
838 #define ELEMENTSEND 507
839 #define CONSTANTELEMENTSSTART 508
840 #define CONSTANTELEMENTSEND 509
841 #define VARREFERENCEELEMENTSSTART 510
842 #define VARREFERENCEELEMENTSEND 511
843 #define LINEARELEMENTSSTART 512
844 #define LINEARELEMENTSEND 513
845 #define GENERALELEMENTSSTART 514
846 #define GENERALELEMENTSEND 515
847 #define CONREFERENCEELEMENTSSTART 516
848 #define CONREFERENCEELEMENTSEND 517
849 #define OBJREFERENCEELEMENTSSTART 518
850 #define OBJREFERENCEELEMENTSEND 519
851 #define STRINGVALUEDELEMENTSSTART 520
852 #define STRINGVALUEDELEMENTSEND 521
853 #define STARTVECTORSTART 522
854 #define STARTVECTOREND 523
855 #define INDEXSTART 524
856 #define INDEXEND 525
857 #define VALUESTART 526
858 #define VALUEEND 527
859 #define VARIDXSTART 528
860 #define VARIDXEND 529
861 #define TRANSFORMATIONSTART 530
862 #define TRANSFORMATIONEND 531
863 #define MATRIXPROGRAMMINGSTART 532
864 #define MATRIXPROGRAMMINGEND 533
865 #define MATRIXVARIABLESSTART 534
866 #define MATRIXVARIABLESEND 535
867 #define MATRIXVARSTART 536
868 #define MATRIXVAREND 537
869 #define MATRIXOBJECTIVESSTART 538
870 #define MATRIXOBJECTIVESEND 539
871 #define MATRIXOBJSTART 540
872 #define MATRIXOBJEND 541
873 #define MATRIXCONSTRAINTSSTART 542
874 #define MATRIXCONSTRAINTSEND 543
875 #define MATRIXCONSTART 544
876 #define MATRIXCONEND 545
877 #define CONSTART 546
878 #define CONEND 547
879 #define CONSTRAINTSSTART 548
880 #define CONSTRAINTSEND 549
881 #define OBJSTART 550
882 #define OBJEND 551
883 #define OBJECTIVESSTART 552
884 #define OBJECTIVESEND 553
885 #define VARSTART 554
886 #define VAREND 555
887 #define VARIABLESSTART 556
888 #define VARIABLESEND 557
889 #define GENERALSTART 558
890 #define GENERALEND 559
891 #define SYSTEMSTART 560
892 #define SYSTEMEND 561
893 #define SERVICESTART 562
894 #define SERVICEEND 563
895 #define JOBSTART 564
896 #define JOBEND 565
897 #define OPTIMIZATIONSTART 566
898 #define OPTIMIZATIONEND 567
899 #define ATEQUALITYSTART 568
900 #define ATEQUALITYEND 569
901 #define ATLOWERSTART 570
902 #define ATLOWEREND 571
903 #define ATUPPERSTART 572
904 #define ATUPPEREND 573
905 #define BASICSTART 574
906 #define BASICEND 575
907 #define ISFREESTART 576
908 #define ISFREEEND 577
909 #define SUPERBASICSTART 578
910 #define SUPERBASICEND 579
911 #define UNKNOWNSTART 580
912 #define UNKNOWNEND 581
913 #define SERVICEURISTART 582
914 #define SERVICEURIEND 583
915 #define SERVICENAMESTART 584
916 #define SERVICENAMEEND 585
917 #define INSTANCENAMESTART 586
918 #define INSTANCENAMEEND 587
919 #define JOBIDSTART 588
920 #define JOBIDEND 589
921 #define OTHERSTART 590
922 #define OTHEREND 591
923 #define DUMMY 592
924 #define NONLINEAREXPRESSIONSSTART 593
925 #define NONLINEAREXPRESSIONSEND 594
926 #define NUMBEROFNONLINEAREXPRESSIONS 595
927 #define NLSTART 596
928 #define NLEND 597
929 #define MATRIXEXPRESSIONSSTART 598
930 #define MATRIXEXPRESSIONSEND 599
931 #define NUMBEROFEXPR 600
932 #define EXPRSTART 601
933 #define EXPREND 602
934 #define NUMBEROFMATRIXTERMSATT 603
935 #define MATRIXTERMSTART 604
936 #define MATRIXTERMEND 605
937 #define POWERSTART 606
938 #define POWEREND 607
939 #define PLUSSTART 608
940 #define PLUSEND 609
941 #define MINUSSTART 610
942 #define MINUSEND 611
943 #define DIVIDESTART 612
944 #define DIVIDEEND 613
945 #define LNSTART 614
946 #define LNEND 615
947 #define SQRTSTART 616
948 #define SQRTEND 617
949 #define SUMSTART 618
950 #define SUMEND 619
951 #define PRODUCTSTART 620
952 #define PRODUCTEND 621
953 #define EXPSTART 622
954 #define EXPEND 623
955 #define NEGATESTART 624
956 #define NEGATEEND 625
957 #define IFSTART 626
958 #define IFEND 627
959 #define SQUARESTART 628
960 #define SQUAREEND 629
961 #define COSSTART 630
962 #define COSEND 631
963 #define SINSTART 632
964 #define SINEND 633
965 #define VARIABLESTART 634
966 #define VARIABLEEND 635
967 #define ABSSTART 636
968 #define ABSEND 637
969 #define ERFSTART 638
970 #define ERFEND 639
971 #define MAXSTART 640
972 #define MAXEND 641
973 #define ALLDIFFSTART 642
974 #define ALLDIFFEND 643
975 #define MINSTART 644
976 #define MINEND 645
977 #define ESTART 646
978 #define EEND 647
979 #define PISTART 648
980 #define PIEND 649
981 #define TIMESSTART 650
982 #define TIMESEND 651
983 #define NUMBERSTART 652
984 #define NUMBEREND 653
985 #define MATRIXDETERMINANTSTART 654
986 #define MATRIXDETERMINANTEND 655
987 #define MATRIXTRACESTART 656
988 #define MATRIXTRACEEND 657
989 #define MATRIXTOSCALARSTART 658
990 #define MATRIXTOSCALAREND 659
991 #define MATRIXDIAGONALSTART 660
992 #define MATRIXDIAGONALEND 661
993 #define MATRIXDOTTIMESSTART 662
994 #define MATRIXDOTTIMESEND 663
995 #define MATRIXLOWERTRIANGLESTART 664
996 #define MATRIXLOWERTRIANGLEEND 665
997 #define MATRIXUPPERTRIANGLESTART 666
998 #define MATRIXUPPERTRIANGLEEND 667
999 #define MATRIXMERGESTART 668
1000 #define MATRIXMERGEEND 669
1001 #define MATRIXMINUSSTART 670
1002 #define MATRIXMINUSEND 671
1003 #define MATRIXNEGATESTART 672
1004 #define MATRIXNEGATEEND 673
1005 #define MATRIXPLUSSTART 674
1006 #define MATRIXPLUSEND 675
1007 #define MATRIXTIMESSTART 676
1008 #define MATRIXTIMESEND 677
1009 #define MATRIXPRODUCTSTART 678
1010 #define MATRIXPRODUCTEND 679
1011 #define MATRIXSCALARTIMESSTART 680
1012 #define MATRIXSCALARTIMESEND 681
1013 #define MATRIXSUBMATRIXATSTART 682
1014 #define MATRIXSUBMATRIXATEND 683
1015 #define MATRIXTRANSPOSESTART 684
1016 #define MATRIXTRANSPOSEEND 685
1017 #define MATRIXREFERENCESTART 686
1018 #define MATRIXREFERENCEEND 687
1019 #define IDENTITYMATRIXSTART 688
1020 #define IDENTITYMATRIXEND 689
1021 #define MATRIXINVERSESTART 690
1022 #define MATRIXINVERSEEND 691
1023 #define EMPTYINCLUDEDIAGONALATT 692
1024 #define INCLUDEDIAGONALATT 693
1025 #define EMPTYIDATT 694
1026 #define IDATT 695
1027 
1028 
1029 
1030 
1031 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
1032 typedef union YYSTYPE
1033 {
1034 
1035 
1036  double dval;
1037  int ival;
1038  char* sval;
1039 
1040 
1041 
1042 } YYSTYPE;
1043 # define YYSTYPE_IS_TRIVIAL 1
1044 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
1045 # define YYSTYPE_IS_DECLARED 1
1046 #endif
1047 
1048 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
1049 typedef struct YYLTYPE
1050 {
1051  int first_line;
1052  int first_column;
1053  int last_line;
1054  int last_column;
1055 } YYLTYPE;
1056 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
1057 # define YYLTYPE_IS_DECLARED 1
1058 # define YYLTYPE_IS_TRIVIAL 1
1059 #endif
1060 
1061 
1062 /* Copy the second part of user declarations. */
1063 
1064 
1065 std::string addErrorMsg(YYLTYPE* mytype, OSResult *osresult, OSrLParserData* parserData, OSgLParserData* osglData, OSnLParserData* osnlData, std::string errormsg ) ;
1067 int osrllex(YYSTYPE* lvalp, YYLTYPE* llocp, void* scanner);
1068 #define scanner parserData->scanner
1069 
1070 
1071 
1072 #ifdef short
1073 # undef short
1074 #endif
1075 
1076 #ifdef YYTYPE_UINT8
1077 typedef YYTYPE_UINT8 yytype_uint8;
1078 #else
1079 typedef unsigned char yytype_uint8;
1080 #endif
1081 
1082 #ifdef YYTYPE_INT8
1083 typedef YYTYPE_INT8 yytype_int8;
1084 #elif (defined __STDC__ || defined __C99__FUNC__ \
1085  || defined __cplusplus || defined _MSC_VER)
1086 typedef signed char yytype_int8;
1087 #else
1088 typedef short int yytype_int8;
1089 #endif
1090 
1091 #ifdef YYTYPE_UINT16
1092 typedef YYTYPE_UINT16 yytype_uint16;
1093 #else
1094 typedef unsigned short int yytype_uint16;
1095 #endif
1096 
1097 #ifdef YYTYPE_INT16
1098 typedef YYTYPE_INT16 yytype_int16;
1099 #else
1100 typedef short int yytype_int16;
1101 #endif
1102 
1103 #ifndef YYSIZE_T
1104 # ifdef __SIZE_TYPE__
1105 # define YYSIZE_T __SIZE_TYPE__
1106 # elif defined size_t
1107 # define YYSIZE_T size_t
1108 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
1109  || defined __cplusplus || defined _MSC_VER)
1110 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1111 # define YYSIZE_T size_t
1112 # else
1113 # define YYSIZE_T unsigned int
1114 # endif
1115 #endif
1116 
1117 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
1118 
1119 #ifndef YY_
1120 # if YYENABLE_NLS
1121 # if ENABLE_NLS
1122 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
1123 # define YY_(msgid) dgettext ("bison-runtime", msgid)
1124 # endif
1125 # endif
1126 # ifndef YY_
1127 # define YY_(msgid) msgid
1128 # endif
1129 #endif
1130 
1131 /* Suppress unused-variable warnings by "using" E. */
1132 #if ! defined lint || defined __GNUC__
1133 # define YYUSE(e) ((void) (e))
1134 #else
1135 # define YYUSE(e) /* empty */
1136 #endif
1137 
1138 /* Identity function, used to suppress warnings about constant conditions. */
1139 #ifndef lint
1140 # define YYID(n) (n)
1141 #else
1142 #if (defined __STDC__ || defined __C99__FUNC__ \
1143  || defined __cplusplus || defined _MSC_VER)
1144 static int
1145 YYID (int yyi)
1146 #else
1147 static int
1148 YYID (yyi)
1149  int yyi;
1150 #endif
1151 {
1152  return yyi;
1153 }
1154 #endif
1155 
1156 #if ! defined yyoverflow || YYERROR_VERBOSE
1157 
1158 /* The parser invokes alloca or malloc; define the necessary symbols. */
1159 
1160 # ifdef YYSTACK_USE_ALLOCA
1161 # if YYSTACK_USE_ALLOCA
1162 # ifdef __GNUC__
1163 # define YYSTACK_ALLOC __builtin_alloca
1164 # elif defined __BUILTIN_VA_ARG_INCR
1165 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
1166 # elif defined _AIX
1167 # define YYSTACK_ALLOC __alloca
1168 # elif defined _MSC_VER
1169 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
1170 # define alloca _alloca
1171 # else
1172 # define YYSTACK_ALLOC alloca
1173 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1174  || defined __cplusplus || defined _MSC_VER)
1175 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1176 # ifndef _STDLIB_H
1177 # define _STDLIB_H 1
1178 # endif
1179 # endif
1180 # endif
1181 # endif
1182 # endif
1183 
1184 # ifdef YYSTACK_ALLOC
1185  /* Pacify GCC's `empty if-body' warning. */
1186 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
1187 # ifndef YYSTACK_ALLOC_MAXIMUM
1188  /* The OS might guarantee only one guard page at the bottom of the stack,
1189  and a page size can be as small as 4096 bytes. So we cannot safely
1190  invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
1191  to allow for a few compiler-allocated temporary stack slots. */
1192 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
1193 # endif
1194 # else
1195 # define YYSTACK_ALLOC YYMALLOC
1196 # define YYSTACK_FREE YYFREE
1197 # ifndef YYSTACK_ALLOC_MAXIMUM
1198 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1199 # endif
1200 # if (defined __cplusplus && ! defined _STDLIB_H \
1201  && ! ((defined YYMALLOC || defined malloc) \
1202  && (defined YYFREE || defined free)))
1203 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1204 # ifndef _STDLIB_H
1205 # define _STDLIB_H 1
1206 # endif
1207 # endif
1208 # ifndef YYMALLOC
1209 # define YYMALLOC malloc
1210 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1211  || defined __cplusplus || defined _MSC_VER)
1212 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1213 # endif
1214 # endif
1215 # ifndef YYFREE
1216 # define YYFREE free
1217 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1218  || defined __cplusplus || defined _MSC_VER)
1219 void free (void *); /* INFRINGES ON USER NAME SPACE */
1220 # endif
1221 # endif
1222 # endif
1223 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
1224 
1225 
1226 #if (! defined yyoverflow \
1227  && (! defined __cplusplus \
1228  || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
1229  && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1230 
1231 /* A type that is properly aligned for any stack member. */
1232 union yyalloc
1233 {
1234  yytype_int16 yyss_alloc;
1237 };
1238 
1239 /* The size of the maximum gap between one aligned stack and the next. */
1240 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1241 
1242 /* The size of an array large to enough to hold all stacks, each with
1243  N elements. */
1244 # define YYSTACK_BYTES(N) \
1245  ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
1246  + 2 * YYSTACK_GAP_MAXIMUM)
1247 
1248 /* Copy COUNT objects from FROM to TO. The source and destination do
1249  not overlap. */
1250 # ifndef YYCOPY
1251 # if defined __GNUC__ && 1 < __GNUC__
1252 # define YYCOPY(To, From, Count) \
1253  __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1254 # else
1255 # define YYCOPY(To, From, Count) \
1256  do \
1257  { \
1258  YYSIZE_T yyi; \
1259  for (yyi = 0; yyi < (Count); yyi++) \
1260  (To)[yyi] = (From)[yyi]; \
1261  } \
1262  while (YYID (0))
1263 # endif
1264 # endif
1265 
1266 /* Relocate STACK from its old location to the new one. The
1267  local variables YYSIZE and YYSTACKSIZE give the old and new number of
1268  elements in the stack, and YYPTR gives the new location of the
1269  stack. Advance YYPTR to a properly aligned location for the next
1270  stack. */
1271 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1272  do \
1273  { \
1274  YYSIZE_T yynewbytes; \
1275  YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1276  Stack = &yyptr->Stack_alloc; \
1277  yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1278  yyptr += yynewbytes / sizeof (*yyptr); \
1279  } \
1280  while (YYID (0))
1281 
1282 #endif
1283 
1284 /* YYFINAL -- State number of the termination state. */
1285 #define YYFINAL 6
1286 /* YYLAST -- Last index in YYTABLE. */
1287 #define YYLAST 2121
1288 
1289 /* YYNTOKENS -- Number of terminals. */
1290 #define YYNTOKENS 445
1291 /* YYNNTS -- Number of nonterminals. */
1292 #define YYNNTS 1121
1293 /* YYNRULES -- Number of rules. */
1294 #define YYNRULES 1677
1295 /* YYNRULES -- Number of states. */
1296 #define YYNSTATES 2353
1297 
1298 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
1299 #define YYUNDEFTOK 2
1300 #define YYMAXUTOK 695
1301 
1302 #define YYTRANSLATE(YYX) \
1303  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1304 
1305 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
1306 static const yytype_uint16 yytranslate[] =
1307 {
1308  0, 2, 2, 2, 2, 2, 2, 2, 2, 442,
1309  444, 2, 2, 443, 2, 2, 2, 2, 2, 2,
1310  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1311  2, 2, 441, 2, 2, 2, 2, 2, 2, 2,
1312  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1313  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1314  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1315  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1316  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1317  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1318  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1319  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1320  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1321  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1322  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1323  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1324  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1325  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1326  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1327  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1328  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1329  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1330  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1331  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1332  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1333  2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1334  5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1335  15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1336  25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1337  35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1338  45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1339  55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1340  65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1341  75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1342  85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1343  95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1344  105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1345  115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1346  125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1347  135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1348  145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1349  155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1350  165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1351  175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1352  185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1353  195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1354  205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1355  215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1356  225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1357  235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1358  245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1359  255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1360  265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1361  275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1362  285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1363  295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1364  305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1365  315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1366  325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1367  335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1368  345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1369  355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1370  365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1371  375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1372  385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1373  395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1374  405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1375  415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1376  425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1377  435, 436, 437, 438, 439, 440
1378 };
1379 
1380 #if YYDEBUG
1381 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1382  YYRHS. */
1383 static const yytype_uint16 yyprhs[] =
1384 {
1385  0, 0, 3, 7, 11, 13, 15, 16, 18, 20,
1386  22, 24, 28, 30, 32, 33, 40, 41, 43, 44,
1387  47, 49, 51, 53, 56, 58, 62, 64, 66, 69,
1388  71, 73, 75, 77, 79, 81, 83, 85, 87, 91,
1389  93, 95, 97, 100, 102, 104, 106, 108, 110, 113,
1390  115, 119, 121, 123, 126, 130, 132, 134, 135, 138,
1391  140, 142, 145, 147, 150, 152, 154, 156, 159, 161,
1392  165, 167, 170, 172, 174, 176, 179, 181, 185, 187,
1393  190, 192, 194, 196, 199, 201, 205, 207, 210, 212,
1394  214, 216, 219, 221, 225, 227, 230, 232, 234, 236,
1395  239, 241, 245, 247, 250, 252, 254, 256, 259, 261,
1396  265, 267, 270, 272, 274, 276, 279, 281, 285, 287,
1397  291, 293, 295, 297, 299, 302, 304, 308, 310, 312,
1398  315, 319, 321, 323, 324, 327, 329, 331, 333, 336,
1399  338, 339, 342, 344, 346, 348, 351, 353, 357, 359,
1400  361, 364, 366, 368, 370, 372, 374, 376, 379, 381,
1401  383, 385, 388, 390, 394, 396, 400, 402, 404, 405,
1402  408, 410, 412, 416, 418, 422, 424, 426, 427, 430,
1403  432, 434, 438, 440, 444, 446, 448, 449, 452, 454,
1404  456, 460, 462, 466, 468, 469, 471, 475, 477, 481,
1405  483, 485, 487, 489, 492, 494, 498, 500, 502, 505,
1406  509, 511, 513, 514, 517, 519, 521, 523, 526, 528,
1407  529, 532, 534, 536, 538, 541, 543, 547, 549, 551,
1408  554, 556, 558, 560, 562, 564, 566, 569, 571, 573,
1409  575, 578, 580, 584, 586, 589, 591, 593, 595, 598,
1410  600, 604, 606, 609, 611, 613, 615, 618, 620, 624,
1411  626, 629, 631, 633, 635, 638, 640, 644, 646, 649,
1412  651, 653, 655, 658, 660, 664, 666, 670, 672, 674,
1413  676, 678, 681, 683, 687, 689, 691, 694, 698, 700,
1414  702, 703, 706, 708, 710, 712, 715, 717, 718, 721,
1415  723, 725, 727, 730, 732, 736, 738, 740, 743, 745,
1416  747, 749, 751, 753, 755, 757, 759, 761, 763, 765,
1417  768, 770, 772, 774, 777, 779, 783, 785, 788, 790,
1418  792, 794, 797, 799, 803, 805, 808, 810, 812, 814,
1419  817, 819, 823, 825, 828, 830, 832, 834, 837, 839,
1420  843, 845, 848, 850, 852, 854, 857, 859, 863, 865,
1421  869, 871, 873, 875, 877, 880, 882, 886, 888, 890,
1422  893, 897, 899, 900, 903, 905, 907, 909, 911, 913,
1423  915, 918, 920, 924, 926, 928, 930, 934, 936, 938,
1424  939, 942, 944, 946, 950, 952, 956, 958, 960, 961,
1425  964, 966, 968, 972, 974, 978, 980, 982, 983, 986,
1426  988, 990, 994, 996, 1000, 1002, 1003, 1005, 1009, 1011,
1427  1015, 1017, 1019, 1021, 1023, 1026, 1028, 1032, 1034, 1036,
1428  1039, 1043, 1045, 1047, 1048, 1051, 1053, 1055, 1057, 1060,
1429  1062, 1063, 1067, 1069, 1071, 1072, 1075, 1077, 1079, 1081,
1430  1083, 1085, 1087, 1090, 1092, 1096, 1099, 1101, 1104, 1108,
1431  1110, 1112, 1113, 1116, 1118, 1120, 1122, 1127, 1131, 1135,
1432  1145, 1149, 1151, 1153, 1155, 1158, 1160, 1162, 1164, 1166,
1433  1168, 1171, 1173, 1177, 1179, 1181, 1184, 1188, 1190, 1192,
1434  1193, 1196, 1198, 1200, 1203, 1205, 1206, 1209, 1211, 1213,
1435  1215, 1218, 1220, 1224, 1226, 1227, 1231, 1233, 1234, 1236,
1436  1238, 1240, 1242, 1246, 1251, 1252, 1256, 1258, 1260, 1262,
1437  1264, 1267, 1269, 1273, 1275, 1277, 1280, 1284, 1286, 1287,
1438  1290, 1292, 1294, 1298, 1299, 1303, 1305, 1307, 1309, 1311,
1439  1314, 1316, 1320, 1322, 1324, 1327, 1331, 1333, 1334, 1337,
1440  1339, 1341, 1343, 1345, 1348, 1350, 1354, 1356, 1357, 1360,
1441  1362, 1364, 1366, 1368, 1372, 1380, 1381, 1383, 1384, 1386,
1442  1387, 1389, 1390, 1392, 1393, 1395, 1396, 1398, 1399, 1401,
1443  1402, 1405, 1409, 1411, 1413, 1414, 1417, 1419, 1421, 1423,
1444  1425, 1427, 1429, 1431, 1433, 1435, 1437, 1439, 1442, 1444,
1445  1448, 1450, 1452, 1454, 1457, 1461, 1463, 1464, 1467, 1469,
1446  1471, 1473, 1475, 1478, 1480, 1484, 1486, 1488, 1491, 1495,
1447  1497, 1499, 1500, 1503, 1505, 1507, 1509, 1511, 1513, 1515,
1448  1519, 1521, 1522, 1526, 1528, 1529, 1531, 1533, 1535, 1537,
1449  1541, 1545, 1546, 1550, 1552, 1554, 1556, 1558, 1561, 1563,
1450  1567, 1569, 1571, 1574, 1578, 1580, 1581, 1584, 1586, 1588,
1451  1592, 1593, 1596, 1598, 1600, 1602, 1604, 1608, 1616, 1617,
1452  1619, 1620, 1622, 1623, 1625, 1626, 1628, 1629, 1631, 1632,
1453  1634, 1635, 1637, 1638, 1641, 1645, 1647, 1649, 1650, 1653,
1454  1655, 1657, 1659, 1661, 1663, 1665, 1667, 1669, 1671, 1673,
1455  1675, 1678, 1680, 1684, 1686, 1688, 1690, 1693, 1697, 1699,
1456  1700, 1703, 1705, 1707, 1709, 1711, 1714, 1716, 1720, 1722,
1457  1724, 1727, 1731, 1733, 1735, 1736, 1739, 1741, 1743, 1745,
1458  1747, 1749, 1751, 1755, 1757, 1758, 1762, 1764, 1765, 1767,
1459  1769, 1771, 1773, 1777, 1781, 1782, 1786, 1788, 1790, 1792,
1460  1794, 1797, 1799, 1803, 1805, 1807, 1810, 1814, 1816, 1817,
1461  1820, 1822, 1824, 1828, 1829, 1832, 1834, 1836, 1838, 1840,
1462  1844, 1852, 1853, 1855, 1856, 1858, 1859, 1861, 1862, 1864,
1463  1865, 1867, 1868, 1870, 1871, 1873, 1874, 1877, 1881, 1883,
1464  1885, 1886, 1889, 1891, 1893, 1895, 1897, 1899, 1901, 1903,
1465  1905, 1907, 1909, 1911, 1914, 1916, 1920, 1922, 1924, 1926,
1466  1929, 1933, 1935, 1936, 1939, 1941, 1943, 1945, 1947, 1950,
1467  1952, 1956, 1958, 1960, 1963, 1967, 1969, 1971, 1972, 1975,
1468  1977, 1979, 1981, 1983, 1985, 1987, 1991, 1993, 1994, 1998,
1469  2000, 2001, 2003, 2005, 2007, 2009, 2014, 2015, 2019, 2021,
1470  2023, 2025, 2027, 2029, 2034, 2036, 2037, 2041, 2043, 2045,
1471  2047, 2049, 2051, 2055, 2057, 2058, 2061, 2062, 2065, 2069,
1472  2071, 2073, 2074, 2077, 2079, 2081, 2083, 2085, 2087, 2089,
1473  2091, 2093, 2095, 2097, 2099, 2102, 2104, 2108, 2110, 2112,
1474  2114, 2117, 2119, 2122, 2126, 2128, 2130, 2131, 2134, 2136,
1475  2138, 2140, 2142, 2144, 2146, 2150, 2152, 2153, 2156, 2158,
1476  2159, 2163, 2165, 2167, 2169, 2171, 2174, 2176, 2180, 2182,
1477  2184, 2187, 2191, 2193, 2195, 2196, 2199, 2201, 2203, 2205,
1478  2207, 2209, 2211, 2213, 2216, 2218, 2222, 2224, 2226, 2229,
1479  2231, 2233, 2235, 2237, 2239, 2243, 2245, 2246, 2250, 2252,
1480  2254, 2256, 2258, 2261, 2263, 2267, 2269, 2271, 2274, 2278,
1481  2280, 2282, 2283, 2286, 2288, 2290, 2292, 2294, 2296, 2298,
1482  2301, 2303, 2307, 2309, 2311, 2314, 2316, 2318, 2320, 2322,
1483  2324, 2328, 2330, 2335, 2340, 2345, 2350, 2355, 2360, 2365,
1484  2370, 2375, 2380, 2385, 2387, 2389, 2391, 2393, 2395, 2398,
1485  2399, 2402, 2404, 2406, 2408, 2410, 2413, 2415, 2417, 2419,
1486  2421, 2425, 2427, 2428, 2431, 2433, 2435, 2437, 2439, 2441,
1487  2443, 2445, 2447, 2449, 2451, 2455, 2457, 2459, 2461, 2463,
1488  2465, 2469, 2471, 2473, 2475, 2477, 2479, 2483, 2485, 2487,
1489  2489, 2491, 2493, 2497, 2499, 2501, 2503, 2505, 2507, 2511,
1490  2513, 2515, 2516, 2519, 2523, 2525, 2527, 2528, 2531, 2533,
1491  2535, 2539, 2543, 2545, 2547, 2550, 2552, 2556, 2558, 2560,
1492  2561, 2564, 2568, 2570, 2571, 2573, 2577, 2581, 2583, 2585,
1493  2588, 2590, 2594, 2598, 2600, 2602, 2604, 2606, 2610, 2612,
1494  2616, 2618, 2620, 2622, 2624, 2628, 2630, 2634, 2636, 2638,
1495  2640, 2642, 2646, 2648, 2652, 2654, 2656, 2658, 2660, 2664,
1496  2666, 2670, 2672, 2674, 2676, 2678, 2682, 2684, 2688, 2690,
1497  2692, 2694, 2696, 2700, 2702, 2706, 2708, 2710, 2712, 2714,
1498  2718, 2720, 2722, 2726, 2728, 2730, 2731, 2734, 2736, 2738,
1499  2740, 2742, 2744, 2746, 2748, 2750, 2752, 2756, 2759, 2760,
1500  2764, 2766, 2768, 2769, 2772, 2774, 2776, 2778, 2780, 2782,
1501  2784, 2786, 2788, 2790, 2793, 2795, 2796, 2799, 2801, 2803,
1502  2805, 2807, 2809, 2811, 2813, 2815, 2820, 2822, 2824, 2825,
1503  2828, 2830, 2832, 2836, 2837, 2840, 2843, 2845, 2847, 2849,
1504  2851, 2855, 2857, 2860, 2862, 2864, 2866, 2868, 2872, 2874,
1505  2877, 2879, 2881, 2883, 2885, 2889, 2891, 2896, 2898, 2900,
1506  2901, 2904, 2906, 2908, 2912, 2913, 2916, 2919, 2921, 2923,
1507  2925, 2927, 2931, 2933, 2938, 2940, 2942, 2943, 2946, 2948,
1508  2950, 2954, 2955, 2958, 2959, 2962, 2964, 2966, 2968, 2970,
1509  2974, 2976, 2977, 2980, 2984, 2986, 2988, 2989, 2992, 2994,
1510  2996, 2998, 3000, 3002, 3006, 3007, 3010, 3014, 3016, 3017,
1511  3019, 3023, 3028, 3030, 3032, 3033, 3036, 3038, 3040, 3044,
1512  3045, 3048, 3049, 3052, 3054, 3056, 3058, 3060, 3064, 3065,
1513  3068, 3071, 3073, 3075, 3077, 3079, 3083, 3088, 3090, 3092,
1514  3093, 3096, 3098, 3100, 3104, 3105, 3108, 3111, 3113, 3115,
1515  3117, 3119, 3123, 3125, 3130, 3132, 3134, 3135, 3138, 3140,
1516  3142, 3146, 3147, 3150, 3151, 3154, 3156, 3158, 3160, 3162,
1517  3166, 3167, 3170, 3174, 3176, 3177, 3180, 3182, 3184, 3186,
1518  3190, 3196, 3198, 3199, 3201, 3203, 3207, 3209, 3211, 3217,
1519  3219, 3223, 3225, 3227, 3229, 3231, 3233, 3237, 3239, 3243,
1520  3245, 3247, 3249, 3251, 3253, 3257, 3259, 3260, 3263, 3267,
1521  3269, 3271, 3272, 3275, 3277, 3279, 3281, 3283, 3285, 3287,
1522  3289, 3293, 3296, 3301, 3306, 3311, 3316, 3321, 3326, 3331,
1523  3336, 3341, 3346, 3351, 3356, 3361, 3366, 3371, 3376, 3381,
1524  3386, 3391, 3396, 3401, 3406, 3411, 3416, 3421, 3426, 3431,
1525  3436, 3441, 3446, 3451, 3456, 3458, 3460, 3462, 3466, 3468,
1526  3470, 3472, 3476, 3478, 3480, 3482, 3486, 3488, 3490, 3492,
1527  3496, 3498, 3500, 3502, 3506, 3508, 3510, 3512, 3516, 3518,
1528  3520, 3522, 3526, 3528, 3530, 3532, 3536, 3538, 3540, 3542,
1529  3546, 3548, 3550, 3552, 3556, 3558, 3560, 3562, 3566, 3568,
1530  3570, 3572, 3576, 3578, 3580, 3582, 3586, 3588, 3590, 3592,
1531  3596, 3598, 3600, 3602, 3606, 3608, 3610, 3612, 3616, 3618,
1532  3620, 3622, 3626, 3628, 3630, 3632, 3634, 3636, 3638, 3640,
1533  3642, 3644, 3646, 3648, 3650, 3652, 3654, 3656, 3658, 3660,
1534  3662, 3664, 3666, 3668, 3670, 3672, 3674, 3676, 3678, 3680,
1535  3681, 3685, 3687, 3690, 3691, 3695, 3697, 3700, 3701, 3707,
1536  3708, 3714, 3715, 3721, 3722, 3727, 3728, 3734, 3735, 3741,
1537  3742, 3747, 3748, 3753, 3754, 3759, 3760, 3765, 3766, 3771,
1538  3772, 3777, 3781, 3783, 3785, 3786, 3791, 3792, 3799, 3800,
1539  3805, 3806, 3811, 3812, 3817, 3821, 3823, 3825, 3828, 3829,
1540  3832, 3834, 3836, 3838, 3839, 3844, 3845, 3850, 3852, 3855,
1541  3856, 3861, 3862, 3865, 3867, 3869, 3874, 3879, 3880, 3885,
1542  3886, 3889, 3890, 3895, 3896, 3899, 3900, 3905, 3906, 3909,
1543  3910, 3915, 3916, 3919, 3920, 3925, 3926, 3929, 3931, 3933,
1544  3935, 3937, 3939, 3941, 3943, 3945, 3947, 3949, 3951, 3953,
1545  3955, 3957, 3959, 3961, 3963, 3965, 3967, 3971, 3973, 3975,
1546  3978, 3983, 3987, 3989, 3991, 3994, 3999, 4003, 4005, 4007,
1547  4010, 4015, 4019, 4021, 4023, 4026, 4031, 4034, 4036, 4039,
1548  4042, 4044, 4048, 4051, 4053, 4056, 4059, 4061, 4064, 4069,
1549  4071, 4072, 4074, 4077, 4082, 4084, 4085, 4087, 4090, 4094,
1550  4097, 4099, 4101, 4104, 4107, 4109, 4113, 4116, 4118, 4121,
1551  4124, 4126, 4130, 4133, 4135, 4139, 4140, 4145, 4146, 4149,
1552  4152, 4154, 4158, 4161, 4163, 4170, 4173, 4175
1553 };
1554 
1555 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
1556 static const yytype_int16 yyrhs[] =
1557 {
1558  446, 0, -1, 447, 455, 453, -1, 448, 449, 450,
1559  -1, 13, -1, 12, -1, -1, 14, -1, 451, -1,
1560  452, -1, 11, -1, 10, 455, 453, -1, 454, -1,
1561  15, -1, -1, 456, 457, 537, 591, 643, 738, -1,
1562  -1, 1087, -1, -1, 458, 459, -1, 303, -1, 460,
1563  -1, 461, -1, 10, 304, -1, 11, -1, 10, 462,
1564  304, -1, 463, -1, 464, -1, 463, 464, -1, 465,
1565  -1, 481, -1, 487, -1, 493, -1, 499, -1, 505,
1566  -1, 511, -1, 517, -1, 523, -1, 466, 467, 470,
1567  -1, 56, -1, 468, -1, 469, -1, 468, 469, -1,
1568  1412, -1, 1385, -1, 1080, -1, 471, -1, 472, -1,
1569  10, 57, -1, 11, -1, 10, 473, 57, -1, 474,
1570  -1, 475, -1, 474, 475, -1, 476, 477, 480, -1,
1571  88, -1, 478, -1, -1, 478, 479, -1, 1394, -1,
1572  1385, -1, 10, 89, -1, 11, -1, 482, 483, -1,
1573  60, -1, 484, -1, 485, -1, 10, 61, -1, 11,
1574  -1, 10, 486, 61, -1, 4, -1, 488, 489, -1,
1575  327, -1, 490, -1, 491, -1, 10, 328, -1, 11,
1576  -1, 10, 492, 328, -1, 4, -1, 494, 495, -1,
1577  329, -1, 496, -1, 497, -1, 10, 330, -1, 11,
1578  -1, 10, 498, 330, -1, 4, -1, 500, 501, -1,
1579  331, -1, 502, -1, 503, -1, 10, 332, -1, 11,
1580  -1, 10, 504, 332, -1, 4, -1, 506, 507, -1,
1581  333, -1, 508, -1, 509, -1, 10, 334, -1, 11,
1582  -1, 10, 510, 334, -1, 4, -1, 512, 513, -1,
1583  80, -1, 514, -1, 515, -1, 10, 81, -1, 11,
1584  -1, 10, 516, 81, -1, 4, -1, 518, 519, -1,
1585  96, -1, 520, -1, 521, -1, 10, 97, -1, 11,
1586  -1, 10, 522, 97, -1, 4, -1, 524, 525, 526,
1587  -1, 66, -1, 1075, -1, 527, -1, 528, -1, 10,
1588  67, -1, 11, -1, 10, 529, 67, -1, 530, -1,
1589  531, -1, 530, 531, -1, 532, 533, 536, -1, 335,
1590  -1, 534, -1, -1, 534, 535, -1, 1394, -1, 1418,
1591  -1, 1385, -1, 10, 336, -1, 11, -1, -1, 538,
1592  539, -1, 305, -1, 540, -1, 541, -1, 10, 306,
1593  -1, 11, -1, 10, 542, 306, -1, 543, -1, 544,
1594  -1, 543, 544, -1, 545, -1, 551, -1, 558, -1,
1595  565, -1, 572, -1, 577, -1, 546, 547, -1, 90,
1596  -1, 548, -1, 549, -1, 10, 91, -1, 11, -1,
1597  10, 550, 91, -1, 4, -1, 552, 553, 556, -1,
1598  40, -1, 554, -1, -1, 554, 555, -1, 1415, -1,
1599  1385, -1, 10, 557, 41, -1, 1082, -1, 559, 560,
1600  563, -1, 42, -1, 561, -1, -1, 561, 562, -1,
1601  1415, -1, 1385, -1, 10, 564, 43, -1, 1082, -1,
1602  566, 567, 570, -1, 38, -1, 568, -1, -1, 568,
1603  569, -1, 1415, -1, 1385, -1, 10, 571, 39, -1,
1604  1082, -1, 573, 574, 575, -1, 36, -1, -1, 1385,
1605  -1, 10, 576, 37, -1, 6, -1, 578, 579, 580,
1606  -1, 66, -1, 1075, -1, 581, -1, 582, -1, 10,
1607  67, -1, 11, -1, 10, 583, 67, -1, 584, -1,
1608  585, -1, 584, 585, -1, 586, 587, 590, -1, 335,
1609  -1, 588, -1, -1, 588, 589, -1, 1394, -1, 1418,
1610  -1, 1385, -1, 10, 336, -1, 11, -1, -1, 592,
1611  593, -1, 307, -1, 594, -1, 595, -1, 10, 308,
1612  -1, 11, -1, 10, 596, 308, -1, 597, -1, 598,
1613  -1, 597, 598, -1, 599, -1, 605, -1, 611, -1,
1614  617, -1, 623, -1, 629, -1, 600, 601, -1, 48,
1615  -1, 602, -1, 603, -1, 10, 49, -1, 11, -1,
1616  10, 604, 49, -1, 4, -1, 606, 607, -1, 46,
1617  -1, 608, -1, 609, -1, 10, 47, -1, 11, -1,
1618  10, 610, 47, -1, 6, -1, 612, 613, -1, 100,
1619  -1, 614, -1, 615, -1, 10, 101, -1, 11, -1,
1620  10, 616, 101, -1, 6, -1, 618, 619, -1, 94,
1621  -1, 620, -1, 621, -1, 10, 95, -1, 11, -1,
1622  10, 622, 95, -1, 4, -1, 624, 625, -1, 76,
1623  -1, 626, -1, 627, -1, 10, 77, -1, 11, -1,
1624  10, 628, 77, -1, 1082, -1, 630, 631, 632, -1,
1625  66, -1, 1075, -1, 633, -1, 634, -1, 10, 67,
1626  -1, 11, -1, 10, 635, 67, -1, 636, -1, 637,
1627  -1, 636, 637, -1, 638, 639, 642, -1, 335, -1,
1628  640, -1, -1, 640, 641, -1, 1394, -1, 1418, -1,
1629  1385, -1, 10, 336, -1, 11, -1, -1, 644, 645,
1630  -1, 309, -1, 646, -1, 647, -1, 10, 310, -1,
1631  11, -1, 10, 648, 310, -1, 649, -1, 650, -1,
1632  649, 650, -1, 651, -1, 657, -1, 663, -1, 669,
1633  -1, 675, -1, 681, -1, 698, -1, 705, -1, 712,
1634  -1, 719, -1, 724, -1, 652, 653, -1, 84, -1,
1635  654, -1, 655, -1, 10, 85, -1, 11, -1, 10,
1636  656, 85, -1, 4, -1, 658, 659, -1, 86, -1,
1637  660, -1, 661, -1, 10, 87, -1, 11, -1, 10,
1638  662, 87, -1, 4, -1, 664, 665, -1, 74, -1,
1639  666, -1, 667, -1, 10, 75, -1, 11, -1, 10,
1640  668, 75, -1, 4, -1, 670, 671, -1, 34, -1,
1641  672, -1, 673, -1, 10, 35, -1, 11, -1, 10,
1642  674, 35, -1, 4, -1, 676, 677, -1, 52, -1,
1643  678, -1, 679, -1, 10, 53, -1, 11, -1, 10,
1644  680, 53, -1, 4, -1, 682, 683, 684, -1, 98,
1645  -1, 1081, -1, 685, -1, 686, -1, 10, 99, -1,
1646  11, -1, 10, 687, 99, -1, 688, -1, 689, -1,
1647  688, 689, -1, 690, 691, 693, -1, 92, -1, -1,
1648  691, 692, -1, 1415, -1, 1412, -1, 1379, -1, 1385,
1649  -1, 694, -1, 695, -1, 10, 93, -1, 11, -1,
1650  10, 696, 93, -1, 697, -1, 7, -1, 6, -1,
1651  699, 700, 703, -1, 106, -1, 701, -1, -1, 701,
1652  702, -1, 1415, -1, 1385, -1, 10, 704, 107, -1,
1653  1082, -1, 706, 707, 710, -1, 108, -1, 708, -1,
1654  -1, 708, 709, -1, 1415, -1, 1385, -1, 10, 711,
1655  109, -1, 1082, -1, 713, 714, 717, -1, 104, -1,
1656  715, -1, -1, 715, 716, -1, 1415, -1, 1385, -1,
1657  10, 718, 105, -1, 1082, -1, 720, 721, 722, -1,
1658  102, -1, -1, 1385, -1, 10, 723, 103, -1, 6,
1659  -1, 725, 726, 727, -1, 66, -1, 1075, -1, 728,
1660  -1, 729, -1, 10, 67, -1, 11, -1, 10, 730,
1661  67, -1, 731, -1, 732, -1, 731, 732, -1, 733,
1662  734, 737, -1, 335, -1, 735, -1, -1, 735, 736,
1663  -1, 1394, -1, 1418, -1, 1385, -1, 10, 336, -1,
1664  11, -1, -1, 739, 740, 743, -1, 311, -1, 741,
1665  -1, -1, 741, 742, -1, 1078, -1, 1358, -1, 1347,
1666  -1, 1353, -1, 744, -1, 745, -1, 10, 312, -1,
1667  11, -1, 10, 746, 312, -1, 747, 1048, -1, 748,
1668  -1, 747, 748, -1, 749, 750, 756, -1, 78, -1,
1669  751, -1, -1, 751, 752, -1, 753, -1, 754, -1,
1670  755, -1, 33, 1084, 6, 1084, -1, 18, 3, 1084,
1671  -1, 16, 3, 1084, -1, 10, 757, 773, 779, 857,
1672  919, 981, 1025, 79, -1, 758, 759, 762, -1, 84,
1673  -1, 760, -1, 761, -1, 760, 761, -1, 1412, -1,
1674  1385, -1, 1080, -1, 763, -1, 764, -1, 10, 85,
1675  -1, 11, -1, 10, 765, 85, -1, 766, -1, 767,
1676  -1, 766, 767, -1, 768, 769, 772, -1, 88, -1,
1677  770, -1, -1, 770, 771, -1, 1412, -1, 1385, -1,
1678  10, 89, -1, 11, -1, -1, 774, 775, -1, 60,
1679  -1, 776, -1, 777, -1, 10, 61, -1, 11, -1,
1680  10, 778, 61, -1, 4, -1, -1, 780, 781, 782,
1681  -1, 301, -1, -1, 1077, -1, 783, -1, 784, -1,
1682  11, -1, 10, 785, 302, -1, 786, 799, 815, 828,
1683  -1, -1, 787, 788, 789, -1, 144, -1, 1356, -1,
1684  790, -1, 791, -1, 10, 145, -1, 11, -1, 10,
1685  792, 145, -1, 793, -1, 794, -1, 793, 794, -1,
1686  795, 796, 798, -1, 299, -1, -1, 796, 797, -1,
1687  1369, -1, 1394, -1, 10, 1082, 300, -1, -1, 800,
1688  801, 802, -1, 110, -1, 1356, -1, 803, -1, 804,
1689  -1, 10, 111, -1, 11, -1, 10, 805, 111, -1,
1690  806, -1, 807, -1, 806, 807, -1, 808, 809, 811,
1691  -1, 299, -1, -1, 809, 810, -1, 1369, -1, 1394,
1692  -1, 812, -1, 813, -1, 10, 300, -1, 11, -1,
1693  10, 814, 300, -1, 4, -1, -1, 816, 817, -1,
1694  44, -1, 818, -1, 819, -1, 11, -1, 10, 820,
1695  45, -1, 821, 822, 823, 824, 825, 826, 827, -1,
1696  -1, 1137, -1, -1, 1143, -1, -1, 1149, -1, -1,
1697  1155, -1, -1, 1161, -1, -1, 1167, -1, -1, 1173,
1698  -1, -1, 828, 829, -1, 830, 831, 834, -1, 335,
1699  -1, 832, -1, -1, 832, 833, -1, 1356, -1, 1349,
1700  -1, 1418, -1, 1406, -1, 1394, -1, 1412, -1, 1424,
1701  -1, 1388, -1, 1385, -1, 835, -1, 836, -1, 10,
1702  336, -1, 11, -1, 10, 837, 336, -1, 838, -1,
1703  847, -1, 839, -1, 838, 839, -1, 840, 841, 843,
1704  -1, 299, -1, -1, 841, 842, -1, 1369, -1, 1394,
1705  -1, 844, -1, 845, -1, 10, 300, -1, 11, -1,
1706  10, 846, 300, -1, 1083, -1, 848, -1, 847, 848,
1707  -1, 849, 850, 853, -1, 150, -1, 851, -1, -1,
1708  851, 852, -1, 1348, -1, 1418, -1, 1385, -1, 854,
1709  -1, 855, -1, 11, -1, 10, 856, 151, -1, 1115,
1710  -1, -1, 858, 859, 860, -1, 297, -1, -1, 1074,
1711  -1, 861, -1, 862, -1, 11, -1, 10, 863, 298,
1712  -1, 864, 877, 890, -1, -1, 865, 866, 867, -1,
1713  144, -1, 1352, -1, 868, -1, 869, -1, 10, 145,
1714  -1, 11, -1, 10, 870, 145, -1, 871, -1, 872,
1715  -1, 871, 872, -1, 873, 874, 876, -1, 295, -1,
1716  -1, 874, 875, -1, 1369, -1, 1394, -1, 10, 1082,
1717  296, -1, -1, 878, 879, -1, 44, -1, 880, -1,
1718  881, -1, 11, -1, 10, 882, 45, -1, 883, 884,
1719  885, 886, 887, 888, 889, -1, -1, 1137, -1, -1,
1720  1143, -1, -1, 1149, -1, -1, 1155, -1, -1, 1161,
1721  -1, -1, 1167, -1, -1, 1173, -1, -1, 890, 891,
1722  -1, 892, 893, 896, -1, 335, -1, 894, -1, -1,
1723  894, 895, -1, 1352, -1, 1349, -1, 1418, -1, 1406,
1724  -1, 1394, -1, 1412, -1, 1397, -1, 1388, -1, 1385,
1725  -1, 897, -1, 898, -1, 10, 336, -1, 11, -1,
1726  10, 899, 336, -1, 900, -1, 909, -1, 901, -1,
1727  900, 901, -1, 902, 903, 905, -1, 295, -1, -1,
1728  903, 904, -1, 1369, -1, 1394, -1, 906, -1, 907,
1729  -1, 10, 296, -1, 11, -1, 10, 908, 296, -1,
1730  1083, -1, 910, -1, 909, 910, -1, 911, 912, 915,
1731  -1, 150, -1, 913, -1, -1, 913, 914, -1, 1348,
1732  -1, 1418, -1, 1385, -1, 916, -1, 917, -1, 11,
1733  -1, 10, 918, 151, -1, 1115, -1, -1, 920, 921,
1734  922, -1, 293, -1, -1, 1071, -1, 923, -1, 924,
1735  -1, 11, -1, 10, 925, 294, -1, 926, 939, 952,
1736  -1, -1, 927, 928, 929, -1, 50, -1, 1346, -1,
1737  930, -1, 931, -1, 10, 51, -1, 11, -1, 10,
1738  932, 51, -1, 933, -1, 934, -1, 933, 934, -1,
1739  935, 936, 938, -1, 291, -1, -1, 936, 937, -1,
1740  1369, -1, 1394, -1, 10, 1082, 292, -1, -1, 940,
1741  941, -1, 44, -1, 942, -1, 943, -1, 11, -1,
1742  10, 944, 45, -1, 945, 946, 947, 948, 949, 950,
1743  951, -1, -1, 1137, -1, -1, 1143, -1, -1, 1149,
1744  -1, -1, 1155, -1, -1, 1161, -1, -1, 1167, -1,
1745  -1, 1173, -1, -1, 952, 953, -1, 954, 955, 958,
1746  -1, 335, -1, 956, -1, -1, 956, 957, -1, 1346,
1747  -1, 1349, -1, 1418, -1, 1406, -1, 1394, -1, 1412,
1748  -1, 1382, -1, 1388, -1, 1385, -1, 959, -1, 960,
1749  -1, 10, 336, -1, 11, -1, 10, 961, 336, -1,
1750  962, -1, 971, -1, 963, -1, 962, 963, -1, 964,
1751  965, 967, -1, 291, -1, -1, 965, 966, -1, 1369,
1752  -1, 1394, -1, 968, -1, 969, -1, 10, 292, -1,
1753  11, -1, 10, 970, 292, -1, 1083, -1, 972, -1,
1754  971, 972, -1, 973, 974, 977, -1, 150, -1, 975,
1755  -1, -1, 975, 976, -1, 1348, -1, 1418, -1, 1385,
1756  -1, 978, -1, 979, -1, 11, -1, 10, 980, 151,
1757  -1, 1115, -1, -1, 982, 983, 984, -1, 277, -1,
1758  -1, 1072, -1, 985, -1, 986, -1, 11, -1, 10,
1759  987, 1023, 278, -1, -1, 988, 989, 990, -1, 279,
1760  -1, 1073, -1, 991, -1, 992, -1, 11, -1, 10,
1761  994, 1002, 993, -1, 280, -1, -1, 995, 996, 997,
1762  -1, 144, -1, 1351, -1, 998, -1, 999, -1, 11,
1763  -1, 10, 1001, 1000, -1, 145, -1, -1, 1001, 1180,
1764  -1, -1, 1002, 1003, -1, 1004, 1005, 1008, -1, 335,
1765  -1, 1006, -1, -1, 1006, 1007, -1, 1351, -1, 1349,
1766  -1, 1418, -1, 1406, -1, 1394, -1, 1412, -1, 1391,
1767  -1, 1388, -1, 1385, -1, 1009, -1, 1010, -1, 10,
1768  336, -1, 11, -1, 10, 1011, 336, -1, 1013, -1,
1769  1012, -1, 1180, -1, 1012, 1180, -1, 1014, -1, 1013,
1770  1014, -1, 1015, 1016, 1019, -1, 150, -1, 1017, -1,
1771  -1, 1017, 1018, -1, 1348, -1, 1418, -1, 1385, -1,
1772  1020, -1, 1021, -1, 11, -1, 10, 1022, 151, -1,
1773  1115, -1, -1, 1023, 1024, -1, 118, -1, -1, 1026,
1774  1027, 1028, -1, 70, -1, 1076, -1, 1029, -1, 1030,
1775  -1, 10, 71, -1, 11, -1, 10, 1031, 71, -1,
1776  1032, -1, 1033, -1, 1032, 1033, -1, 1034, 1035, 1038,
1777  -1, 68, -1, 1036, -1, -1, 1036, 1037, -1, 1394,
1778  -1, 1418, -1, 1379, -1, 1385, -1, 1350, -1, 1039,
1779  -1, 1040, -1, 10, 69, -1, 11, -1, 10, 1041,
1780  69, -1, 1042, -1, 1043, -1, 1042, 1043, -1, 1044,
1781  -1, 1045, -1, 1046, -1, 155, -1, 152, -1, 153,
1782  1047, 154, -1, 5, -1, -1, 1049, 1050, 1051, -1,
1783  72, -1, 1079, -1, 1052, -1, 1053, -1, 10, 73,
1784  -1, 11, -1, 10, 1054, 73, -1, 1055, -1, 1056,
1785  -1, 1055, 1056, -1, 1057, 1058, 1061, -1, 82, -1,
1786  1059, -1, -1, 1059, 1060, -1, 1394, -1, 1379, -1,
1787  1385, -1, 1350, -1, 1062, -1, 1063, -1, 10, 83,
1788  -1, 11, -1, 10, 1064, 83, -1, 1065, -1, 1066,
1789  -1, 1065, 1066, -1, 1067, -1, 1068, -1, 1069, -1,
1790  155, -1, 152, -1, 153, 1070, 154, -1, 5, -1,
1791  20, 1084, 6, 1084, -1, 28, 1084, 6, 1084, -1,
1792  29, 1084, 6, 1084, -1, 21, 1084, 6, 1084, -1,
1793  22, 1084, 6, 1084, -1, 23, 1084, 6, 1084, -1,
1794  24, 1084, 6, 1084, -1, 25, 1084, 6, 1084, -1,
1795  30, 1084, 6, 1084, -1, 31, 1084, 6, 1084, -1,
1796  32, 1084, 6, 1084, -1, 6, -1, 7, -1, 4,
1797  -1, 6, -1, 7, -1, 1085, 8, -1, -1, 1085,
1798  1086, -1, 441, -1, 442, -1, 443, -1, 444, -1,
1799  1088, 1089, -1, 120, -1, 1090, -1, 1091, -1, 11,
1800  -1, 10, 1092, 121, -1, 1093, -1, -1, 1093, 1094,
1801  -1, 1095, -1, 1099, -1, 1103, -1, 1107, -1, 1111,
1802  -1, 1096, -1, 1097, -1, 1098, -1, 125, -1, 124,
1803  -1, 122, 5, 123, -1, 1100, -1, 1101, -1, 1102,
1804  -1, 129, -1, 128, -1, 126, 5, 127, -1, 1104,
1805  -1, 1105, -1, 1106, -1, 133, -1, 132, -1, 130,
1806  5, 131, -1, 1108, -1, 1109, -1, 1110, -1, 137,
1807  -1, 136, -1, 134, 5, 135, -1, 1112, -1, 1113,
1808  -1, 1114, -1, 141, -1, 140, -1, 138, 5, 139,
1809  -1, 1116, -1, 1123, -1, -1, 1116, 1117, -1, 1118,
1810  1119, 1122, -1, 148, -1, 1120, -1, -1, 1120, 1121,
1811  -1, 1372, -1, 1370, -1, 10, 6, 149, -1, 156,
1812  1359, 1124, -1, 1125, -1, 1126, -1, 10, 157, -1,
1813  11, -1, 10, 4, 157, -1, 1128, -1, 1133, -1,
1814  -1, 1128, 1129, -1, 1130, 1131, 1132, -1, 148, -1,
1815  -1, 1372, -1, 10, 1082, 149, -1, 156, 1359, 1134,
1816  -1, 1135, -1, 1136, -1, 10, 157, -1, 11, -1,
1817  10, 4, 157, -1, 1138, 1179, 1139, -1, 319, -1,
1818  1140, -1, 1141, -1, 11, -1, 10, 1142, 320, -1,
1819  1115, -1, 1144, 1179, 1145, -1, 315, -1, 1146, -1,
1820  1147, -1, 11, -1, 10, 1148, 316, -1, 1115, -1,
1821  1150, 1179, 1151, -1, 317, -1, 1152, -1, 1153, -1,
1822  11, -1, 10, 1154, 318, -1, 1115, -1, 1156, 1179,
1823  1157, -1, 313, -1, 1158, -1, 1159, -1, 11, -1,
1824  10, 1160, 314, -1, 1115, -1, 1162, 1179, 1163, -1,
1825  321, -1, 1164, -1, 1165, -1, 11, -1, 10, 1166,
1826  322, -1, 1115, -1, 1168, 1179, 1169, -1, 323, -1,
1827  1170, -1, 1171, -1, 11, -1, 10, 1172, 324, -1,
1828  1115, -1, 1174, 1179, 1175, -1, 325, -1, 1176, -1,
1829  1177, -1, 11, -1, 10, 1178, 326, -1, 1115, -1,
1830  1348, -1, 1181, 1182, 1185, -1, 281, -1, 1183, -1,
1831  -1, 1183, 1184, -1, 1409, -1, 1354, -1, 1345, -1,
1832  1394, -1, 1412, -1, 1371, -1, 1186, -1, 1187, -1,
1833  11, -1, 10, 1188, 282, -1, 1189, 1195, -1, -1,
1834  1190, 1191, 1194, -1, 242, -1, 1192, -1, -1, 1192,
1835  1193, -1, 1360, -1, 1374, -1, 1375, -1, 1361, -1,
1836  1362, -1, 1363, -1, 1364, -1, 1376, -1, 1373, -1,
1837  10, 241, -1, 11, -1, -1, 1195, 1196, -1, 1197,
1838  -1, 1222, -1, 1235, -1, 1262, -1, 1280, -1, 1293,
1839  -1, 1311, -1, 1315, -1, 1198, 1199, 10, 1202, -1,
1840  253, -1, 1200, -1, -1, 1200, 1201, -1, 1355, -1,
1841  1400, -1, 1204, 1203, 254, -1, -1, 1210, 1216, -1,
1842  1205, 1206, -1, 267, -1, 1207, -1, 1208, -1, 11,
1843  -1, 10, 1209, 268, -1, 1115, -1, 1211, 1212, -1,
1844  269, -1, 1213, -1, 1214, -1, 11, -1, 10, 1215,
1845  270, -1, 1115, -1, 1217, 1218, -1, 271, -1, 1219,
1846  -1, 1220, -1, 11, -1, 10, 1221, 272, -1, 1127,
1847  -1, 1223, 1224, 10, 1227, -1, 255, -1, 1225, -1,
1848  -1, 1225, 1226, -1, 1355, -1, 1400, -1, 1204, 1228,
1849  256, -1, -1, 1210, 1229, -1, 1230, 1231, -1, 271,
1850  -1, 1232, -1, 1233, -1, 11, -1, 10, 1234, 272,
1851  -1, 1115, -1, 1236, 1237, 10, 1240, -1, 257, -1,
1852  1238, -1, -1, 1238, 1239, -1, 1355, -1, 1400, -1,
1853  1204, 1241, 258, -1, -1, 1210, 1242, -1, -1, 1243,
1854  1244, -1, 271, -1, 1245, -1, 1246, -1, 11, -1,
1855  10, 1247, 272, -1, 1248, -1, -1, 1248, 1249, -1,
1856  1250, 1251, 1254, -1, 148, -1, 1252, -1, -1, 1252,
1857  1253, -1, 1357, -1, 1368, -1, 1255, -1, 1256, -1,
1858  11, -1, 10, 1257, 149, -1, -1, 1257, 1258, -1,
1859  1259, 1260, 1261, -1, 273, -1, -1, 1367, -1, 10,
1860  6, 274, -1, 1263, 1264, 10, 1267, -1, 259, -1,
1861  1265, -1, -1, 1265, 1266, -1, 1355, -1, 1400, -1,
1862  1204, 1268, 260, -1, -1, 1210, 1269, -1, -1, 1270,
1863  1271, -1, 271, -1, 1272, -1, 1273, -1, 11, -1,
1864  10, 1274, 272, -1, -1, 1274, 1275, -1, 1276, 1277,
1865  -1, 148, -1, 1278, -1, 1279, -1, 11, -1, 10,
1866  1427, 149, -1, 1281, 1282, 10, 1285, -1, 263, -1,
1867  1283, -1, -1, 1283, 1284, -1, 1355, -1, 1400, -1,
1868  1204, 1286, 264, -1, -1, 1210, 1287, -1, 1288, 1289,
1869  -1, 271, -1, 1290, -1, 1291, -1, 11, -1, 10,
1870  1292, 272, -1, 1115, -1, 1294, 1295, 10, 1298, -1,
1871  261, -1, 1296, -1, -1, 1296, 1297, -1, 1355, -1,
1872  1400, -1, 1204, 1299, 262, -1, -1, 1210, 1300, -1,
1873  -1, 1301, 1302, -1, 271, -1, 1303, -1, 1304, -1,
1874  11, -1, 10, 1305, 272, -1, -1, 1305, 1306, -1,
1875  1307, 1308, 1310, -1, 148, -1, -1, 1308, 1309, -1,
1876  1421, -1, 1372, -1, 1370, -1, 10, 6, 149, -1,
1877  1312, 1313, 10, 1501, 1314, -1, 275, -1, -1, 1403,
1878  -1, 276, -1, 1316, 1317, 1318, -1, 243, -1, 1344,
1879  -1, 10, 1320, 1327, 1334, 1319, -1, 244, -1, 1321,
1880  1322, 1323, -1, 247, -1, 1348, -1, 1324, -1, 1325,
1881  -1, 11, -1, 10, 1326, 248, -1, 1115, -1, 1328,
1882  1329, 1330, -1, 249, -1, 1348, -1, 1331, -1, 1332,
1883  -1, 11, -1, 10, 1333, 250, -1, 1115, -1, -1,
1884  1334, 1335, -1, 1336, 1337, 1340, -1, 245, -1, 1338,
1885  -1, -1, 1338, 1339, -1, 1365, -1, 1366, -1, 1409,
1886  -1, 1412, -1, 1341, -1, 1342, -1, 11, -1, 10,
1887  1343, 246, -1, 1189, 1195, -1, 201, 8, 6, 8,
1888  -1, 202, 8, 6, 8, -1, 207, 8, 6, 8,
1889  -1, 206, 8, 6, 8, -1, 158, 8, 6, 8,
1890  -1, 159, 8, 6, 8, -1, 160, 8, 6, 8,
1891  -1, 217, 8, 6, 8, -1, 210, 8, 6, 8,
1892  -1, 209, 8, 6, 8, -1, 203, 8, 6, 8,
1893  -1, 205, 8, 6, 8, -1, 213, 8, 6, 8,
1894  -1, 214, 8, 6, 8, -1, 212, 8, 6, 8,
1895  -1, 234, 8, 6, 8, -1, 218, 8, 6, 8,
1896  -1, 221, 8, 6, 8, -1, 222, 8, 6, 8,
1897  -1, 223, 8, 6, 8, -1, 224, 8, 6, 8,
1898  -1, 226, 1084, 6, 1084, -1, 227, 1084, 6, 1084,
1899  -1, 235, 8, 1082, 8, -1, 236, 8, 1082, 8,
1900  -1, 231, 8, 6, 8, -1, 232, 8, 6, 8,
1901  -1, 228, 1084, 6, 1084, -1, 233, 8, 6, 8,
1902  -1, 225, 8, 1082, 8, -1, 219, 8, 6, 8,
1903  -1, 220, 8, 6, 8, -1, 1377, -1, 1378, -1,
1904  199, -1, 200, 3, 1084, -1, 1380, -1, 1381, -1,
1905  161, -1, 162, 3, 8, -1, 1383, -1, 1384, -1,
1906  181, -1, 182, 3, 8, -1, 1386, -1, 1387, -1,
1907  163, -1, 164, 3, 8, -1, 1389, -1, 1390, -1,
1908  171, -1, 172, 3, 8, -1, 1392, -1, 1393, -1,
1909  191, -1, 192, 3, 8, -1, 1395, -1, 1396, -1,
1910  167, -1, 168, 3, 8, -1, 1398, -1, 1399, -1,
1911  183, -1, 184, 3, 8, -1, 1401, -1, 1402, -1,
1912  197, -1, 198, 3, 8, -1, 1404, -1, 1405, -1,
1913  173, -1, 174, 3, 8, -1, 1407, -1, 1408, -1,
1914  165, -1, 166, 3, 8, -1, 1410, -1, 1411, -1,
1915  195, -1, 196, 3, 8, -1, 1413, -1, 1414, -1,
1916  169, -1, 170, 3, 8, -1, 1416, -1, 1417, -1,
1917  175, -1, 176, 3, 8, -1, 1419, -1, 1420, -1,
1918  177, -1, 178, 3, 8, -1, 1422, -1, 1423, -1,
1919  179, -1, 180, 3, 8, -1, 1425, -1, 1426, -1,
1920  185, -1, 186, 3, 8, -1, 1471, -1, 1478, -1,
1921  1434, -1, 1436, -1, 1486, -1, 1438, -1, 1440, -1,
1922  1442, -1, 1444, -1, 1498, -1, 1446, -1, 1448, -1,
1923  1450, -1, 1454, -1, 1452, -1, 1456, -1, 1463, -1,
1924  1458, -1, 1461, -1, 1492, -1, 1495, -1, 1428, -1,
1925  1431, -1, 1489, -1, 1465, -1, 1467, -1, 1469, -1,
1926  -1, 391, 1429, 1430, -1, 11, -1, 10, 392, -1,
1927  -1, 393, 1432, 1433, -1, 11, -1, 10, 394, -1,
1928  -1, 395, 1435, 1427, 1427, 396, -1, -1, 353, 1437,
1929  1427, 1427, 354, -1, -1, 355, 1439, 1427, 1427, 356,
1930  -1, -1, 369, 1441, 1427, 370, -1, -1, 357, 1443,
1931  1427, 1427, 358, -1, -1, 351, 1445, 1427, 1427, 352,
1932  -1, -1, 359, 1447, 1427, 360, -1, -1, 361, 1449,
1933  1427, 362, -1, -1, 373, 1451, 1427, 374, -1, -1,
1934  375, 1453, 1427, 376, -1, -1, 377, 1455, 1427, 378,
1935  -1, -1, 367, 1457, 1427, 368, -1, 1459, 1427, 1460,
1936  -1, 381, -1, 382, -1, -1, 383, 1462, 1427, 384,
1937  -1, -1, 371, 1464, 1427, 1427, 1427, 372, -1, -1,
1938  399, 1466, 1501, 400, -1, -1, 401, 1468, 1501, 402,
1939  -1, -1, 403, 1470, 1501, 404, -1, 1472, 1474, 1473,
1940  -1, 397, -1, 11, -1, 10, 398, -1, -1, 1474,
1941  1475, -1, 1412, -1, 1418, -1, 1476, -1, -1, 440,
1942  3, 1477, 8, -1, -1, 379, 1479, 1482, 1480, -1,
1943  11, -1, 10, 380, -1, -1, 10, 1427, 1481, 380,
1944  -1, -1, 1482, 1483, -1, 1484, -1, 1485, -1, 235,
1945  8, 1082, 8, -1, 231, 8, 6, 8, -1, -1,
1946  363, 1487, 1488, 364, -1, -1, 1488, 1427, -1, -1,
1947  387, 1490, 1491, 388, -1, -1, 1491, 1427, -1, -1,
1948  385, 1493, 1494, 386, -1, -1, 1494, 1427, -1, -1,
1949  389, 1496, 1497, 390, -1, -1, 1497, 1427, -1, -1,
1950  365, 1499, 1500, 366, -1, -1, 1500, 1427, -1, 1502,
1951  -1, 1506, -1, 1510, -1, 1514, -1, 1518, -1, 1521,
1952  -1, 1527, -1, 1530, -1, 1534, -1, 1539, -1, 1542,
1953  -1, 1545, -1, 1548, -1, 1551, -1, 1554, -1, 1557,
1954  -1, 1560, -1, 1563, -1, 1524, -1, 1503, 1505, 1504,
1955  -1, 431, -1, 11, -1, 10, 432, -1, 231, 8,
1956  6, 8, -1, 1507, 1509, 1508, -1, 281, -1, 11,
1957  -1, 10, 282, -1, 231, 8, 6, 8, -1, 1511,
1958  1513, 1512, -1, 285, -1, 11, -1, 10, 286, -1,
1959  231, 8, 6, 8, -1, 1515, 1517, 1516, -1, 289,
1960  -1, 11, -1, 10, 290, -1, 231, 8, 6, 8,
1961  -1, 1519, 1520, -1, 405, -1, 1501, 406, -1, 1522,
1962  1523, -1, 407, -1, 1501, 1501, 408, -1, 1525, 1526,
1963  -1, 433, -1, 1427, 434, -1, 1528, 1529, -1, 435,
1964  -1, 1501, 436, -1, 1531, 1532, 10, 1533, -1, 409,
1965  -1, -1, 1538, -1, 1501, 410, -1, 1535, 1536, 10,
1966  1537, -1, 411, -1, -1, 1538, -1, 1501, 412, -1,
1967  438, 3, 8, -1, 1540, 1541, -1, 413, -1, 11,
1968  -1, 10, 414, -1, 1543, 1544, -1, 415, -1, 1501,
1969  1501, 416, -1, 1546, 1547, -1, 417, -1, 1501, 418,
1970  -1, 1549, 1550, -1, 419, -1, 1501, 1501, 420, -1,
1971  1552, 1553, -1, 421, -1, 1501, 1501, 422, -1, -1,
1972  423, 1555, 1556, 424, -1, -1, 1556, 1501, -1, 1558,
1973  1559, -1, 425, -1, 1427, 1501, 426, -1, 1561, 1562,
1974  -1, 427, -1, 1427, 1427, 1427, 1427, 1501, 428, -1,
1975  1564, 1565, -1, 429, -1, 1501, 430, -1
1976 };
1977 
1978 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
1979 static const yytype_uint16 yyrline[] =
1980 {
1981  0, 345, 345, 346, 348, 355, 365, 365, 367, 367,
1982  369, 371, 373, 382, 383, 386, 395, 395, 408, 408,
1983  410, 424, 424, 426, 426, 428, 430, 432, 432, 435,
1984  436, 437, 438, 439, 440, 441, 442, 443, 446, 448,
1985  463, 470, 470, 473, 478, 482, 491, 495, 500, 500,
1986  502, 504, 506, 506, 508, 513, 523, 529, 529, 532,
1987  537, 543, 543, 546, 548, 555, 555, 557, 557, 559,
1988  561, 564, 566, 573, 573, 575, 575, 577, 579, 584,
1989  586, 593, 593, 595, 595, 597, 599, 604, 606, 613,
1990  613, 615, 615, 617, 619, 624, 626, 633, 633, 635,
1991  635, 637, 639, 644, 646, 653, 653, 655, 655, 657,
1992  659, 664, 666, 673, 673, 675, 675, 677, 679, 684,
1993  686, 693, 703, 708, 714, 714, 716, 718, 720, 720,
1994  722, 727, 739, 745, 745, 748, 755, 760, 767, 767,
1995  771, 771, 773, 784, 784, 786, 786, 788, 790, 792,
1996  792, 795, 796, 797, 798, 799, 800, 803, 805, 812,
1997  812, 814, 814, 816, 818, 825, 827, 838, 840, 840,
1998  843, 849, 855, 857, 863, 865, 876, 878, 878, 881,
1999  887, 893, 895, 902, 904, 915, 917, 917, 920, 926,
2000  932, 934, 941, 943, 952, 953, 959, 961, 967, 969,
2001  976, 986, 991, 997, 997, 999, 1001, 1003, 1003, 1005,
2002  1010, 1022, 1028, 1028, 1031, 1038, 1043, 1049, 1049, 1053,
2003  1053, 1055, 1066, 1066, 1068, 1068, 1070, 1072, 1074, 1074,
2004  1077, 1078, 1079, 1080, 1081, 1082, 1085, 1087, 1094, 1094,
2005  1096, 1096, 1098, 1100, 1108, 1110, 1117, 1117, 1119, 1119,
2006  1121, 1123, 1128, 1130, 1137, 1137, 1139, 1139, 1141, 1143,
2007  1148, 1150, 1157, 1157, 1159, 1159, 1161, 1163, 1168, 1170,
2008  1177, 1177, 1179, 1179, 1181, 1183, 1190, 1192, 1199, 1209,
2009  1214, 1220, 1220, 1222, 1224, 1226, 1226, 1228, 1233, 1245,
2010  1251, 1251, 1254, 1261, 1266, 1273, 1273, 1276, 1276, 1278,
2011  1294, 1294, 1296, 1296, 1298, 1300, 1302, 1302, 1305, 1306,
2012  1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1318,
2013  1320, 1327, 1327, 1329, 1329, 1331, 1333, 1341, 1343, 1350,
2014  1350, 1352, 1352, 1354, 1356, 1361, 1363, 1370, 1370, 1372,
2015  1372, 1374, 1376, 1381, 1383, 1390, 1390, 1392, 1392, 1394,
2016  1396, 1401, 1403, 1410, 1410, 1412, 1412, 1414, 1416, 1421,
2017  1423, 1430, 1440, 1445, 1451, 1451, 1453, 1455, 1457, 1457,
2018  1459, 1461, 1475, 1475, 1478, 1478, 1478, 1478, 1481, 1481,
2019  1483, 1483, 1485, 1487, 1496, 1497, 1500, 1502, 1513, 1515,
2020  1515, 1518, 1524, 1530, 1532, 1539, 1541, 1552, 1554, 1554,
2021  1557, 1563, 1569, 1571, 1578, 1580, 1591, 1593, 1593, 1596,
2022  1602, 1608, 1610, 1617, 1619, 1629, 1630, 1636, 1638, 1645,
2023  1647, 1654, 1664, 1669, 1675, 1675, 1677, 1679, 1681, 1681,
2024  1683, 1688, 1700, 1706, 1706, 1709, 1716, 1721, 1728, 1728,
2025  1731, 1731, 1733, 1741, 1747, 1747, 1750, 1757, 1762, 1767,
2026  1774, 1779, 1785, 1785, 1787, 1789, 1791, 1791, 1793, 1795,
2027  1804, 1806, 1806, 1808, 1808, 1808, 1810, 1820, 1830, 1850,
2028  1856, 1858, 1868, 1874, 1874, 1877, 1882, 1887, 1897, 1902,
2029  1908, 1908, 1910, 1912, 1914, 1914, 1916, 1921, 1931, 1937,
2030  1937, 1940, 1946, 1953, 1953, 1956, 1956, 1958, 1960, 1960,
2031  1962, 1962, 1964, 1966, 1974, 1974, 1976, 1982, 1982, 1990,
2032  1990, 1992, 1994, 1996, 1998, 1998, 2000, 2005, 2013, 2018,
2033  2024, 2024, 2026, 2028, 2030, 2030, 2032, 2042, 2051, 2051,
2034  2054, 2055, 2058, 2061, 2061, 2063, 2068, 2076, 2081, 2087,
2035  2087, 2089, 2091, 2093, 2093, 2095, 2105, 2114, 2114, 2117,
2036  2118, 2122, 2123, 2125, 2125, 2127, 2129, 2134, 2134, 2136,
2037  2141, 2141, 2143, 2145, 2147, 2149, 2149, 2158, 2158, 2167,
2038  2167, 2176, 2176, 2185, 2185, 2194, 2194, 2203, 2203, 2213,
2039  2213, 2215, 2220, 2244, 2250, 2250, 2253, 2262, 2270, 2276,
2040  2282, 2288, 2294, 2300, 2306, 2313, 2313, 2315, 2315, 2317,
2041  2319, 2319, 2321, 2321, 2323, 2330, 2339, 2339, 2342, 2348,
2042  2355, 2355, 2357, 2357, 2359, 2361, 2370, 2370, 2372, 2383,
2043  2393, 2399, 2399, 2402, 2407, 2408, 2412, 2412, 2414, 2416,
2044  2419, 2423, 2423, 2425, 2433, 2433, 2441, 2441, 2443, 2445,
2045  2447, 2449, 2449, 2451, 2456, 2464, 2469, 2475, 2475, 2477,
2046  2479, 2482, 2482, 2484, 2492, 2502, 2502, 2505, 2506, 2509,
2047  2512, 2512, 2514, 2519, 2519, 2522, 2524, 2526, 2528, 2528,
2048  2537, 2537, 2546, 2546, 2555, 2555, 2564, 2564, 2573, 2573,
2049  2582, 2582, 2592, 2592, 2594, 2600, 2624, 2631, 2631, 2634,
2050  2642, 2650, 2656, 2662, 2668, 2674, 2680, 2686, 2694, 2694,
2051  2696, 2696, 2698, 2700, 2700, 2702, 2702, 2704, 2709, 2719,
2052  2719, 2722, 2728, 2735, 2735, 2737, 2737, 2739, 2741, 2748,
2053  2748, 2750, 2762, 2772, 2778, 2778, 2781, 2786, 2787, 2791,
2054  2791, 2793, 2795, 2798, 2801, 2801, 2803, 2810, 2810, 2818,
2055  2818, 2820, 2822, 2824, 2826, 2826, 2828, 2833, 2841, 2846,
2056  2852, 2852, 2854, 2856, 2858, 2858, 2860, 2868, 2877, 2877,
2057  2880, 2881, 2884, 2887, 2887, 2889, 2894, 2894, 2896, 2898,
2058  2900, 2902, 2902, 2911, 2911, 2920, 2920, 2929, 2929, 2938,
2059  2938, 2947, 2947, 2956, 2956, 2966, 2966, 2968, 2974, 2998,
2060  3004, 3004, 3007, 3015, 3023, 3029, 3035, 3041, 3047, 3053,
2061  3059, 3066, 3066, 3068, 3068, 3070, 3072, 3072, 3074, 3074,
2062  3076, 3083, 3092, 3092, 3096, 3101, 3109, 3109, 3111, 3111,
2063  3113, 3115, 3123, 3123, 3125, 3137, 3147, 3153, 3153, 3156,
2064  3161, 3162, 3166, 3166, 3168, 3170, 3172, 3175, 3175, 3177,
2065  3183, 3183, 3191, 3191, 3193, 3195, 3198, 3198, 3206, 3212,
2066  3225, 3225, 3227, 3229, 3231, 3233, 3233, 3236, 3243, 3255,
2067  3255, 3257, 3259, 3261, 3267, 3267, 3269, 3269, 3271, 3277,
2068  3306, 3313, 3313, 3316, 3326, 3332, 3337, 3342, 3347, 3352,
2069  3357, 3362, 3369, 3369, 3371, 3371, 3373, 3376, 3377, 3383,
2070  3383, 3386, 3387, 3389, 3402, 3412, 3418, 3418, 3421, 3426,
2071  3427, 3431, 3431, 3433, 3435, 3437, 3444, 3444, 3446, 3451,
2072  3451, 3453, 3458, 3467, 3472, 3478, 3478, 3480, 3482, 3484,
2073  3484, 3486, 3491, 3505, 3513, 3513, 3516, 3522, 3528, 3534,
2074  3540, 3550, 3555, 3561, 3561, 3563, 3565, 3567, 3567, 3569,
2075  3575, 3580, 3582, 3582, 3584, 3586, 3598, 3598, 3600, 3605,
2076  3614, 3619, 3625, 3625, 3627, 3629, 3631, 3631, 3633, 3638,
2077  3650, 3658, 3658, 3661, 3666, 3671, 3676, 3684, 3689, 3695,
2078  3695, 3697, 3699, 3701, 3701, 3703, 3709, 3714, 3716, 3716,
2079  3718, 3720, 4021, 4027, 4033, 4039, 4045, 4051, 4057, 4063,
2080  4072, 4078, 4087, 4115, 4116, 4120, 4121, 4122, 4124, 4126,
2081  4126, 4128, 4129, 4130, 4131, 4167, 4169, 4183, 4183, 4185,
2082  4187, 4189, 4191, 4191, 4194, 4195, 4196, 4197, 4198, 4200,
2083  4208, 4208, 4210, 4210, 4212, 4218, 4226, 4226, 4228, 4228,
2084  4230, 4236, 4244, 4244, 4246, 4246, 4248, 4254, 4262, 4262,
2085  4264, 4264, 4266, 4272, 4280, 4280, 4282, 4282, 4284, 4296,
2086  4304, 4306, 4306, 4308, 4310, 4319, 4321, 4321, 4323, 4323,
2087  4325, 4341, 4344, 4344, 4346, 4346, 4349, 4380, 4388, 4390,
2088  4390, 4392, 4394, 4402, 4402, 4404, 4420, 4422, 4422, 4424,
2089  4424, 4426, 4577, 4579, 4584, 4584, 4586, 4588, 4590, 4593,
2090  4595, 4600, 4600, 4602, 4604, 4606, 4609, 4611, 4616, 4616,
2091  4618, 4620, 4622, 4625, 4627, 4632, 4632, 4634, 4636, 4638,
2092  4641, 4643, 4648, 4648, 4650, 4652, 4654, 4657, 4659, 4664,
2093  4664, 4666, 4668, 4670, 4673, 4675, 4680, 4680, 4682, 4684,
2094  4686, 4689, 4718, 4806, 4831, 4853, 4853, 4856, 4857, 4858,
2095  4859, 4860, 4861, 4992, 4992, 4994, 4996, 5025, 5027, 5027,
2096  5032, 5050, 5077, 5077, 5080, 5081, 5082, 5083, 5084, 5085,
2097  5086, 5087, 5088, 5091, 5091, 5093, 5093, 5098, 5098, 5098,
2098  5098, 5099, 5099, 5099, 5099, 5101, 5103, 5112, 5118, 5118,
2099  5121, 5127, 5133, 5135, 5135, 5141, 5151, 5161, 5161, 5163,
2100  5165, 5167, 5170, 5181, 5188, 5188, 5190, 5192, 5194, 5200,
2101  5210, 5217, 5217, 5219, 5221, 5223, 5226, 5228, 5237, 5243,
2102  5243, 5246, 5252, 5258, 5260, 5260, 5262, 5272, 5279, 5279,
2103  5281, 5283, 5285, 5287, 5289, 5298, 5304, 5304, 5307, 5313,
2104  5319, 5321, 5321, 5324, 5329, 5340, 5355, 5355, 5357, 5359,
2105  5361, 5363, 5363, 5365, 5372, 5379, 5392, 5392, 5395, 5396,
2106  5398, 5398, 5400, 5402, 5404, 5404, 5407, 5409, 5417, 5417,
2107  5422, 5429, 5431, 5440, 5446, 5446, 5449, 5455, 5461, 5463,
2108  5463, 5465, 5466, 5468, 5483, 5483, 5485, 5487, 5489, 5489,
2109  5491, 5493, 5508, 5508, 5510, 5512, 5522, 5524, 5533, 5539,
2110  5539, 5542, 5548, 5554, 5556, 5556, 5558, 5568, 5575, 5575,
2111  5577, 5579, 5581, 5584, 5586, 5595, 5601, 5601, 5604, 5610,
2112  5616, 5618, 5618, 5621, 5626, 5637, 5652, 5652, 5654, 5656,
2113  5658, 5658, 5660, 5668, 5680, 5680, 5683, 5684, 5685, 5703,
2114  5736, 5739, 5757, 5757, 5768, 5775, 5785, 5793, 5799, 5801,
2115  5815, 5827, 5833, 5839, 5839, 5841, 5843, 5845, 5847, 5857,
2116  5863, 5869, 5869, 5871, 5873, 5875, 5877, 5877, 5882, 5887,
2117  5899, 5901, 5901, 5904, 5905, 5906, 5914, 5921, 5921, 5923,
2118  5925, 5931, 5945, 5956, 5967, 5989, 6000, 6011, 6022, 6066,
2119  6090, 6112, 6123, 6134, 6145, 6156, 6167, 6180, 6191, 6205,
2120  6220, 6235, 6247, 6259, 6277, 6295, 6308, 6321, 6331, 6359,
2121  6368, 6379, 6389, 6401, 6415, 6415, 6417, 6427, 6443, 6443,
2122  6445, 6452, 6461, 6461, 6463, 6470, 6479, 6479, 6481, 6488,
2123  6497, 6497, 6499, 6506, 6571, 6571, 6573, 6580, 6589, 6589,
2124  6591, 6598, 6607, 6607, 6609, 6616, 6625, 6625, 6627, 6636,
2125  6650, 6650, 6652, 6659, 6668, 6668, 6670, 6677, 6686, 6686,
2126  6688, 6695, 6704, 6704, 6706, 6713, 6722, 6722, 6724, 6731,
2127  6740, 6740, 6744, 6752, 6761, 6761, 6763, 6770, 6779, 6779,
2128  6781, 6788, 6917, 6918, 6919, 6920, 6921, 6922, 6923, 6924,
2129  6925, 6926, 6927, 6928, 6929, 6930, 6931, 6932, 6933, 6934,
2130  6935, 6936, 6937, 6938, 6939, 6940, 6942, 6943, 6944, 6948,
2131  6948, 6951, 6952, 6954, 6954, 6957, 6958, 6962, 6962, 6967,
2132  6967, 6972, 6972, 6977, 6977, 6982, 6982, 6987, 6987, 6992,
2133  6992, 6997, 6997, 7002, 7002, 7007, 7007, 7012, 7012, 7017,
2134  7017, 7022, 7024, 7030, 7037, 7037, 7043, 7043, 7055, 7055,
2135  7060, 7060, 7065, 7065, 7075, 7082, 7088, 7089, 7091, 7092,
2136  7095, 7099, 7103, 7107, 7106, 7125, 7124, 7131, 7132, 7134,
2137  7133, 7140, 7141, 7144, 7150, 7158, 7165, 7183, 7183, 7194,
2138  7194, 7197, 7197, 7211, 7212, 7215, 7215, 7228, 7229, 7232,
2139  7232, 7245, 7246, 7249, 7249, 7259, 7260, 7266, 7267, 7268,
2140  7269, 7270, 7271, 7272, 7273, 7274, 7275, 7276, 7277, 7278,
2141  7279, 7280, 7281, 7282, 7283, 7284, 7287, 7292, 7299, 7300,
2142  7302, 7310, 7315, 7322, 7323, 7325, 7332, 7337, 7344, 7345,
2143  7347, 7354, 7359, 7366, 7367, 7369, 7376, 7378, 7384, 7386,
2144  7388, 7394, 7396, 7398, 7404, 7406, 7408, 7414, 7416, 7418,
2145  7424, 7424, 7429, 7431, 7433, 7439, 7439, 7444, 7446, 7455,
2146  7457, 7462, 7462, 7464, 7466, 7472, 7475, 7477, 7483, 7486,
2147  7488, 7494, 7497, 7499, 7505, 7509, 7508, 7520, 7520, 7527,
2148  7529, 7535, 7537, 7539, 7545, 7548, 7550, 7556
2149 };
2150 #endif
2151 
2152 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
2153 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
2154  First, the terminals, then, starting at YYNTOKENS, nonterminals. */
2155 static const char *const yytname[] =
2156 {
2157  "$end", "error", "$undefined", "ATTRIBUTETEXT", "ELEMENTTEXT",
2158  "ITEMTEXT", "INTEGER", "DOUBLE", "QUOTE", "TWOQUOTES", "GREATERTHAN",
2159  "ENDOFELEMENT", "OSRLSTART", "OSRLSTARTEMPTY", "OSRLATTRIBUTETEXT",
2160  "OSRLEND", "WEIGHTEDOBJECTIVESATT", "EMPTYWEIGHTEDOBJECTIVESATT",
2161  "TARGETOBJECTIVENAMEATT", "EMPTYTARGETOBJECTIVENAMEATT",
2162  "NUMBEROFOTHERCONSTRAINTRESULTSATT", "NUMBEROFOTHEROBJECTIVERESULTSATT",
2163  "NUMBEROFOTHERRESULTSATT", "NUMBEROFOTHERSOLUTIONRESULTSATT",
2164  "NUMBEROFOTHERVARIABLERESULTSATT", "NUMBEROFSOLUTIONSATT",
2165  "NUMBEROFOTHERMATRIXOBJECTIVERESULTSATT",
2166  "NUMBEROFOTHERMATRIXCONSTRAINTRESULTSATT",
2167  "NUMBEROFOTHERMATRIXPROGRAMMINGRESULTSATT",
2168  "NUMBEROFOTHERMATRIXVARIABLERESULTSATT", "NUMBEROFSOLVEROUTPUTSATT",
2169  "NUMBEROFSUBSTATUSESATT", "NUMBEROFTIMESATT", "TARGETOBJECTIVEIDXATT",
2170  "ACTUALSTARTTIMESTART", "ACTUALSTARTTIMEEND", "AVAILABLECPUNUMBERSTART",
2171  "AVAILABLECPUNUMBEREND", "AVAILABLECPUSPEEDSTART",
2172  "AVAILABLECPUSPEEDEND", "AVAILABLEDISKSPACESTART",
2173  "AVAILABLEDISKSPACEEND", "AVAILABLEMEMORYSTART", "AVAILABLEMEMORYEND",
2174  "BASISSTATUSSTART", "BASISSTATUSEND", "CURRENTJOBCOUNTSTART",
2175  "CURRENTJOBCOUNTEND", "CURRENTSTATESTART", "CURRENTSTATEEND",
2176  "DUALVALUESSTART", "DUALVALUESEND", "ENDTIMESTART", "ENDTIMEEND",
2177  "IDXSTART", "IDXEND", "GENERALSTATUSSTART", "GENERALSTATUSEND",
2178  "GENERALSUBSTATUSSTART", "GENERALSUBSTATUSEND", "MESSAGESTART",
2179  "MESSAGEEND", "OPTIMIZATIONSOLUTIONSTATUSSTART",
2180  "OPTIMIZATIONSOLUTIONSTATUSEND", "OPTIMIZATIONSOLUTIONSUBSTATUSSTART",
2181  "OPTIMIZATIONSOLUTIONSUBSTATUSEND", "OTHERRESULTSSTART",
2182  "OTHERRESULTSEND", "OTHERSOLUTIONRESULTSTART", "OTHERSOLUTIONRESULTEND",
2183  "OTHERSOLUTIONRESULTSSTART", "OTHERSOLUTIONRESULTSEND",
2184  "OTHERSOLVEROUTPUTSTART", "OTHERSOLVEROUTPUTEND",
2185  "SCHEDULEDSTARTTIMESTART", "SCHEDULEDSTARTTIMEEND",
2186  "SERVICEUTILIZATIONSTART", "SERVICEUTILIZATIONEND", "SOLUTIONSTART",
2187  "SOLUTIONEND", "SOLVERINVOKEDSTART", "SOLVERINVOKEDEND",
2188  "SOLVEROUTPUTSTART", "SOLVEROUTPUTEND", "STATUSSTART", "STATUSEND",
2189  "SUBMITTIMESTART", "SUBMITTIMEEND", "SUBSTATUSSTART", "SUBSTATUSEND",
2190  "SYSTEMINFORMATIONSTART", "SYSTEMINFORMATIONEND", "TIMESTART", "TIMEEND",
2191  "TIMESERVICESTARTEDSTART", "TIMESERVICESTARTEDEND", "TIMESTAMPSTART",
2192  "TIMESTAMPEND", "TIMINGINFORMATIONSTART", "TIMINGINFORMATIONEND",
2193  "TOTALJOBSSOFARSTART", "TOTALJOBSSOFAREND", "USEDCPUNUMBERSTART",
2194  "USEDCPUNUMBEREND", "USEDCPUSPEEDSTART", "USEDCPUSPEEDEND",
2195  "USEDDISKSPACESTART", "USEDDISKSPACEEND", "USEDMEMORYSTART",
2196  "USEDMEMORYEND", "VALUESSTRINGSTART", "VALUESSTRINGEND",
2197  "OTHERMATRIXVARIABLERESULTSTART", "OTHERMATRIXVARIABLERESULTEND",
2198  "OTHERMATRIXOBJECTIVERESULTSTART", "OTHERMATRIXOBJECTIVERESULTEND",
2199  "OTHERMATRIXCONSTRAINTRESULTSTART", "OTHERMATRIXCONSTRAINTRESULTEND",
2200  "OTHERMATRIXPROGRAMMINGRESULTSTART", "OTHERMATRIXPROGRAMMINGRESULTEND",
2201  "HEADERSTART", "HEADEREND", "FILENAMESTART", "FILENAMEEND",
2202  "FILENAMEEMPTY", "FILENAMESTARTANDEND", "FILESOURCESTART",
2203  "FILESOURCEEND", "FILESOURCEEMPTY", "FILESOURCESTARTANDEND",
2204  "FILEDESCRIPTIONSTART", "FILEDESCRIPTIONEND", "FILEDESCRIPTIONEMPTY",
2205  "FILEDESCRIPTIONSTARTANDEND", "FILECREATORSTART", "FILECREATOREND",
2206  "FILECREATOREMPTY", "FILECREATORSTARTANDEND", "FILELICENCESTART",
2207  "FILELICENCEEND", "FILELICENCEEMPTY", "FILELICENCESTARTANDEND",
2208  "INDEXESSTART", "INDEXESEND", "VALUESSTART", "VALUESEND",
2209  "NONZEROSSTART", "NONZEROSEND", "ELSTART", "ELEND", "ENUMERATIONSTART",
2210  "ENUMERATIONEND", "ITEMEMPTY", "ITEMSTART", "ITEMEND", "ITEMSTARTANDEND",
2211  "BASE64START", "BASE64END", "NUMBEROFELATT", "NUMBEROFENUMERATIONSATT",
2212  "NUMBEROFITEMSATT", "EMPTYCATEGORYATT", "CATEGORYATT",
2213  "EMPTYDESCRIPTIONATT", "DESCRIPTIONATT", "EMPTYSOLVERATT", "SOLVERATT",
2214  "EMPTYNAMEATT", "NAMEATT", "EMPTYTYPEATT", "TYPEATT", "EMPTYENUMTYPEATT",
2215  "ENUMTYPEATT", "EMPTYSHAPEATT", "SHAPEATT", "EMPTYUNITATT", "UNITATT",
2216  "EMPTYVALUEATT", "VALUEATT", "EMPTYVALUETYPEATT", "VALUETYPEATT",
2217  "EMPTYCONTYPEATT", "CONTYPEATT", "EMPTYOBJTYPEATT", "OBJTYPEATT",
2218  "EMPTYVARTYPEATT", "VARTYPEATT", "EMPTYMATRIXCONTYPEATT",
2219  "MATRIXCONTYPEATT", "EMPTYMATRIXOBJTYPEATT", "MATRIXOBJTYPEATT",
2220  "EMPTYMATRIXVARTYPEATT", "MATRIXVARTYPEATT", "EMPTYMATRIXTYPEATT",
2221  "MATRIXTYPEATT", "EMPTYSYMMETRYATT", "SYMMETRYATT", "EMPTYROWMAJORATT",
2222  "ROWMAJORATT", "EMPTYBASETRANSPOSEATT", "BASETRANSPOSEATT",
2223  "NUMBEROFBLOCKSATT", "NUMBEROFCOLUMNSATT", "NUMBEROFROWSATT",
2224  "NUMBEROFMATRICESATT", "NUMBEROFVALUESATT", "NUMBEROFCONSTRAINTSATT",
2225  "NUMBEROFCONATT", "NUMBEROFCONIDXATT", "NUMBEROFOBJECTIVESATT",
2226  "NUMBEROFOBJATT", "NUMBEROFOBJIDXATT", "NUMBEROFVARIABLESATT",
2227  "NUMBEROFVARATT", "NUMBEROFVARIDXATT", "NUMBEROFMATRIXCONATT",
2228  "NUMBEROFMATRIXOBJATT", "NUMBEROFMATRIXVARATT", "BASEMATRIXIDXATT",
2229  "TARGETMATRIXFIRSTROWATT", "TARGETMATRIXFIRSTCOLATT",
2230  "BASEMATRIXSTARTROWATT", "BASEMATRIXSTARTCOLATT", "BASEMATRIXENDROWATT",
2231  "BASEMATRIXENDCOLATT", "SCALARMULTIPLIERATT", "BLOCKROWIDXATT",
2232  "BLOCKCOLIDXATT", "MATRIXVARIDXATT", "MATRIXOBJIDXATT",
2233  "MATRIXCONIDXATT", "IDXATT", "INCRATT", "MULTATT", "SIZEOFATT",
2234  "COEFATT", "CONSTANTATT", "MATRICESSTART", "MATRICESEND", "MATRIXSTART",
2235  "MATRIXEND", "BASEMATRIXEND", "BASEMATRIXSTART", "BLOCKSSTART",
2236  "BLOCKSEND", "BLOCKSTART", "BLOCKEND", "COLOFFSETSTART", "COLOFFSETEND",
2237  "ROWOFFSETSTART", "ROWOFFSETEND", "ELEMENTSSTART", "ELEMENTSEND",
2238  "CONSTANTELEMENTSSTART", "CONSTANTELEMENTSEND",
2239  "VARREFERENCEELEMENTSSTART", "VARREFERENCEELEMENTSEND",
2240  "LINEARELEMENTSSTART", "LINEARELEMENTSEND", "GENERALELEMENTSSTART",
2241  "GENERALELEMENTSEND", "CONREFERENCEELEMENTSSTART",
2242  "CONREFERENCEELEMENTSEND", "OBJREFERENCEELEMENTSSTART",
2243  "OBJREFERENCEELEMENTSEND", "STRINGVALUEDELEMENTSSTART",
2244  "STRINGVALUEDELEMENTSEND", "STARTVECTORSTART", "STARTVECTOREND",
2245  "INDEXSTART", "INDEXEND", "VALUESTART", "VALUEEND", "VARIDXSTART",
2246  "VARIDXEND", "TRANSFORMATIONSTART", "TRANSFORMATIONEND",
2247  "MATRIXPROGRAMMINGSTART", "MATRIXPROGRAMMINGEND", "MATRIXVARIABLESSTART",
2248  "MATRIXVARIABLESEND", "MATRIXVARSTART", "MATRIXVAREND",
2249  "MATRIXOBJECTIVESSTART", "MATRIXOBJECTIVESEND", "MATRIXOBJSTART",
2250  "MATRIXOBJEND", "MATRIXCONSTRAINTSSTART", "MATRIXCONSTRAINTSEND",
2251  "MATRIXCONSTART", "MATRIXCONEND", "CONSTART", "CONEND",
2252  "CONSTRAINTSSTART", "CONSTRAINTSEND", "OBJSTART", "OBJEND",
2253  "OBJECTIVESSTART", "OBJECTIVESEND", "VARSTART", "VAREND",
2254  "VARIABLESSTART", "VARIABLESEND", "GENERALSTART", "GENERALEND",
2255  "SYSTEMSTART", "SYSTEMEND", "SERVICESTART", "SERVICEEND", "JOBSTART",
2256  "JOBEND", "OPTIMIZATIONSTART", "OPTIMIZATIONEND", "ATEQUALITYSTART",
2257  "ATEQUALITYEND", "ATLOWERSTART", "ATLOWEREND", "ATUPPERSTART",
2258  "ATUPPEREND", "BASICSTART", "BASICEND", "ISFREESTART", "ISFREEEND",
2259  "SUPERBASICSTART", "SUPERBASICEND", "UNKNOWNSTART", "UNKNOWNEND",
2260  "SERVICEURISTART", "SERVICEURIEND", "SERVICENAMESTART", "SERVICENAMEEND",
2261  "INSTANCENAMESTART", "INSTANCENAMEEND", "JOBIDSTART", "JOBIDEND",
2262  "OTHERSTART", "OTHEREND", "DUMMY", "NONLINEAREXPRESSIONSSTART",
2263  "NONLINEAREXPRESSIONSEND", "NUMBEROFNONLINEAREXPRESSIONS", "NLSTART",
2264  "NLEND", "MATRIXEXPRESSIONSSTART", "MATRIXEXPRESSIONSEND",
2265  "NUMBEROFEXPR", "EXPRSTART", "EXPREND", "NUMBEROFMATRIXTERMSATT",
2266  "MATRIXTERMSTART", "MATRIXTERMEND", "POWERSTART", "POWEREND",
2267  "PLUSSTART", "PLUSEND", "MINUSSTART", "MINUSEND", "DIVIDESTART",
2268  "DIVIDEEND", "LNSTART", "LNEND", "SQRTSTART", "SQRTEND", "SUMSTART",
2269  "SUMEND", "PRODUCTSTART", "PRODUCTEND", "EXPSTART", "EXPEND",
2270  "NEGATESTART", "NEGATEEND", "IFSTART", "IFEND", "SQUARESTART",
2271  "SQUAREEND", "COSSTART", "COSEND", "SINSTART", "SINEND", "VARIABLESTART",
2272  "VARIABLEEND", "ABSSTART", "ABSEND", "ERFSTART", "ERFEND", "MAXSTART",
2273  "MAXEND", "ALLDIFFSTART", "ALLDIFFEND", "MINSTART", "MINEND", "ESTART",
2274  "EEND", "PISTART", "PIEND", "TIMESSTART", "TIMESEND", "NUMBERSTART",
2275  "NUMBEREND", "MATRIXDETERMINANTSTART", "MATRIXDETERMINANTEND",
2276  "MATRIXTRACESTART", "MATRIXTRACEEND", "MATRIXTOSCALARSTART",
2277  "MATRIXTOSCALAREND", "MATRIXDIAGONALSTART", "MATRIXDIAGONALEND",
2278  "MATRIXDOTTIMESSTART", "MATRIXDOTTIMESEND", "MATRIXLOWERTRIANGLESTART",
2279  "MATRIXLOWERTRIANGLEEND", "MATRIXUPPERTRIANGLESTART",
2280  "MATRIXUPPERTRIANGLEEND", "MATRIXMERGESTART", "MATRIXMERGEEND",
2281  "MATRIXMINUSSTART", "MATRIXMINUSEND", "MATRIXNEGATESTART",
2282  "MATRIXNEGATEEND", "MATRIXPLUSSTART", "MATRIXPLUSEND",
2283  "MATRIXTIMESSTART", "MATRIXTIMESEND", "MATRIXPRODUCTSTART",
2284  "MATRIXPRODUCTEND", "MATRIXSCALARTIMESSTART", "MATRIXSCALARTIMESEND",
2285  "MATRIXSUBMATRIXATSTART", "MATRIXSUBMATRIXATEND", "MATRIXTRANSPOSESTART",
2286  "MATRIXTRANSPOSEEND", "MATRIXREFERENCESTART", "MATRIXREFERENCEEND",
2287  "IDENTITYMATRIXSTART", "IDENTITYMATRIXEND", "MATRIXINVERSESTART",
2288  "MATRIXINVERSEEND", "EMPTYINCLUDEDIAGONALATT", "INCLUDEDIAGONALATT",
2289  "EMPTYIDATT", "IDATT", "' '", "'\\t'", "'\\r'", "'\\n'", "$accept",
2290  "osrldoc", "osrlStartEmpty", "osrlStart", "osrlAttributes",
2291  "osrlContent", "osrlEmpty", "osrlLaden", "osrlEnd", "osrlEnding",
2292  "osrlBody", "headerElement", "generalElement", "generalElementStart",
2293  "generalElementContent", "generalElementEmpty", "generalElementLaden",
2294  "generalElementBody", "generalElementList", "generalChild",
2295  "generalStatus", "generalStatusStart", "generalStatusAttributes",
2296  "generalStatusAttList", "generalStatusATT", "generalStatusContent",
2297  "generalStatusEmpty", "generalStatusLaden", "generalStatusBody",
2298  "generalSubstatusArray", "generalSubstatus", "generalSubstatusStart",
2299  "generalSubstatusAttributes", "generalSubstatusAttList",
2300  "generalSubstatusATT", "generalSubstatusEnd", "generalMessage",
2301  "generalMessageStart", "generalMessageContent", "generalMessageEmpty",
2302  "generalMessageLaden", "generalMessageBody", "serviceURI",
2303  "serviceURIStart", "serviceURIContent", "serviceURIEmpty",
2304  "serviceURILaden", "serviceURIBody", "serviceName", "serviceNameStart",
2305  "serviceNameContent", "serviceNameEmpty", "serviceNameLaden",
2306  "serviceNameBody", "instanceName", "instanceNameStart",
2307  "instanceNameContent", "instanceNameEmpty", "instanceNameLaden",
2308  "instanceNameBody", "jobID", "jobIDStart", "jobIDContent", "jobIDEmpty",
2309  "jobIDLaden", "jobIDBody", "solverInvoked", "solverInvokedStart",
2310  "solverInvokedContent", "solverInvokedEmpty", "solverInvokedLaden",
2311  "solverInvokedBody", "timeStamp", "timeStampStart", "timeStampContent",
2312  "timeStampEmpty", "timeStampLaden", "timeStampBody",
2313  "otherGeneralResults", "otherGeneralResultsStart",
2314  "otherGeneralResultsAttributes", "otherGeneralResultsContent",
2315  "otherGeneralResultsEmpty", "otherGeneralResultsLaden",
2316  "otherGeneralResultsBody", "otherGeneralResultArray",
2317  "otherGeneralResult", "otherGeneralResultStart",
2318  "otherGeneralResultAttributes", "otherGeneralResultAttList",
2319  "otherGeneralResultAtt", "otherGeneralResultEnd", "systemElement",
2320  "systemElementStart", "systemElementContent", "systemElementEmpty",
2321  "systemElementLaden", "systemElementBody", "systemElementList",
2322  "systemChild", "systemInformation", "systemInformationStart",
2323  "systemInformationContent", "systemInformationEmpty",
2324  "systemInformationLaden", "systemInformationBody", "availableDiskSpace",
2325  "availableDiskSpaceStart", "availableDiskSpaceAttributes",
2326  "availableDiskSpaceAttList", "availableDiskSpaceAtt",
2327  "availableDiskSpaceContent", "availableDiskSpaceValue",
2328  "availableMemory", "availableMemoryStart", "availableMemoryAttributes",
2329  "availableMemoryAttList", "availableMemoryAtt", "availableMemoryContent",
2330  "availableMemoryValue", "availableCPUSpeed", "availableCPUSpeedStart",
2331  "availableCPUSpeedAttributes", "availableCPUSpeedAttList",
2332  "availableCPUSpeedAtt", "availableCPUSpeedContent",
2333  "availableCPUSpeedValue", "availableCPUNumber",
2334  "availableCPUNumberStart", "availableCPUNumberAttributes",
2335  "availableCPUNumberContent", "availableCPUNumberValue",
2336  "otherSystemResults", "otherSystemResultsStart",
2337  "otherSystemResultsAttributes", "otherSystemResultsContent",
2338  "otherSystemResultsEmpty", "otherSystemResultsLaden",
2339  "otherSystemResultsBody", "otherSystemResultArray", "otherSystemResult",
2340  "otherSystemResultStart", "otherSystemResultAttributes",
2341  "otherSystemResultAttList", "otherSystemResultAtt",
2342  "otherSystemResultEnd", "serviceElement", "serviceElementStart",
2343  "serviceElementContent", "serviceElementEmpty", "serviceElementLaden",
2344  "serviceElementBody", "serviceElementList", "serviceChild",
2345  "currentState", "currentStateStart", "currentStateContent",
2346  "currentStateEmpty", "currentStateLaden", "currentStateBody",
2347  "currentJobCount", "currentJobCountStart", "currentJobCountContent",
2348  "currentJobCountEmpty", "currentJobCountLaden", "currentJobCountBody",
2349  "totalJobsSoFar", "totalJobsSoFarStart", "totalJobsSoFarContent",
2350  "totalJobsSoFarEmpty", "totalJobsSoFarLaden", "totalJobsSoFarBody",
2351  "timeServiceStarted", "timeServiceStartedStart",
2352  "timeServiceStartedContent", "timeServiceStartedEmpty",
2353  "timeServiceStartedLaden", "timeServiceStartedBody",
2354  "serviceUtilization", "serviceUtilizationStart",
2355  "serviceUtilizationContent", "serviceUtilizationEmpty",
2356  "serviceUtilizationLaden", "serviceUtilizationBody",
2357  "otherServiceResults", "otherServiceResultsStart",
2358  "otherServiceResultsAttributes", "otherServiceResultsContent",
2359  "otherServiceResultsEmpty", "otherServiceResultsLaden",
2360  "otherServiceResultsBody", "otherServiceResultArray",
2361  "otherServiceResult", "otherServiceResultStart",
2362  "otherServiceResultAttributes", "otherServiceResultAttList",
2363  "otherServiceResultAtt", "otherServiceResultEnd", "jobElement",
2364  "jobElementStart", "jobElementContent", "jobElementEmpty",
2365  "jobElementLaden", "jobElementBody", "jobElementList", "jobChild",
2366  "jobStatus", "jobStatusStart", "jobStatusContent", "jobStatusEmpty",
2367  "jobStatusLaden", "jobStatusBody", "submitTime", "submitTimeStart",
2368  "submitTimeContent", "submitTimeEmpty", "submitTimeLaden",
2369  "submitTimeBody", "scheduledStartTime", "scheduledStartTimeStart",
2370  "scheduledStartTimeContent", "scheduledStartTimeEmpty",
2371  "scheduledStartTimeLaden", "scheduledStartTimeBody", "actualStartTime",
2372  "actualStartTimeStart", "actualStartTimeContent", "actualStartTimeEmpty",
2373  "actualStartTimeLaden", "actualStartTimeBody", "endTime", "endTimeStart",
2374  "endTimeContent", "endTimeEmpty", "endTimeLaden", "endTimeBody",
2375  "timingInformation", "timingInformationStart",
2376  "timingInformationAttributes", "timingInformationContent",
2377  "timingInformationEmpty", "timingInformationLaden",
2378  "timingInformationBody", "timeArray", "time", "timeStart",
2379  "timeAttributes", "timeAtt", "timeContent", "timeEmpty", "timeLaden",
2380  "timeBody", "timeValue", "usedDiskSpace", "usedDiskSpaceStart",
2381  "usedDiskSpaceAttributes", "usedDiskSpaceAttList", "usedDiskSpaceAtt",
2382  "usedDiskSpaceContent", "usedDiskSpaceValue", "usedMemory",
2383  "usedMemoryStart", "usedMemoryAttributes", "usedMemoryAttList",
2384  "usedMemoryAtt", "usedMemoryContent", "usedMemoryValue", "usedCPUSpeed",
2385  "usedCPUSpeedStart", "usedCPUSpeedAttributes", "usedCPUSpeedAttList",
2386  "usedCPUSpeedAtt", "usedCPUSpeedContent", "usedCPUSpeedValue",
2387  "usedCPUNumber", "usedCPUNumberStart", "usedCPUNumberAttributes",
2388  "usedCPUNumberContent", "usedCPUNumberValue", "otherJobResults",
2389  "otherJobResultsStart", "otherJobResultsAttributes",
2390  "otherJobResultsContent", "otherJobResultsEmpty", "otherJobResultsLaden",
2391  "otherJobResultsBody", "otherJobResultArray", "otherJobResult",
2392  "otherJobResultStart", "otherJobResultAttributes",
2393  "otherJobResultAttList", "otherJobResultAtt", "otherJobResultEnd",
2394  "optimizationElement", "optimizationStart", "optimizationAttributes",
2395  "optimizationAttList", "optimizationATT", "optimizationContent",
2396  "optimizationEmpty", "optimizationLaden", "optimizationBody",
2397  "solutionArray", "solution", "solutionStart", "solutionAttributes",
2398  "solutionAttList", "solutionATT", "targetObjectiveIdxATT",
2399  "targetObjectiveNameATT", "weightedObjectivesATT", "solutionContent",
2400  "solutionStatus", "solutionStatusStart", "solutionStatusAttributes",
2401  "solutionStatusAttList", "solutionStatusATT", "solutionStatusContent",
2402  "solutionStatusEmpty", "solutionStatusLaden", "solutionStatusBody",
2403  "solutionSubstatusArray", "solutionSubstatus", "solutionSubstatusStart",
2404  "solutionSubstatusAttributes", "solutionSubstatusAttList",
2405  "solutionSubstatusATT", "solutionSubstatusEnd", "solutionMessage",
2406  "solutionMessageStart", "solutionMessageContent", "solutionMessageEmpty",
2407  "solutionMessageLaden", "solutionMessageBody", "variables",
2408  "variablesStart", "numberOfOtherVariableResults", "variablesContent",
2409  "variablesEmpty", "variablesLaden", "variablesBody", "variableValues",
2410  "variableValuesStart", "numberOfVarATT", "variableValuesContent",
2411  "variableValuesEmpty", "variableValuesLaden", "variableValuesBody",
2412  "varValueArray", "varValue", "varValueStart", "varValueAttList",
2413  "varValueAtt", "varValueContent", "variableValuesString",
2414  "variableValuesStringStart", "numberOfVarStringATT",
2415  "variableValuesStringContent", "variableValuesStringEmpty",
2416  "variableValuesStringLaden", "variableValuesStringBody",
2417  "varValueStringArray", "varValueString", "varValueStringStart",
2418  "varValueStringAttList", "varValueStringAtt", "varValueStringContent",
2419  "varValueStringEmpty", "varValueStringLaden", "varValueStringBody",
2420  "variableBasisStatus", "variableBasisStatusStart",
2421  "variableBasisStatusContent", "variableBasisStatusEmpty",
2422  "variableBasisStatusLaden", "variableBasisStatusBody", "variablesBasic",
2423  "variablesAtLower", "variablesAtUpper", "variablesAtEquality",
2424  "variablesIsFree", "variablesSuperbasic", "variablesUnknown",
2425  "otherVariableResultsArray", "otherVariableResult",
2426  "otherVariableResultStart", "otherVariableResultAttributes",
2427  "otherVariableResultAttList", "otherVariableResultATT",
2428  "otherVariableResultContent", "otherVariableResultEmpty",
2429  "otherVariableResultLaden", "otherVariableResultBody", "otherVarList",
2430  "otherVar", "otherVarStart", "otherVarAttList", "otherVarAtt",
2431  "otherVarContent", "otherVarEmpty", "otherVarLaden", "otherVarBody",
2432  "otherVarEnumerationList", "otherVarEnumeration",
2433  "otherVarEnumerationStart", "otherVarEnumerationAttributes",
2434  "otherVarEnumerationAttList", "otherVarEnumerationATT",
2435  "otherVarEnumerationContent", "otherVarEnumerationEmpty",
2436  "otherVarEnumerationLaden", "otherVarEnumerationBody", "objectives",
2437  "objectivesStart", "numberOfOtherObjectiveResults", "objectivesContent",
2438  "objectivesEmpty", "objectivesLaden", "objectivesBody",
2439  "objectiveValues", "objectiveValuesStart", "numberOfObjATT",
2440  "objectiveValuesContent", "objectiveValuesEmpty", "objectiveValuesLaden",
2441  "objectiveValuesBody", "objValueArray", "objValue", "objValueStart",
2442  "objValueAttList", "objValueAtt", "objValueContent",
2443  "objectiveBasisStatus", "objectiveBasisStatusStart",
2444  "objectiveBasisStatusContent", "objectiveBasisStatusEmpty",
2445  "objectiveBasisStatusLaden", "objectiveBasisStatusBody",
2446  "objectivesBasic", "objectivesAtLower", "objectivesAtUpper",
2447  "objectivesAtEquality", "objectivesIsFree", "objectivesSuperbasic",
2448  "objectivesUnknown", "otherObjectiveResultsArray",
2449  "otherObjectiveResult", "otherObjectiveResultStart",
2450  "otherObjectiveResultAttributes", "otherObjectiveResultAttList",
2451  "otherObjectiveResultATT", "otherObjectiveResultContent",
2452  "otherObjectiveResultEmpty", "otherObjectiveResultLaden",
2453  "otherObjectiveResultBody", "otherObjList", "otherObj", "otherObjStart",
2454  "otherObjAttList", "otherObjAtt", "otherObjContent", "otherObjEmpty",
2455  "otherObjLaden", "otherObjBody", "otherObjEnumerationList",
2456  "otherObjEnumeration", "otherObjEnumerationStart",
2457  "otherObjEnumerationAttributes", "otherObjEnumerationAttList",
2458  "otherObjEnumerationATT", "otherObjEnumerationContent",
2459  "otherObjEnumerationEmpty", "otherObjEnumerationLaden",
2460  "otherObjEnumerationBody", "constraints", "constraintsStart",
2461  "numberOfOtherConstraintResults", "constraintsContent",
2462  "constraintsEmpty", "constraintsLaden", "constraintsBody", "dualValues",
2463  "dualValuesStart", "numberOfConAttribute", "dualValuesContent",
2464  "dualValuesEmpty", "dualValuesLaden", "dualValuesBody", "dualValueArray",
2465  "dualValue", "dualValueStart", "dualValueAttList", "dualValueAtt",
2466  "dualValueContent", "slackBasisStatus", "slackBasisStatusStart",
2467  "slackBasisStatusContent", "slackBasisStatusEmpty",
2468  "slackBasisStatusLaden", "slackBasisStatusBody", "slacksBasic",
2469  "slacksAtLower", "slacksAtUpper", "slacksAtEquality", "slacksIsFree",
2470  "slacksSuperbasic", "slacksUnknown", "otherConstraintResultsArray",
2471  "otherConstraintResult", "otherConstraintResultStart",
2472  "otherConstraintResultAttributes", "otherConstraintResultAttList",
2473  "otherConstraintResultATT", "otherConstraintResultContent",
2474  "otherConstraintResultEmpty", "otherConstraintResultLaden",
2475  "otherConstraintResultBody", "otherConList", "otherCon", "otherConStart",
2476  "otherConAttList", "otherConAtt", "otherConContent", "otherConEmpty",
2477  "otherConLaden", "otherConBody", "otherConEnumerationList",
2478  "otherConEnumeration", "otherConEnumerationStart",
2479  "otherConEnumerationAttributes", "otherConEnumerationAttList",
2480  "otherConEnumerationATT", "otherConEnumerationContent",
2481  "otherConEnumerationEmpty", "otherConEnumerationLaden",
2482  "otherConEnumerationBody", "matrixProgramming", "matrixProgrammingStart",
2483  "matrixProgrammingAttributes", "matrixProgrammingContent",
2484  "matrixProgrammingEmpty", "matrixProgrammingLaden", "matrixVariables",
2485  "matrixVariablesStart", "matrixVariablesAttributes",
2486  "matrixVariablesContent", "matrixVariablesEmpty", "matrixVariablesLaden",
2487  "matrixVariablesEnd", "matrixVariableValues",
2488  "matrixVariableValuesStart", "matrixVariableValuesAttributes",
2489  "matrixVariableValuesContent", "matrixVariableValuesEmpty",
2490  "matrixVariableValuesLaden", "matrixVariableValuesEnd", "matrixVarList",
2491  "otherMatrixVariableResults", "otherMatrixVariableResult",
2492  "otherMatrixVariableResultStart", "otherMatrixVariableResultAttributes",
2493  "otherMatrixVariableResultAttList", "otherMatrixVariableResultATT",
2494  "otherMatrixVariableResultContent", "otherMatrixVariableResultEmpty",
2495  "otherMatrixVariableResultLaden", "otherMatrixVariableResultBody",
2496  "otherMatrixVarList", "otherMatrixVarEnumerationList",
2497  "otherMatrixVarEnumeration", "otherMatrixVarEnumerationStart",
2498  "otherMatrixVarEnumerationAttributes",
2499  "otherMatrixVarEnumerationAttList", "otherMatrixVarEnumerationATT",
2500  "otherMatrixVarEnumerationContent", "otherMatrixVarEnumerationEmpty",
2501  "otherMatrixVarEnumerationLaden", "otherMatrixVarEnumerationBody",
2502  "otherMatrixProgrammingResults", "otherMatrixProgrammingResult",
2503  "otherSolutionResults", "otherSolutionResultsStart",
2504  "numberOfOtherSolutionResults", "otherSolutionResultsContent",
2505  "otherSolutionResultsEmpty", "otherSolutionResultsLaden",
2506  "otherSolutionResultsBody", "otherSolutionResultArray",
2507  "otherSolutionResult", "otherSolutionResultStart",
2508  "otherSolutionResultAttributes", "otherSolutionResultAttList",
2509  "otherSolutionResultAtt", "otherSolutionResultContent",
2510  "otherSolutionResultEmpty", "otherSolutionResultLaden",
2511  "otherSolutionResultBody", "otherSolutionResultItemArray",
2512  "otherSolutionResultItem", "otherSolutionResultItemContent",
2513  "otherSolutionResultItemEmpty", "otherSolutionResultItemLaden",
2514  "otherSolutionResultItemBody", "otherSolverOutput",
2515  "otherSolverOutputStart", "numberOfSolverOutputsATT",
2516  "otherSolverOutputContent", "otherSolverOutputEmpty",
2517  "otherSolverOutputLaden", "otherSolverOutputBody", "solverOutputArray",
2518  "solverOutput", "solverOutputStart", "solverOutputAttributes",
2519  "solverOutputAttList", "solverOutputAtt", "solverOutputContent",
2520  "solverOutputEmpty", "solverOutputLaden", "solverOutputBody",
2521  "solverOutputItemArray", "solverOutputItem", "solverOutputItemContent",
2522  "solverOutputItemEmpty", "solverOutputItemLaden", "solverOutputItemBody",
2523  "numberOfOtherConstraintResultsAttribute",
2524  "numberOfOtherMatrixProgrammingResultsATT",
2525  "numberOfOtherMatrixVariableResultsATT",
2526  "numberOfOtherObjectiveResultsAttribute",
2527  "numberOfOtherResultsAttribute", "numberOfOtherSolutionResultsAttribute",
2528  "numberOfOtherVariableResultsAttribute", "numberOfSolutionsAttribute",
2529  "numberOfSolverOutputsAttribute", "numberOfSubstatusesAttribute",
2530  "numberOfTimesAttribute", "aNumber", "ElementValue", "quote",
2531  "xmlWhiteSpace", "xmlWhiteSpaceChar", "osglFileHeader",
2532  "headerElementStart", "headerElementContent", "headerElementEmpty",
2533  "headerElementLaden", "headerElementBody", "headerElementList",
2534  "headerChild", "fileName", "fileNameContent", "fileNameEmpty",
2535  "fileNameLaden", "fileSource", "fileSourceContent", "fileSourceEmpty",
2536  "fileSourceLaden", "fileDescription", "fileDescriptionContent",
2537  "fileDescriptionEmpty", "fileDescriptionLaden", "fileCreator",
2538  "fileCreatorContent", "fileCreatorEmpty", "fileCreatorLaden",
2539  "fileLicence", "fileLicenceContent", "fileLicenceEmpty",
2540  "fileLicenceLaden", "osglIntArrayData", "osglIntVectorElArray",
2541  "osglIntVectorEl", "osglIntVectorElStart", "osglIntVectorElAttributes",
2542  "osglIntVectorElAttList", "osglIntVectorElAtt", "osglIntVectorElContent",
2543  "osglIntVectorBase64", "osglIntVectorBase64Content",
2544  "osglIntVectorBase64Empty", "osglIntVectorBase64Laden",
2545  "osglDblArrayData", "osglDblVectorElArray", "osglDblVectorEl",
2546  "osglDblVectorElStart", "osglDblVectorElAttributes",
2547  "osglDblVectorElContent", "osglDblVectorBase64",
2548  "osglDblVectorBase64Content", "osglDblVectorBase64Empty",
2549  "osglDblVectorBase64Laden", "osglBasisStatusBasic", "osglBasicStart",
2550  "osglBasicContent", "osglBasicEmpty", "osglBasicLaden", "osglBasicBody",
2551  "osglBasisStatusAtLower", "osglAtLowerStart", "osglAtLowerContent",
2552  "osglAtLowerEmpty", "osglAtLowerLaden", "osglAtLowerBody",
2553  "osglBasisStatusAtUpper", "osglAtUpperStart", "osglAtUpperContent",
2554  "osglAtUpperEmpty", "osglAtUpperLaden", "osglAtUpperBody",
2555  "osglBasisStatusAtEquality", "osglAtEqualityStart",
2556  "osglAtEqualityContent", "osglAtEqualityEmpty", "osglAtEqualityLaden",
2557  "osglAtEqualityBody", "osglBasisStatusIsFree", "osglIsFreeStart",
2558  "osglIsFreeContent", "osglIsFreeEmpty", "osglIsFreeLaden",
2559  "osglIsFreeBody", "osglBasisStatusSuperbasic", "osglSuperbasicStart",
2560  "osglSuperbasicContent", "osglSuperbasicEmpty", "osglSuperbasicLaden",
2561  "osglSuperbasicBody", "osglBasisStatusUnknown", "osglUnknownStart",
2562  "osglUnknownContent", "osglUnknownEmpty", "osglUnknownLaden",
2563  "osglUnknownBody", "osglBasisNumberOfElAttribute",
2564  "osglMatrixWithMatrixVarIdx", "matrixVarStart",
2565  "matrixWithMatrixVarIdxAttributes", "matrixWithMatrixVarIdxATTList",
2566  "matrixWithMatrixVarIdxATT", "matrixVarContent", "matrixVarEmpty",
2567  "matrixVarLaden", "matrixBody", "baseMatrix", "baseMatrixStart",
2568  "baseMatrixAttributes", "baseMatrixAttList", "baseMatrixAtt",
2569  "baseMatrixEnd", "matrixConstructorList", "matrixConstructor",
2570  "constantElements", "constantElementsStart",
2571  "constantElementsAttributes", "constantElementsAttList",
2572  "constantElementsAtt", "constantElementsContent",
2573  "constantElementsNonzeros", "matrixElementsStartVector",
2574  "matrixElementsStartVectorStart", "matrixElementsStartVectorContent",
2575  "matrixElementsStartVectorEmpty", "matrixElementsStartVectorLaden",
2576  "matrixElementsStartVectorBody", "matrixElementsIndexVector",
2577  "matrixElementsIndexStart", "matrixElementsIndexContent",
2578  "matrixElementsIndexEmpty", "matrixElementsIndexLaden",
2579  "matrixElementsIndexBody", "constantElementsValues",
2580  "constantElementsValueStart", "constantElementsValueContent",
2581  "constantElementsValueEmpty", "constantElementsValueLaden",
2582  "constantElementsValueBody", "varReferenceElements",
2583  "varReferenceElementsStart", "varReferenceElementsAttributes",
2584  "varReferenceElementsAttList", "varReferenceElementsAtt",
2585  "varReferenceElementsContent", "varReferenceElementsNonzeros",
2586  "varReferenceElementsValues", "varReferenceElementsValuesStart",
2587  "varReferenceElementsValuesContent", "varReferenceElementsValuesEmpty",
2588  "varReferenceElementsValuesLaden", "varReferenceElementsValuesBody",
2589  "linearElements", "linearElementsStart", "linearElementsAttributes",
2590  "linearElementsAttList", "linearElementsAtt", "linearElementsContent",
2591  "linearElementsNonzeros", "linearElementsValues",
2592  "linearElementsValuesStart", "linearElementsValuesContent",
2593  "linearElementsValuesEmpty", "linearElementsValuesLaden",
2594  "linearElementsValuesBody", "linearElementsValuesElList",
2595  "linearElementsValuesEl", "linearElementsValuesElStart",
2596  "linearElementsValuesElAttributes", "linearElementsValuesElAttList",
2597  "linearElementsValuesElAtt", "linearElementsValuesElContent",
2598  "linearElementsValuesElEmpty", "linearElementsValuesElLaden",
2599  "linearElementsValuesVarIdxList", "linearElementsValuesVarIdx",
2600  "linearElementsValuesVarIdxStart", "LinearElementsValuesVarIdxCoefATT",
2601  "linearElementsValuesVarIdxContent", "generalElements",
2602  "generalElementsStart", "generalElementsAttributes",
2603  "generalElementsAttList", "generalElementsAtt", "generalElementsContent",
2604  "generalElementsNonzeros", "generalElementsValues",
2605  "generalElementsValuesStart", "generalElementsValuesContent",
2606  "generalElementsValuesEmpty", "generalElementsValuesLaden",
2607  "generalElementsElList", "generalElementsEl", "generalElementsElStart",
2608  "generalElementsElContent", "generalElementsElEmpty",
2609  "generalElementsElLaden", "objReferenceElements",
2610  "objReferenceElementsStart", "objReferenceElementsAttributes",
2611  "objReferenceElementsAttList", "objReferenceElementsAtt",
2612  "objReferenceElementsContent", "objReferenceElementsNonzeros",
2613  "objReferenceElementsValues", "objReferenceElementsValuesStart",
2614  "objReferenceElementsValuesContent", "objReferenceElementsValuesEmpty",
2615  "objReferenceElementsValuesLaden", "objReferenceElementsValuesBody",
2616  "conReferenceElements", "conReferenceElementsStart",
2617  "conReferenceElementsAttributes", "conReferenceElementsAttList",
2618  "conReferenceElementsAtt", "conReferenceElementsContent",
2619  "conReferenceElementsNonzeros", "conReferenceElementsValues",
2620  "conReferenceElementsValuesStart", "conReferenceElementsValuesContent",
2621  "conReferenceElementsValuesEmpty", "conReferenceElementsValuesLaden",
2622  "conReferenceElementsElList", "conReferenceElementsEl",
2623  "conReferenceElementsElStart", "conReferenceElementsElAttributeList",
2624  "conReferenceElementsElAttribute", "conReferenceElementsElContent",
2625  "matrixTransformation", "matrixTransformationStart",
2626  "matrixTransformationShapeATT", "matrixTransformationEnd",
2627  "matrixBlocks", "matrixBlocksStart", "matrixBlocksAttributes",
2628  "matrixBlocksContent", "matrixBlocksEnd", "colOffsets", "colOffsetStart",
2629  "colOffsetNumberOfElAttribute", "colOffsetContent", "colOffsetEmpty",
2630  "colOffsetLaden", "colOffsetBody", "rowOffsets", "rowOffsetStart",
2631  "rowOffsetNumberOfElAttribute", "rowOffsetContent", "rowOffsetEmpty",
2632  "rowOffsetLaden", "rowOffsetBody", "blockList", "matrixBlock",
2633  "matrixBlockStart", "matrixBlockAttributes", "matrixBlockAttList",
2634  "matrixBlockAtt", "matrixBlockContent", "blockEmpty", "blockLaden",
2635  "blockBody", "osglNumberOfBlocksATT", "osglNumberOfColumnsATT",
2636  "osglNumberOfConATT", "osglNumberOfConstraintsATT", "osglNumberOfElATT",
2637  "osglNumberOfEnumerationsATT", "osglNumberOfItemsATT",
2638  "osglNumberOfMatrixVarATT", "osglNumberOfObjATT",
2639  "osglNumberOfObjectivesATT", "osglNumberOfRowsATT",
2640  "osglNumberOfValuesATT", "osglNumberOfVarATT", "osglNumberOfVarIdxATT",
2641  "osglNumberOfVariablesATT", "osglBase64SizeATT", "osglBaseMatrixIdxATT",
2642  "osglBaseMatrixStartRowATT", "osglBaseMatrixStartColATT",
2643  "osglBaseMatrixEndRowATT", "osglBaseMatrixEndColATT",
2644  "osglBlockRowIdxATT", "osglBlockColIdxATT", "osglCoefATT",
2645  "osglConstantATT", "osglIdxATT", "osglIncrATT", "osglMatrixVarIdxATT",
2646  "osglMultATT", "osglScalarMultiplierATT", "osglTargetMatrixFirstRowATT",
2647  "osglTargetMatrixFirstColATT", "osglBaseTransposeATT",
2648  "baseTransposeAttEmpty", "baseTransposeAttContent", "osglCategoryATT",
2649  "categoryAttEmpty", "categoryAttContent", "osglConTypeATT",
2650  "conTypeAttEmpty", "conTypeAttContent", "osglDescriptionATT",
2651  "descriptionAttEmpty", "descriptionAttContent", "osglEnumTypeATT",
2652  "enumTypeAttEmpty", "enumTypeAttContent", "osglMatrixVarTypeATT",
2653  "matrixVarTypeAttEmpty", "matrixVarTypeAttContent", "osglNameATT",
2654  "nameAttEmpty", "nameAttContent", "osglObjTypeATT", "objTypeAttEmpty",
2655  "objTypeAttContent", "osglRowMajorATT", "rowMajorAttEmpty",
2656  "rowMajorAttContent", "osglShapeATT", "shapeAttEmpty", "shape",
2657  "osglSolverATT", "solverAttEmpty", "solverAttContent", "osglSymmetryATT",
2658  "symmetryAttEmpty", "symmetryAttContent", "osglTypeATT", "typeAttEmpty",
2659  "typeAttContent", "osglUnitATT", "unitAttEmpty", "unitAttContent",
2660  "osglValueATT", "valueAttEmpty", "valueAttContent", "osglValueTypeATT",
2661  "valueTypeAttEmpty", "valueTypeAttContent", "osglVarTypeATT",
2662  "varTypeAttEmpty", "varTypeAttContent", "nlnode", "E", "$@1", "eend",
2663  "PI", "$@2", "piend", "times", "$@3", "plus", "$@4", "minus", "$@5",
2664  "negate", "$@6", "divide", "$@7", "power", "$@8", "ln", "$@9", "sqrt",
2665  "$@10", "square", "$@11", "cos", "$@12", "sin", "$@13", "exp", "$@14",
2666  "abs", "absStart", "absEnd", "erf", "$@15", "if", "$@16",
2667  "matrixDeterminant", "$@17", "matrixTrace", "$@18", "matrixToScalar",
2668  "$@19", "number", "numberStart", "numberEnd", "numberAttributeList",
2669  "numberAttribute", "numberidATT", "$@20", "variable", "$@21",
2670  "variableend", "$@22", "anotherVariableATT", "variableATT",
2671  "variablecoefATT", "variableidxATT", "sum", "$@23", "anothersumnlnode",
2672  "allDiff", "$@24", "anotherallDiffnlnode", "max", "$@25",
2673  "anothermaxnlnode", "min", "$@26", "anotherminnlnode", "product", "$@27",
2674  "anotherproductnlnode", "OSnLMNode", "matrixReference",
2675  "matrixReferenceStart", "matrixReferenceEnd", "matrixIdxATT",
2676  "matrixVarReference", "matrixVarReferenceStart", "matrixVarReferenceEnd",
2677  "matrixVarIdxATT", "matrixObjReference", "matrixObjReferenceStart",
2678  "matrixObjReferenceEnd", "matrixObjIdxATT", "matrixConReference",
2679  "matrixConReferenceStart", "matrixConReferenceEnd", "matrixConIdxATT",
2680  "matrixDiagonal", "matrixDiagonalStart", "matrixDiagonalContent",
2681  "matrixDotTimes", "matrixDotTimesStart", "matrixDotTimesContent",
2682  "identityMatrix", "identityMatrixStart", "identityMatrixContent",
2683  "matrixInverse", "matrixInverseStart", "matrixInverseContent",
2684  "matrixLowerTriangle", "matrixLowerTriangleStart",
2685  "matrixLowerTriangleAttribute", "matrixLowerTriangleContent",
2686  "matrixUpperTriangle", "matrixUpperTriangleStart",
2687  "matrixUpperTriangleAttribute", "matrixUpperTriangleContent",
2688  "includeDiagonalATT", "matrixMerge", "matrixMergeStart",
2689  "matrixMergeEnd", "matrixMinus", "matrixMinusStart",
2690  "matrixMinusContent", "matrixNegate", "matrixNegateStart",
2691  "matrixNegateContent", "matrixPlus", "matrixPlusStart",
2692  "matrixPlusContent", "matrixTimes", "matrixTimesStart",
2693  "matrixTimesContent", "matrixProduct", "$@28",
2694  "anothermatrixproductnode", "matrixScalarTimes",
2695  "matrixScalarTimesStart", "matrixScalarTimesContent",
2696  "matrixSubMatrixAt", "matrixSubMatrixAtStart",
2697  "matrixSubMatrixAtContent", "matrixTranspose", "matrixTransposeStart",
2698  "matrixTransposeContent", 0
2699 };
2700 #endif
2701 
2702 # ifdef YYPRINT
2703 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
2704  token YYLEX-NUM. */
2705 static const yytype_uint16 yytoknum[] =
2706 {
2707  0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2708  265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2709  275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2710  285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2711  295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2712  305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2713  315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2714  325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
2715  335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
2716  345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2717  355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
2718  365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
2719  375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
2720  385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
2721  395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
2722  405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
2723  415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
2724  425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
2725  435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
2726  445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
2727  455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
2728  465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
2729  475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
2730  485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
2731  495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
2732  505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
2733  515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
2734  525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
2735  535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
2736  545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
2737  555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
2738  565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
2739  575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
2740  585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
2741  595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
2742  605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
2743  615, 616, 617, 618, 619, 620, 621, 622, 623, 624,
2744  625, 626, 627, 628, 629, 630, 631, 632, 633, 634,
2745  635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
2746  645, 646, 647, 648, 649, 650, 651, 652, 653, 654,
2747  655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
2748  665, 666, 667, 668, 669, 670, 671, 672, 673, 674,
2749  675, 676, 677, 678, 679, 680, 681, 682, 683, 684,
2750  685, 686, 687, 688, 689, 690, 691, 692, 693, 694,
2751  695, 32, 9, 13, 10
2752 };
2753 # endif
2754 
2755 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2756 static const yytype_uint16 yyr1[] =
2757 {
2758  0, 445, 446, 446, 447, 448, 449, 449, 450, 450,
2759  451, 452, 453, 454, 454, 455, 456, 456, 457, 457,
2760  458, 459, 459, 460, 460, 461, 462, 463, 463, 464,
2761  464, 464, 464, 464, 464, 464, 464, 464, 465, 466,
2762  467, 468, 468, 469, 469, 469, 470, 470, 471, 471,
2763  472, 473, 474, 474, 475, 476, 477, 478, 478, 479,
2764  479, 480, 480, 481, 482, 483, 483, 484, 484, 485,
2765  486, 487, 488, 489, 489, 490, 490, 491, 492, 493,
2766  494, 495, 495, 496, 496, 497, 498, 499, 500, 501,
2767  501, 502, 502, 503, 504, 505, 506, 507, 507, 508,
2768  508, 509, 510, 511, 512, 513, 513, 514, 514, 515,
2769  516, 517, 518, 519, 519, 520, 520, 521, 522, 523,
2770  524, 525, 526, 526, 527, 527, 528, 529, 530, 530,
2771  531, 532, 533, 534, 534, 535, 535, 535, 536, 536,
2772  537, 537, 538, 539, 539, 540, 540, 541, 542, 543,
2773  543, 544, 544, 544, 544, 544, 544, 545, 546, 547,
2774  547, 548, 548, 549, 550, 551, 552, 553, 554, 554,
2775  555, 555, 556, 557, 558, 559, 560, 561, 561, 562,
2776  562, 563, 564, 565, 566, 567, 568, 568, 569, 569,
2777  570, 571, 572, 573, 574, 574, 575, 576, 577, 578,
2778  579, 580, 580, 581, 581, 582, 583, 584, 584, 585,
2779  586, 587, 588, 588, 589, 589, 589, 590, 590, 591,
2780  591, 592, 593, 593, 594, 594, 595, 596, 597, 597,
2781  598, 598, 598, 598, 598, 598, 599, 600, 601, 601,
2782  602, 602, 603, 604, 605, 606, 607, 607, 608, 608,
2783  609, 610, 611, 612, 613, 613, 614, 614, 615, 616,
2784  617, 618, 619, 619, 620, 620, 621, 622, 623, 624,
2785  625, 625, 626, 626, 627, 628, 629, 630, 631, 632,
2786  632, 633, 633, 634, 635, 636, 636, 637, 638, 639,
2787  640, 640, 641, 641, 641, 642, 642, 643, 643, 644,
2788  645, 645, 646, 646, 647, 648, 649, 649, 650, 650,
2789  650, 650, 650, 650, 650, 650, 650, 650, 650, 651,
2790  652, 653, 653, 654, 654, 655, 656, 657, 658, 659,
2791  659, 660, 660, 661, 662, 663, 664, 665, 665, 666,
2792  666, 667, 668, 669, 670, 671, 671, 672, 672, 673,
2793  674, 675, 676, 677, 677, 678, 678, 679, 680, 681,
2794  682, 683, 684, 684, 685, 685, 686, 687, 688, 688,
2795  689, 690, 691, 691, 692, 692, 692, 692, 693, 693,
2796  694, 694, 695, 696, 697, 697, 698, 699, 700, 701,
2797  701, 702, 702, 703, 704, 705, 706, 707, 708, 708,
2798  709, 709, 710, 711, 712, 713, 714, 715, 715, 716,
2799  716, 717, 718, 719, 720, 721, 721, 722, 723, 724,
2800  725, 726, 727, 727, 728, 728, 729, 730, 731, 731,
2801  732, 733, 734, 735, 735, 736, 736, 736, 737, 737,
2802  738, 738, 739, 740, 741, 741, 742, 742, 742, 742,
2803  743, 743, 744, 744, 745, 746, 747, 747, 748, 749,
2804  750, 751, 751, 752, 752, 752, 753, 754, 755, 756,
2805  757, 758, 759, 760, 760, 761, 761, 761, 762, 762,
2806  763, 763, 764, 765, 766, 766, 767, 768, 769, 770,
2807  770, 771, 771, 772, 772, 773, 773, 774, 775, 775,
2808  776, 776, 777, 778, 779, 779, 780, 781, 781, 782,
2809  782, 783, 784, 785, 786, 786, 787, 788, 789, 789,
2810  790, 790, 791, 792, 793, 793, 794, 795, 796, 796,
2811  797, 797, 798, 799, 799, 800, 801, 802, 802, 803,
2812  803, 804, 805, 806, 806, 807, 808, 809, 809, 810,
2813  810, 811, 811, 812, 812, 813, 814, 815, 815, 816,
2814  817, 817, 818, 819, 820, 821, 821, 822, 822, 823,
2815  823, 824, 824, 825, 825, 826, 826, 827, 827, 828,
2816  828, 829, 830, 831, 832, 832, 833, 833, 833, 833,
2817  833, 833, 833, 833, 833, 834, 834, 835, 835, 836,
2818  837, 837, 838, 838, 839, 840, 841, 841, 842, 842,
2819  843, 843, 844, 844, 845, 846, 847, 847, 848, 849,
2820  850, 851, 851, 852, 852, 852, 853, 853, 854, 855,
2821  856, 857, 857, 858, 859, 859, 860, 860, 861, 862,
2822  863, 864, 864, 865, 866, 867, 867, 868, 868, 869,
2823  870, 871, 871, 872, 873, 874, 874, 875, 875, 876,
2824  877, 877, 878, 879, 879, 880, 881, 882, 883, 883,
2825  884, 884, 885, 885, 886, 886, 887, 887, 888, 888,
2826  889, 889, 890, 890, 891, 892, 893, 894, 894, 895,
2827  895, 895, 895, 895, 895, 895, 895, 895, 896, 896,
2828  897, 897, 898, 899, 899, 900, 900, 901, 902, 903,
2829  903, 904, 904, 905, 905, 906, 906, 907, 908, 909,
2830  909, 910, 911, 912, 913, 913, 914, 914, 914, 915,
2831  915, 916, 917, 918, 919, 919, 920, 921, 921, 922,
2832  922, 923, 924, 925, 926, 926, 927, 928, 929, 929,
2833  930, 930, 931, 932, 933, 933, 934, 935, 936, 936,
2834  937, 937, 938, 939, 939, 940, 941, 941, 942, 943,
2835  944, 945, 945, 946, 946, 947, 947, 948, 948, 949,
2836  949, 950, 950, 951, 951, 952, 952, 953, 954, 955,
2837  956, 956, 957, 957, 957, 957, 957, 957, 957, 957,
2838  957, 958, 958, 959, 959, 960, 961, 961, 962, 962,
2839  963, 964, 965, 965, 966, 966, 967, 967, 968, 968,
2840  969, 970, 971, 971, 972, 973, 974, 975, 975, 976,
2841  976, 976, 977, 977, 978, 979, 980, 981, 981, 982,
2842  983, 983, 984, 984, 985, 986, 987, 987, 988, 989,
2843  990, 990, 991, 992, 993, 994, 994, 995, 996, 997,
2844  997, 998, 999, 1000, 1001, 1001, 1002, 1002, 1003, 1004,
2845  1005, 1006, 1006, 1007, 1007, 1007, 1007, 1007, 1007, 1007,
2846  1007, 1007, 1008, 1008, 1009, 1009, 1010, 1011, 1011, 1012,
2847  1012, 1013, 1013, 1014, 1015, 1016, 1017, 1017, 1018, 1018,
2848  1018, 1019, 1019, 1020, 1021, 1022, 1023, 1023, 1024, 1025,
2849  1025, 1026, 1027, 1028, 1028, 1029, 1029, 1030, 1031, 1032,
2850  1032, 1033, 1034, 1035, 1036, 1036, 1037, 1037, 1037, 1037,
2851  1037, 1038, 1038, 1039, 1039, 1040, 1041, 1042, 1042, 1043,
2852  1044, 1044, 1045, 1045, 1046, 1047, 1048, 1048, 1049, 1050,
2853  1051, 1051, 1052, 1052, 1053, 1054, 1055, 1055, 1056, 1057,
2854  1058, 1059, 1059, 1060, 1060, 1060, 1060, 1061, 1061, 1062,
2855  1062, 1063, 1064, 1065, 1065, 1066, 1067, 1067, 1068, 1068,
2856  1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078,
2857  1079, 1080, 1081, 1082, 1082, 1083, 1083, 1083, 1084, 1085,
2858  1085, 1086, 1086, 1086, 1086, 1087, 1088, 1089, 1089, 1090,
2859  1091, 1092, 1093, 1093, 1094, 1094, 1094, 1094, 1094, 1095,
2860  1096, 1096, 1097, 1097, 1098, 1099, 1100, 1100, 1101, 1101,
2861  1102, 1103, 1104, 1104, 1105, 1105, 1106, 1107, 1108, 1108,
2862  1109, 1109, 1110, 1111, 1112, 1112, 1113, 1113, 1114, 1115,
2863  1115, 1116, 1116, 1117, 1118, 1119, 1120, 1120, 1121, 1121,
2864  1122, 1123, 1124, 1124, 1125, 1125, 1126, 1127, 1127, 1128,
2865  1128, 1129, 1130, 1131, 1131, 1132, 1133, 1134, 1134, 1135,
2866  1135, 1136, 1137, 1138, 1139, 1139, 1140, 1141, 1142, 1143,
2867  1144, 1145, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1151,
2868  1152, 1153, 1154, 1155, 1156, 1157, 1157, 1158, 1159, 1160,
2869  1161, 1162, 1163, 1163, 1164, 1165, 1166, 1167, 1168, 1169,
2870  1169, 1170, 1171, 1172, 1173, 1174, 1175, 1175, 1176, 1177,
2871  1178, 1179, 1180, 1181, 1182, 1183, 1183, 1184, 1184, 1184,
2872  1184, 1184, 1184, 1185, 1185, 1186, 1187, 1188, 1189, 1189,
2873  1190, 1191, 1192, 1192, 1193, 1193, 1193, 1193, 1193, 1193,
2874  1193, 1193, 1193, 1194, 1194, 1195, 1195, 1196, 1196, 1196,
2875  1196, 1196, 1196, 1196, 1196, 1197, 1198, 1199, 1200, 1200,
2876  1201, 1201, 1202, 1203, 1203, 1204, 1205, 1206, 1206, 1207,
2877  1208, 1209, 1210, 1211, 1212, 1212, 1213, 1214, 1215, 1216,
2878  1217, 1218, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225,
2879  1225, 1226, 1226, 1227, 1228, 1228, 1229, 1230, 1231, 1231,
2880  1232, 1233, 1234, 1235, 1236, 1237, 1238, 1238, 1239, 1239,
2881  1240, 1241, 1241, 1242, 1242, 1243, 1244, 1244, 1245, 1246,
2882  1247, 1248, 1248, 1249, 1250, 1251, 1252, 1252, 1253, 1253,
2883  1254, 1254, 1255, 1256, 1257, 1257, 1258, 1259, 1260, 1260,
2884  1261, 1262, 1263, 1264, 1265, 1265, 1266, 1266, 1267, 1268,
2885  1268, 1269, 1269, 1270, 1271, 1271, 1272, 1273, 1274, 1274,
2886  1275, 1276, 1277, 1277, 1278, 1279, 1280, 1281, 1282, 1283,
2887  1283, 1284, 1284, 1285, 1286, 1286, 1287, 1288, 1289, 1289,
2888  1290, 1291, 1292, 1293, 1294, 1295, 1296, 1296, 1297, 1297,
2889  1298, 1299, 1299, 1300, 1300, 1301, 1302, 1302, 1303, 1304,
2890  1305, 1305, 1306, 1307, 1308, 1308, 1309, 1309, 1309, 1310,
2891  1311, 1312, 1313, 1313, 1314, 1315, 1316, 1317, 1318, 1319,
2892  1320, 1321, 1322, 1323, 1323, 1324, 1325, 1326, 1327, 1328,
2893  1329, 1330, 1330, 1331, 1332, 1333, 1334, 1334, 1335, 1336,
2894  1337, 1338, 1338, 1339, 1339, 1339, 1339, 1340, 1340, 1341,
2895  1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351,
2896  1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361,
2897  1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371,
2898  1372, 1373, 1374, 1375, 1376, 1376, 1377, 1378, 1379, 1379,
2899  1380, 1381, 1382, 1382, 1383, 1384, 1385, 1385, 1386, 1387,
2900  1388, 1388, 1389, 1390, 1391, 1391, 1392, 1393, 1394, 1394,
2901  1395, 1396, 1397, 1397, 1398, 1399, 1400, 1400, 1401, 1402,
2902  1403, 1403, 1404, 1405, 1406, 1406, 1407, 1408, 1409, 1409,
2903  1410, 1411, 1412, 1412, 1413, 1414, 1415, 1415, 1416, 1417,
2904  1418, 1418, 1419, 1420, 1421, 1421, 1422, 1423, 1424, 1424,
2905  1425, 1426, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427,
2906  1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427,
2907  1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1429,
2908  1428, 1430, 1430, 1432, 1431, 1433, 1433, 1435, 1434, 1437,
2909  1436, 1439, 1438, 1441, 1440, 1443, 1442, 1445, 1444, 1447,
2910  1446, 1449, 1448, 1451, 1450, 1453, 1452, 1455, 1454, 1457,
2911  1456, 1458, 1459, 1460, 1462, 1461, 1464, 1463, 1466, 1465,
2912  1468, 1467, 1470, 1469, 1471, 1472, 1473, 1473, 1474, 1474,
2913  1475, 1475, 1475, 1477, 1476, 1479, 1478, 1480, 1480, 1481,
2914  1480, 1482, 1482, 1483, 1483, 1484, 1485, 1487, 1486, 1488,
2915  1488, 1490, 1489, 1491, 1491, 1493, 1492, 1494, 1494, 1496,
2916  1495, 1497, 1497, 1499, 1498, 1500, 1500, 1501, 1501, 1501,
2917  1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501,
2918  1501, 1501, 1501, 1501, 1501, 1501, 1502, 1503, 1504, 1504,
2919  1505, 1506, 1507, 1508, 1508, 1509, 1510, 1511, 1512, 1512,
2920  1513, 1514, 1515, 1516, 1516, 1517, 1518, 1519, 1520, 1521,
2921  1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531,
2922  1532, 1532, 1533, 1534, 1535, 1536, 1536, 1537, 1538, 1539,
2923  1540, 1541, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548,
2924  1549, 1550, 1551, 1552, 1553, 1555, 1554, 1556, 1556, 1557,
2925  1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565
2926 };
2927 
2928 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
2929 static const yytype_uint8 yyr2[] =
2930 {
2931  0, 2, 3, 3, 1, 1, 0, 1, 1, 1,
2932  1, 3, 1, 1, 0, 6, 0, 1, 0, 2,
2933  1, 1, 1, 2, 1, 3, 1, 1, 2, 1,
2934  1, 1, 1, 1, 1, 1, 1, 1, 3, 1,
2935  1, 1, 2, 1, 1, 1, 1, 1, 2, 1,
2936  3, 1, 1, 2, 3, 1, 1, 0, 2, 1,
2937  1, 2, 1, 2, 1, 1, 1, 2, 1, 3,
2938  1, 2, 1, 1, 1, 2, 1, 3, 1, 2,
2939  1, 1, 1, 2, 1, 3, 1, 2, 1, 1,
2940  1, 2, 1, 3, 1, 2, 1, 1, 1, 2,
2941  1, 3, 1, 2, 1, 1, 1, 2, 1, 3,
2942  1, 2, 1, 1, 1, 2, 1, 3, 1, 3,
2943  1, 1, 1, 1, 2, 1, 3, 1, 1, 2,
2944  3, 1, 1, 0, 2, 1, 1, 1, 2, 1,
2945  0, 2, 1, 1, 1, 2, 1, 3, 1, 1,
2946  2, 1, 1, 1, 1, 1, 1, 2, 1, 1,
2947  1, 2, 1, 3, 1, 3, 1, 1, 0, 2,
2948  1, 1, 3, 1, 3, 1, 1, 0, 2, 1,
2949  1, 3, 1, 3, 1, 1, 0, 2, 1, 1,
2950  3, 1, 3, 1, 0, 1, 3, 1, 3, 1,
2951  1, 1, 1, 2, 1, 3, 1, 1, 2, 3,
2952  1, 1, 0, 2, 1, 1, 1, 2, 1, 0,
2953  2, 1, 1, 1, 2, 1, 3, 1, 1, 2,
2954  1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
2955  2, 1, 3, 1, 2, 1, 1, 1, 2, 1,
2956  3, 1, 2, 1, 1, 1, 2, 1, 3, 1,
2957  2, 1, 1, 1, 2, 1, 3, 1, 2, 1,
2958  1, 1, 2, 1, 3, 1, 3, 1, 1, 1,
2959  1, 2, 1, 3, 1, 1, 2, 3, 1, 1,
2960  0, 2, 1, 1, 1, 2, 1, 0, 2, 1,
2961  1, 1, 2, 1, 3, 1, 1, 2, 1, 1,
2962  1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
2963  1, 1, 1, 2, 1, 3, 1, 2, 1, 1,
2964  1, 2, 1, 3, 1, 2, 1, 1, 1, 2,
2965  1, 3, 1, 2, 1, 1, 1, 2, 1, 3,
2966  1, 2, 1, 1, 1, 2, 1, 3, 1, 3,
2967  1, 1, 1, 1, 2, 1, 3, 1, 1, 2,
2968  3, 1, 0, 2, 1, 1, 1, 1, 1, 1,
2969  2, 1, 3, 1, 1, 1, 3, 1, 1, 0,
2970  2, 1, 1, 3, 1, 3, 1, 1, 0, 2,
2971  1, 1, 3, 1, 3, 1, 1, 0, 2, 1,
2972  1, 3, 1, 3, 1, 0, 1, 3, 1, 3,
2973  1, 1, 1, 1, 2, 1, 3, 1, 1, 2,
2974  3, 1, 1, 0, 2, 1, 1, 1, 2, 1,
2975  0, 3, 1, 1, 0, 2, 1, 1, 1, 1,
2976  1, 1, 2, 1, 3, 2, 1, 2, 3, 1,
2977  1, 0, 2, 1, 1, 1, 4, 3, 3, 9,
2978  3, 1, 1, 1, 2, 1, 1, 1, 1, 1,
2979  2, 1, 3, 1, 1, 2, 3, 1, 1, 0,
2980  2, 1, 1, 2, 1, 0, 2, 1, 1, 1,
2981  2, 1, 3, 1, 0, 3, 1, 0, 1, 1,
2982  1, 1, 3, 4, 0, 3, 1, 1, 1, 1,
2983  2, 1, 3, 1, 1, 2, 3, 1, 0, 2,
2984  1, 1, 3, 0, 3, 1, 1, 1, 1, 2,
2985  1, 3, 1, 1, 2, 3, 1, 0, 2, 1,
2986  1, 1, 1, 2, 1, 3, 1, 0, 2, 1,
2987  1, 1, 1, 3, 7, 0, 1, 0, 1, 0,
2988  1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
2989  2, 3, 1, 1, 0, 2, 1, 1, 1, 1,
2990  1, 1, 1, 1, 1, 1, 1, 2, 1, 3,
2991  1, 1, 1, 2, 3, 1, 0, 2, 1, 1,
2992  1, 1, 2, 1, 3, 1, 1, 2, 3, 1,
2993  1, 0, 2, 1, 1, 1, 1, 1, 1, 3,
2994  1, 0, 3, 1, 0, 1, 1, 1, 1, 3,
2995  3, 0, 3, 1, 1, 1, 1, 2, 1, 3,
2996  1, 1, 2, 3, 1, 0, 2, 1, 1, 3,
2997  0, 2, 1, 1, 1, 1, 3, 7, 0, 1,
2998  0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
2999  0, 1, 0, 2, 3, 1, 1, 0, 2, 1,
3000  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3001  2, 1, 3, 1, 1, 1, 2, 3, 1, 0,
3002  2, 1, 1, 1, 1, 2, 1, 3, 1, 1,
3003  2, 3, 1, 1, 0, 2, 1, 1, 1, 1,
3004  1, 1, 3, 1, 0, 3, 1, 0, 1, 1,
3005  1, 1, 3, 3, 0, 3, 1, 1, 1, 1,
3006  2, 1, 3, 1, 1, 2, 3, 1, 0, 2,
3007  1, 1, 3, 0, 2, 1, 1, 1, 1, 3,
3008  7, 0, 1, 0, 1, 0, 1, 0, 1, 0,
3009  1, 0, 1, 0, 1, 0, 2, 3, 1, 1,
3010  0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
3011  1, 1, 1, 2, 1, 3, 1, 1, 1, 2,
3012  3, 1, 0, 2, 1, 1, 1, 1, 2, 1,
3013  3, 1, 1, 2, 3, 1, 1, 0, 2, 1,
3014  1, 1, 1, 1, 1, 3, 1, 0, 3, 1,
3015  0, 1, 1, 1, 1, 4, 0, 3, 1, 1,
3016  1, 1, 1, 4, 1, 0, 3, 1, 1, 1,
3017  1, 1, 3, 1, 0, 2, 0, 2, 3, 1,
3018  1, 0, 2, 1, 1, 1, 1, 1, 1, 1,
3019  1, 1, 1, 1, 2, 1, 3, 1, 1, 1,
3020  2, 1, 2, 3, 1, 1, 0, 2, 1, 1,
3021  1, 1, 1, 1, 3, 1, 0, 2, 1, 0,
3022  3, 1, 1, 1, 1, 2, 1, 3, 1, 1,
3023  2, 3, 1, 1, 0, 2, 1, 1, 1, 1,
3024  1, 1, 1, 2, 1, 3, 1, 1, 2, 1,
3025  1, 1, 1, 1, 3, 1, 0, 3, 1, 1,
3026  1, 1, 2, 1, 3, 1, 1, 2, 3, 1,
3027  1, 0, 2, 1, 1, 1, 1, 1, 1, 2,
3028  1, 3, 1, 1, 2, 1, 1, 1, 1, 1,
3029  3, 1, 4, 4, 4, 4, 4, 4, 4, 4,
3030  4, 4, 4, 1, 1, 1, 1, 1, 2, 0,
3031  2, 1, 1, 1, 1, 2, 1, 1, 1, 1,
3032  3, 1, 0, 2, 1, 1, 1, 1, 1, 1,
3033  1, 1, 1, 1, 3, 1, 1, 1, 1, 1,
3034  3, 1, 1, 1, 1, 1, 3, 1, 1, 1,
3035  1, 1, 3, 1, 1, 1, 1, 1, 3, 1,
3036  1, 0, 2, 3, 1, 1, 0, 2, 1, 1,
3037  3, 3, 1, 1, 2, 1, 3, 1, 1, 0,
3038  2, 3, 1, 0, 1, 3, 3, 1, 1, 2,
3039  1, 3, 3, 1, 1, 1, 1, 3, 1, 3,
3040  1, 1, 1, 1, 3, 1, 3, 1, 1, 1,
3041  1, 3, 1, 3, 1, 1, 1, 1, 3, 1,
3042  3, 1, 1, 1, 1, 3, 1, 3, 1, 1,
3043  1, 1, 3, 1, 3, 1, 1, 1, 1, 3,
3044  1, 1, 3, 1, 1, 0, 2, 1, 1, 1,
3045  1, 1, 1, 1, 1, 1, 3, 2, 0, 3,
3046  1, 1, 0, 2, 1, 1, 1, 1, 1, 1,
3047  1, 1, 1, 2, 1, 0, 2, 1, 1, 1,
3048  1, 1, 1, 1, 1, 4, 1, 1, 0, 2,
3049  1, 1, 3, 0, 2, 2, 1, 1, 1, 1,
3050  3, 1, 2, 1, 1, 1, 1, 3, 1, 2,
3051  1, 1, 1, 1, 3, 1, 4, 1, 1, 0,
3052  2, 1, 1, 3, 0, 2, 2, 1, 1, 1,
3053  1, 3, 1, 4, 1, 1, 0, 2, 1, 1,
3054  3, 0, 2, 0, 2, 1, 1, 1, 1, 3,
3055  1, 0, 2, 3, 1, 1, 0, 2, 1, 1,
3056  1, 1, 1, 3, 0, 2, 3, 1, 0, 1,
3057  3, 4, 1, 1, 0, 2, 1, 1, 3, 0,
3058  2, 0, 2, 1, 1, 1, 1, 3, 0, 2,
3059  2, 1, 1, 1, 1, 3, 4, 1, 1, 0,
3060  2, 1, 1, 3, 0, 2, 2, 1, 1, 1,
3061  1, 3, 1, 4, 1, 1, 0, 2, 1, 1,
3062  3, 0, 2, 0, 2, 1, 1, 1, 1, 3,
3063  0, 2, 3, 1, 0, 2, 1, 1, 1, 3,
3064  5, 1, 0, 1, 1, 3, 1, 1, 5, 1,
3065  3, 1, 1, 1, 1, 1, 3, 1, 3, 1,
3066  1, 1, 1, 1, 3, 1, 0, 2, 3, 1,
3067  1, 0, 2, 1, 1, 1, 1, 1, 1, 1,
3068  3, 2, 4, 4, 4, 4, 4, 4, 4, 4,
3069  4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
3070  4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
3071  4, 4, 4, 4, 1, 1, 1, 3, 1, 1,
3072  1, 3, 1, 1, 1, 3, 1, 1, 1, 3,
3073  1, 1, 1, 3, 1, 1, 1, 3, 1, 1,
3074  1, 3, 1, 1, 1, 3, 1, 1, 1, 3,
3075  1, 1, 1, 3, 1, 1, 1, 3, 1, 1,
3076  1, 3, 1, 1, 1, 3, 1, 1, 1, 3,
3077  1, 1, 1, 3, 1, 1, 1, 3, 1, 1,
3078  1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
3079  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3080  1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
3081  3, 1, 2, 0, 3, 1, 2, 0, 5, 0,
3082  5, 0, 5, 0, 4, 0, 5, 0, 5, 0,
3083  4, 0, 4, 0, 4, 0, 4, 0, 4, 0,
3084  4, 3, 1, 1, 0, 4, 0, 6, 0, 4,
3085  0, 4, 0, 4, 3, 1, 1, 2, 0, 2,
3086  1, 1, 1, 0, 4, 0, 4, 1, 2, 0,
3087  4, 0, 2, 1, 1, 4, 4, 0, 4, 0,
3088  2, 0, 4, 0, 2, 0, 4, 0, 2, 0,
3089  4, 0, 2, 0, 4, 0, 2, 1, 1, 1,
3090  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3091  1, 1, 1, 1, 1, 1, 3, 1, 1, 2,
3092  4, 3, 1, 1, 2, 4, 3, 1, 1, 2,
3093  4, 3, 1, 1, 2, 4, 2, 1, 2, 2,
3094  1, 3, 2, 1, 2, 2, 1, 2, 4, 1,
3095  0, 1, 2, 4, 1, 0, 1, 2, 3, 2,
3096  1, 1, 2, 2, 1, 3, 2, 1, 2, 2,
3097  1, 3, 2, 1, 3, 0, 4, 0, 2, 2,
3098  1, 3, 2, 1, 6, 2, 1, 2
3099 };
3100 
3101 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
3102  STATE-NUM when YYTABLE doesn't specify something else to do. Zero
3103  means the default is an error. */
3104 static const yytype_uint16 yydefact[] =
3105 {
3106  0, 5, 4, 0, 16, 6, 1, 1006, 14, 18,
3107  17, 0, 7, 0, 13, 2, 12, 20, 140, 0,
3108  1012, 1009, 1005, 1007, 1008, 16, 10, 3, 8, 9,
3109  142, 219, 0, 0, 24, 19, 21, 22, 0, 1011,
3110  14, 221, 297, 0, 0, 146, 141, 143, 144, 39,
3111  64, 120, 104, 112, 23, 72, 80, 88, 96, 0,
3112  26, 27, 29, 0, 30, 0, 31, 0, 32, 0,
3113  33, 0, 34, 0, 35, 0, 36, 0, 37, 0,
3114  1010, 0, 1023, 1022, 0, 1029, 1028, 0, 1035, 1034,
3115  0, 1041, 1040, 0, 1047, 1046, 1013, 1014, 1019, 1020,
3116  1021, 1015, 1025, 1026, 1027, 1016, 1031, 1032, 1033, 1017,
3117  1037, 1038, 1039, 1018, 1043, 1044, 1045, 11, 299, 440,
3118  0, 0, 225, 220, 222, 223, 193, 184, 166, 175,
3119  199, 158, 145, 0, 148, 149, 151, 0, 152, 168,
3120  153, 177, 154, 186, 155, 194, 156, 0, 25, 28,
3121  999, 1418, 0, 1454, 0, 0, 40, 41, 45, 44,
3122  1416, 1417, 43, 1452, 1453, 0, 68, 63, 65, 66,
3123  0, 76, 71, 73, 74, 0, 84, 79, 81, 82,
3124  0, 92, 87, 89, 90, 0, 100, 95, 97, 98,
3125  0, 108, 103, 105, 106, 0, 116, 111, 113, 114,
3126  999, 0, 121, 0, 0, 0, 0, 0, 442, 15,
3127  444, 0, 303, 298, 300, 301, 245, 237, 277, 269,
3128  261, 253, 224, 0, 227, 228, 230, 0, 231, 0,
3129  232, 0, 233, 0, 234, 0, 235, 0, 147, 150,
3130  0, 162, 157, 159, 160, 0, 167, 0, 176, 0,
3131  185, 0, 195, 0, 200, 0, 0, 0, 0, 0,
3132  49, 38, 46, 47, 42, 70, 67, 0, 78, 75,
3133  0, 86, 83, 0, 94, 91, 0, 102, 99, 0,
3134  110, 107, 0, 118, 115, 0, 0, 0, 125, 119,
3135  122, 123, 1024, 1030, 1036, 1042, 1048, 0, 443, 344,
3136  352, 420, 336, 320, 328, 360, 414, 405, 387, 396,
3137  302, 0, 305, 306, 308, 0, 309, 0, 310, 0,
3138  311, 0, 312, 0, 313, 0, 314, 389, 315, 398,
3139  316, 407, 317, 415, 318, 0, 226, 229, 0, 241,
3140  236, 238, 239, 0, 249, 244, 246, 247, 0, 257,
3141  252, 254, 255, 0, 265, 260, 262, 263, 0, 273,
3142  268, 270, 271, 0, 278, 164, 161, 0, 0, 165,
3143  1458, 0, 169, 171, 170, 1456, 1457, 0, 174, 178,
3144  180, 179, 0, 183, 187, 189, 188, 0, 192, 0,
3145  204, 198, 201, 202, 999, 998, 1001, 1002, 1003, 1004,
3146  1000, 1419, 1455, 48, 55, 0, 51, 52, 57, 69,
3147  77, 85, 93, 101, 109, 117, 999, 124, 131, 0,
3148  127, 128, 133, 0, 453, 441, 450, 451, 999, 0,
3149  0, 0, 445, 446, 448, 449, 447, 304, 307, 0,
3150  324, 319, 321, 322, 0, 332, 327, 329, 330, 0,
3151  340, 335, 337, 338, 0, 348, 343, 345, 346, 0,
3152  356, 351, 353, 354, 999, 0, 361, 0, 388, 0,
3153  397, 0, 406, 0, 416, 0, 421, 243, 240, 0,
3154  251, 248, 0, 259, 256, 0, 267, 264, 0, 993,
3155  994, 272, 0, 275, 0, 282, 276, 279, 280, 163,
3156  0, 173, 0, 0, 182, 0, 191, 197, 0, 203,
3157  210, 0, 206, 207, 212, 991, 50, 53, 0, 56,
3158  986, 126, 129, 0, 132, 459, 452, 0, 946, 456,
3159  461, 0, 0, 0, 0, 326, 323, 0, 334, 331,
3160  0, 342, 339, 0, 350, 347, 0, 358, 355, 0,
3161  0, 0, 365, 359, 362, 363, 0, 386, 390, 392,
3162  391, 0, 395, 399, 401, 400, 0, 404, 408, 410,
3163  409, 0, 413, 0, 425, 419, 422, 423, 242, 250,
3164  258, 266, 274, 281, 288, 0, 284, 285, 290, 172,
3165  1459, 181, 190, 196, 205, 208, 0, 211, 0, 62,
3166  54, 1430, 0, 58, 60, 59, 1428, 1429, 0, 139,
3167  130, 1462, 0, 134, 137, 135, 136, 1460, 1461, 454,
3168  948, 457, 455, 0, 0, 460, 999, 0, 0, 0,
3169  325, 333, 341, 349, 357, 999, 371, 364, 0, 367,
3170  368, 372, 0, 394, 0, 403, 0, 412, 418, 0,
3171  424, 431, 0, 427, 428, 433, 283, 286, 0, 289,
3172  0, 218, 209, 213, 216, 214, 215, 61, 0, 138,
3173  0, 999, 0, 949, 0, 458, 0, 0, 999, 462,
3174  463, 464, 465, 989, 1375, 1381, 1386, 992, 366, 369,
3175  0, 393, 402, 411, 417, 426, 429, 0, 432, 0,
3176  296, 287, 291, 294, 292, 293, 217, 1431, 1463, 0,
3177  0, 953, 947, 950, 951, 471, 495, 0, 999, 999,
3178  0, 0, 381, 1410, 0, 373, 370, 378, 379, 376,
3179  1408, 1409, 377, 375, 374, 0, 439, 430, 434, 437,
3180  435, 436, 295, 999, 952, 959, 0, 955, 956, 961,
3181  497, 504, 0, 0, 472, 473, 477, 476, 475, 468,
3182  467, 999, 385, 384, 380, 0, 383, 0, 438, 990,
3183  954, 957, 0, 960, 506, 631, 507, 0, 501, 496,
3184  498, 499, 0, 481, 470, 478, 479, 474, 466, 382,
3185  1411, 0, 970, 958, 967, 968, 0, 962, 966, 964,
3186  965, 963, 633, 734, 634, 999, 0, 508, 503, 500,
3187  0, 480, 487, 0, 483, 484, 489, 969, 979, 0,
3188  978, 0, 972, 973, 975, 976, 977, 0, 736, 837,
3189  737, 999, 0, 635, 0, 514, 511, 505, 509, 510,
3190  502, 482, 485, 0, 488, 981, 0, 971, 974, 0,
3191  839, 909, 840, 999, 0, 738, 0, 641, 638, 632,
3192  636, 637, 999, 516, 0, 533, 0, 0, 494, 486,
3193  490, 492, 491, 980, 1378, 911, 0, 0, 999, 0,
3194  841, 0, 744, 741, 735, 739, 740, 999, 643, 0,
3195  660, 0, 988, 512, 535, 557, 0, 0, 0, 517,
3196  493, 469, 999, 0, 912, 0, 846, 844, 838, 842,
3197  843, 999, 746, 0, 763, 0, 985, 639, 662, 682,
3198  0, 0, 0, 644, 559, 579, 0, 0, 536, 0,
3199  0, 521, 515, 518, 519, 0, 0, 916, 910, 913,
3200  914, 999, 848, 906, 0, 982, 742, 765, 785, 0,
3201  0, 0, 747, 640, 668, 665, 661, 663, 664, 0,
3202  0, 648, 642, 645, 646, 513, 565, 562, 558, 560,
3203  561, 0, 540, 534, 537, 538, 0, 520, 527, 0,
3204  523, 524, 528, 999, 922, 915, 0, 918, 919, 924,
3205  983, 0, 999, 0, 849, 743, 771, 768, 764, 766,
3206  767, 0, 0, 751, 745, 748, 749, 685, 683, 687,
3207  1083, 0, 670, 669, 0, 0, 647, 654, 0, 650,
3208  651, 655, 582, 580, 584, 0, 567, 566, 539, 546,
3209  0, 542, 543, 547, 1384, 522, 525, 0, 987, 917,
3210  920, 0, 923, 908, 845, 907, 0, 855, 852, 847,
3211  850, 851, 788, 786, 790, 0, 773, 772, 0, 750,
3212  757, 0, 753, 754, 758, 0, 686, 666, 1090, 672,
3213  671, 0, 0, 0, 1131, 1380, 649, 652, 0, 0,
3214  583, 563, 569, 568, 541, 544, 0, 0, 0, 529,
3215  526, 530, 531, 0, 934, 921, 931, 932, 925, 930,
3216  928, 929, 926, 927, 999, 857, 866, 0, 0, 789,
3217  769, 775, 774, 1374, 752, 755, 0, 0, 701, 684,
3218  698, 699, 0, 1446, 0, 1422, 0, 1434, 0, 688,
3219  690, 689, 697, 696, 1420, 1421, 693, 695, 1432, 1433,
3220  692, 1444, 1445, 694, 691, 1097, 674, 673, 0, 0,
3221  0, 1051, 1086, 1082, 1084, 1085, 0, 656, 653, 657,
3222  658, 0, 598, 581, 595, 596, 1470, 0, 585, 587,
3223  586, 594, 593, 590, 589, 591, 588, 592, 1468, 1469,
3224  571, 570, 0, 554, 548, 545, 551, 552, 549, 550,
3225  0, 0, 933, 943, 0, 942, 0, 936, 937, 939,
3226  940, 941, 984, 0, 0, 0, 858, 0, 804, 787,
3227  801, 802, 1414, 0, 791, 792, 793, 798, 1412, 1413,
3228  800, 799, 796, 795, 797, 794, 777, 776, 0, 759,
3229  756, 760, 761, 722, 708, 700, 0, 703, 705, 709,
3230  704, 719, 724, 0, 0, 0, 0, 1104, 676, 675,
3231  0, 0, 1051, 1093, 1089, 1091, 1092, 0, 0, 1088,
3232  1049, 1050, 0, 0, 619, 605, 597, 0, 600, 602,
3233  606, 601, 616, 621, 0, 573, 572, 556, 553, 0,
3234  532, 0, 945, 0, 935, 938, 854, 869, 853, 867,
3235  871, 0, 864, 861, 856, 859, 860, 825, 811, 803,
3236  0, 806, 808, 812, 807, 822, 827, 0, 779, 778,
3237  0, 702, 706, 0, 720, 0, 723, 0, 1447, 1423,
3238  1435, 1111, 678, 677, 0, 0, 1051, 1100, 1096, 1098,
3239  1099, 1095, 0, 1376, 0, 0, 1054, 1052, 1056, 1087,
3240  659, 599, 603, 0, 617, 0, 620, 1471, 575, 574,
3241  555, 1397, 944, 0, 870, 0, 0, 805, 809, 0,
3242  823, 0, 826, 1415, 781, 780, 762, 0, 716, 710,
3243  707, 713, 714, 711, 712, 1051, 731, 721, 729, 730,
3244  725, 726, 728, 727, 1377, 1118, 680, 679, 0, 0,
3245  1051, 1107, 1103, 1105, 1106, 1102, 0, 1094, 0, 0,
3246  1065, 1061, 1062, 1063, 0, 1055, 0, 613, 607, 604,
3247  610, 611, 608, 609, 1051, 628, 618, 626, 627, 622,
3248  623, 625, 624, 577, 576, 0, 885, 868, 882, 883,
3249  1426, 0, 872, 874, 873, 881, 880, 879, 1424, 1425,
3250  877, 876, 878, 875, 1379, 863, 1133, 862, 865, 1135,
3251  0, 819, 813, 810, 816, 817, 814, 815, 1051, 834,
3252  824, 832, 833, 828, 829, 831, 830, 783, 782, 995,
3253  996, 997, 715, 0, 718, 0, 733, 1125, 667, 681,
3254  0, 0, 1051, 1114, 1110, 1112, 1113, 1109, 0, 1101,
3255  0, 0, 1064, 0, 1053, 0, 0, 1057, 1059, 1058,
3256  612, 0, 615, 0, 630, 564, 578, 894, 884, 0,
3257  888, 887, 891, 896, 889, 0, 0, 1134, 818, 0,
3258  821, 0, 836, 770, 784, 717, 732, 0, 1051, 1121,
3259  1117, 1119, 1120, 1116, 0, 1108, 1387, 1066, 0, 0,
3260  0, 614, 629, 886, 890, 892, 0, 895, 1427, 1148,
3261  1145, 1132, 1143, 1144, 1450, 0, 0, 0, 999, 1136,
3262  1139, 1138, 1142, 1140, 1137, 1448, 1449, 1141, 820, 835,
3263  1051, 1128, 1124, 1126, 1127, 1123, 0, 1115, 1060, 0,
3264  0, 1051, 903, 893, 901, 902, 897, 898, 900, 899,
3265  1150, 0, 1165, 1152, 0, 0, 0, 0, 1130, 0,
3266  1122, 1398, 1400, 0, 905, 1146, 1147, 0, 1151, 1451,
3267  0, 0, 999, 1129, 904, 1336, 1176, 1207, 1224, 1262,
3268  1304, 1287, 1331, 1166, 1167, 1178, 1168, 1209, 1169, 1226,
3269  1170, 1264, 1171, 1289, 1172, 1306, 1173, 1332, 1174, 0,
3270  0, 1164, 1149, 1406, 0, 0, 0, 0, 0, 0,
3271  0, 0, 0, 1153, 1154, 1157, 1158, 1159, 1160, 1162,
3272  1155, 1156, 1161, 1404, 1405, 1373, 1382, 1399, 0, 1177,
3273  0, 1208, 0, 1225, 0, 1263, 0, 1288, 0, 1305,
3274  1442, 0, 0, 1333, 1440, 1441, 0, 0, 1337, 1163,
3275  999, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3276  1438, 0, 0, 1179, 1180, 1181, 1436, 1437, 0, 1210,
3277  1211, 1212, 0, 1227, 1228, 1229, 0, 1265, 1266, 1267,
3278  0, 1290, 1291, 1292, 0, 1307, 1308, 1309, 0, 0,
3279  0, 0, 1335, 1407, 0, 0, 0, 0, 0, 0,
3280  0, 0, 1186, 1175, 1183, 0, 0, 0, 1214, 1206,
3281  1231, 1223, 1269, 1261, 1294, 1286, 1311, 1303, 1443, 1612,
3282  1617, 1622, 1627, 1630, 1639, 1644, 1650, 1654, 1657, 1660,
3283  1663, 1665, 1670, 1673, 1676, 1607, 1633, 1636, 0, 1587,
3284  0, 1588, 0, 1589, 0, 1590, 0, 1591, 0, 1592,
3285  0, 1605, 0, 1593, 0, 1594, 1640, 1595, 1645, 1596,
3286  0, 1597, 0, 1598, 0, 1599, 0, 1600, 0, 1601,
3287  1602, 0, 1603, 0, 1604, 0, 0, 1341, 0, 0,
3288  1388, 1402, 1403, 1389, 1390, 1391, 1392, 1401, 1193, 0,
3289  0, 0, 1051, 1189, 1185, 1187, 1188, 1439, 0, 0,
3290  0, 1233, 0, 1271, 0, 0, 0, 1313, 0, 1667,
3291  1334, 1330, 0, 0, 0, 0, 0, 0, 0, 0,
3292  0, 1626, 0, 1629, 1517, 1509, 1511, 1515, 1519, 1521,
3293  1567, 1583, 1529, 1513, 1536, 1523, 1525, 1527, 1555, 1532,
3294  1534, 1575, 1571, 1579, 1499, 1503, 1507, 1545, 1538, 1540,
3295  1542, 0, 1493, 1494, 1474, 1475, 1477, 1478, 1479, 1480,
3296  1482, 1483, 1484, 1486, 1485, 1487, 1489, 0, 1490, 1488,
3297  1496, 1497, 1498, 1472, 1548, 1473, 1476, 1495, 1491, 1492,
3298  1481, 1632, 0, 1635, 0, 0, 1641, 0, 1646, 0,
3299  1651, 1649, 0, 1653, 0, 1656, 0, 1659, 0, 1662,
3300  0, 1669, 0, 1672, 0, 1675, 1372, 1349, 1356, 0,
3301  0, 1342, 1182, 1200, 1184, 0, 1051, 1196, 1192, 1194,
3302  1195, 1191, 0, 1383, 1217, 1215, 0, 1213, 1235, 1232,
3303  0, 1230, 1273, 1270, 0, 1268, 1297, 1295, 0, 1293,
3304  1315, 1312, 0, 1310, 0, 0, 0, 1608, 1606, 0,
3305  0, 1613, 1611, 0, 0, 1618, 1616, 0, 0, 1623,
3306  1621, 1628, 0, 0, 0, 0, 0, 0, 0, 1569,
3307  1585, 0, 0, 0, 0, 0, 0, 1561, 0, 1577,
3308  1573, 1581, 0, 0, 0, 0, 0, 0, 1634, 0,
3309  0, 1637, 0, 0, 0, 1652, 0, 1658, 0, 0,
3310  0, 0, 1677, 0, 0, 1350, 1051, 1345, 1340, 1343,
3311  1344, 1069, 1203, 1199, 1201, 1202, 1198, 0, 1190, 1051,
3312  1220, 1216, 1218, 1219, 1241, 1238, 1234, 1236, 1237, 1278,
3313  1276, 1272, 1274, 1275, 1051, 1300, 1296, 1298, 1299, 1320,
3314  1318, 1314, 1316, 1317, 1666, 1668, 0, 1609, 0, 1614,
3315  0, 1619, 0, 1624, 1631, 0, 0, 0, 0, 0,
3316  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3317  0, 0, 0, 0, 0, 1501, 1500, 0, 1505, 1504,
3318  0, 0, 0, 0, 1533, 1531, 0, 1546, 0, 1550,
3319  1551, 1544, 1549, 1552, 1648, 0, 1638, 0, 1643, 1655,
3320  1661, 1664, 1671, 0, 1339, 1359, 1338, 1357, 1361, 1051,
3321  1353, 1348, 1351, 1352, 1347, 0, 0, 1205, 1067, 1068,
3322  0, 1197, 1222, 0, 0, 1240, 0, 1302, 0, 0,
3323  1610, 1615, 1620, 1625, 0, 0, 0, 0, 1520, 1522,
3324  1568, 1570, 1584, 1586, 1530, 1514, 0, 1524, 1526, 1528,
3325  0, 1557, 0, 0, 1556, 1562, 1563, 1564, 1535, 1576,
3326  1578, 1572, 1574, 1580, 1582, 1502, 1506, 0, 1539, 1541,
3327  1543, 1547, 1553, 1642, 1647, 0, 0, 1360, 1355, 0,
3328  1346, 0, 1072, 1070, 1073, 1204, 1221, 1239, 1244, 1242,
3329  1246, 1281, 1277, 1279, 0, 1301, 1323, 1319, 1321, 1324,
3330  1518, 1510, 1512, 1516, 0, 1558, 1559, 0, 0, 1508,
3331  0, 0, 1148, 1369, 1358, 1367, 1368, 999, 999, 1362,
3332  1363, 1364, 1365, 1366, 1354, 0, 1080, 1076, 1077, 1078,
3333  0, 1074, 0, 1245, 0, 1284, 1280, 1282, 1283, 0,
3334  1537, 0, 0, 0, 1554, 1674, 1165, 0, 0, 0,
3335  0, 1079, 0, 1071, 1254, 1252, 1243, 1250, 1251, 0,
3336  0, 1247, 1248, 1249, 0, 0, 1466, 0, 1325, 1322,
3337  1328, 1327, 1326, 1464, 1465, 1560, 1566, 1565, 1371, 1370,
3338  999, 999, 1081, 0, 0, 0, 0, 1285, 0, 0,
3339  1393, 1394, 1075, 1253, 1257, 1255, 1258, 0, 0, 1329,
3340  1467, 0, 0, 1259, 1385, 1396, 0, 0, 1256, 0,
3341  0, 1395, 1260
3342 };
3343 
3344 /* YYDEFGOTO[NTERM-NUM]. */
3345 static const yytype_int16 yydefgoto[] =
3346 {
3347  -1, 3, 4, 5, 13, 27, 28, 29, 15, 16,
3348  8, 9, 18, 19, 35, 36, 37, 59, 60, 61,
3349  62, 63, 155, 156, 157, 261, 262, 263, 405, 406,
3350  407, 408, 518, 519, 603, 600, 64, 65, 167, 168,
3351  169, 267, 66, 67, 172, 173, 174, 270, 68, 69,
3352  177, 178, 179, 273, 70, 71, 182, 183, 184, 276,
3353  72, 73, 187, 188, 189, 279, 74, 75, 192, 193,
3354  194, 282, 76, 77, 197, 198, 199, 285, 78, 79,
3355  201, 289, 290, 291, 419, 420, 421, 422, 523, 524,
3356  613, 610, 31, 32, 46, 47, 48, 133, 134, 135,
3357  136, 137, 242, 243, 244, 367, 138, 139, 245, 246,
3358  372, 369, 500, 140, 141, 247, 248, 379, 378, 503,
3359  142, 143, 249, 250, 384, 383, 505, 144, 145, 251,
3360  388, 508, 146, 147, 253, 391, 392, 393, 511, 512,
3361  513, 514, 596, 597, 663, 662, 42, 43, 123, 124,
3362  125, 223, 224, 225, 226, 227, 340, 341, 342, 479,
3363  228, 229, 345, 346, 347, 482, 230, 231, 350, 351,
3364  352, 485, 232, 233, 355, 356, 357, 488, 234, 235,
3365  360, 361, 362, 492, 236, 237, 363, 496, 497, 498,
3366  585, 586, 587, 588, 658, 659, 702, 701, 119, 120,
3367  213, 214, 215, 311, 312, 313, 314, 315, 441, 442,
3368  443, 537, 316, 317, 446, 447, 448, 540, 318, 319,
3369  451, 452, 453, 543, 320, 321, 456, 457, 458, 546,
3370  322, 323, 461, 462, 463, 549, 324, 325, 465, 553,
3371  554, 555, 638, 639, 640, 641, 690, 725, 726, 727,
3372  728, 765, 766, 326, 327, 467, 468, 558, 557, 642,
3373  328, 329, 469, 470, 563, 562, 644, 330, 331, 471,
3374  472, 568, 567, 646, 332, 333, 473, 572, 649, 334,
3375  335, 475, 575, 576, 577, 652, 653, 654, 655, 697,
3376  698, 738, 737, 209, 210, 297, 298, 432, 425, 426,
3377  427, 527, 528, 529, 530, 624, 625, 679, 680, 681,
3378  682, 675, 716, 717, 753, 754, 755, 784, 785, 786,
3379  813, 814, 815, 816, 843, 844, 870, 869, 751, 752,
3380  779, 780, 781, 810, 775, 776, 806, 837, 838, 839,
3381  864, 865, 866, 898, 932, 933, 934, 979, 980, 981,
3382  982, 1037, 1089, 1090, 895, 896, 927, 973, 974, 975,
3383  1030, 1031, 1032, 1033, 1086, 1184, 1185, 1186, 1187, 1279,
3384  925, 926, 968, 969, 970, 1025, 1026, 1082, 1180, 1275,
3385  1348, 1423, 1505, 965, 1023, 1024, 1079, 1080, 1168, 1163,
3386  1164, 1165, 1267, 1268, 1269, 1270, 1343, 1408, 1409, 1410,
3387  1411, 1501, 1271, 1272, 1273, 1345, 1346, 1419, 1416, 1417,
3388  1418, 1503, 803, 804, 832, 859, 860, 861, 889, 890,
3389  891, 922, 962, 963, 964, 1018, 1019, 1020, 1021, 1078,
3390  1157, 1158, 919, 920, 956, 957, 958, 1011, 1012, 1069,
3391  1146, 1248, 1322, 1386, 1478, 953, 1008, 1009, 1065, 1066,
3392  1129, 1119, 1120, 1121, 1236, 1237, 1238, 1239, 1313, 1369,
3393  1370, 1371, 1372, 1473, 1240, 1241, 1242, 1315, 1316, 1380,
3394  1377, 1378, 1379, 1475, 829, 830, 854, 884, 885, 886,
3395  913, 914, 915, 951, 1004, 1005, 1006, 1061, 1062, 1063,
3396  1064, 1116, 1229, 1230, 948, 949, 998, 999, 1000, 1055,
3397  1056, 1111, 1226, 1308, 1364, 1467, 1523, 995, 1053, 1054,
3398  1108, 1109, 1214, 1209, 1210, 1211, 1300, 1301, 1302, 1303,
3399  1359, 1452, 1453, 1454, 1455, 1519, 1304, 1305, 1306, 1361,
3400  1362, 1463, 1460, 1461, 1462, 1521, 851, 852, 879, 908,
3401  909, 910, 943, 944, 993, 1049, 1050, 1051, 1288, 1106,
3402  1107, 1205, 1294, 1295, 1296, 1447, 1356, 1203, 1289, 1290,
3403  1353, 1354, 1432, 1427, 1428, 1429, 1509, 1510, 1511, 1512,
3404  1513, 1546, 1547, 1586, 1583, 1584, 1585, 1603, 991, 1045,
3405  876, 877, 903, 938, 939, 940, 986, 987, 988, 989,
3406  1041, 1042, 1098, 1095, 1096, 1097, 1196, 1197, 1198, 1199,
3407  1200, 1201, 1283, 622, 623, 672, 712, 713, 714, 746,
3408  747, 748, 749, 772, 773, 797, 793, 794, 795, 821,
3409  822, 823, 824, 825, 826, 846, 855, 880, 994, 833,
3410  202, 904, 807, 433, 673, 158, 466, 493, 1474, 255,
3411  256, 400, 10, 11, 22, 23, 24, 38, 39, 96,
3412  97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3413  107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
3414  1259, 1260, 1337, 1338, 1404, 1405, 1497, 1494, 1261, 1401,
3415  1402, 1403, 2157, 2158, 2223, 2224, 2270, 2293, 2159, 2267,
3416  2268, 2269, 1013, 1014, 1153, 1154, 1155, 1262, 1070, 1071,
3417  1254, 1255, 1256, 1332, 1147, 1148, 1328, 1329, 1330, 1396,
3418  1249, 1250, 1392, 1393, 1394, 1488, 1323, 1324, 1484, 1485,
3419  1486, 1534, 1387, 1388, 1530, 1531, 1532, 1576, 1479, 1480,
3420  1572, 1573, 1574, 1599, 1073, 1448, 1449, 1516, 1517, 1559,
3421  1551, 1552, 1553, 1591, 1592, 1593, 1607, 1608, 1653, 1642,
3422  1606, 1623, 1624, 1625, 1668, 1669, 1703, 1743, 1829, 1744,
3423  1745, 1834, 1835, 1836, 1962, 1830, 1831, 1958, 1959, 1960,
3424  2057, 1954, 1955, 2053, 2054, 2055, 2160, 1626, 1627, 1670,
3425  1671, 1709, 1749, 1840, 1965, 1966, 2061, 2062, 2063, 2163,
3426  1628, 1629, 1672, 1673, 1713, 1751, 1842, 1969, 1970, 2066,
3427  2067, 2068, 2164, 2165, 2229, 2230, 2272, 2273, 2301, 2296,
3428  2297, 2298, 2324, 2335, 2336, 2342, 2348, 1630, 1631, 1674,
3429  1675, 1717, 1753, 1844, 1973, 1974, 2071, 2072, 2073, 2166,
3430  2233, 2234, 2276, 2277, 2278, 1632, 1633, 1676, 1677, 1721,
3431  1755, 1846, 1977, 1978, 2076, 2077, 2078, 2168, 1634, 1635,
3432  1678, 1679, 1725, 1757, 1848, 1981, 1982, 2081, 2082, 2083,
3433  2169, 2238, 2239, 2279, 2308, 2309, 1636, 1637, 1682, 1851,
3434  1638, 1639, 1687, 1732, 2146, 1818, 1819, 1950, 2048, 2049,
3435  2050, 2155, 1948, 1949, 2044, 2151, 2152, 2153, 2219, 2043,
3436  2147, 2148, 2216, 2217, 2259, 2254, 2255, 2256, 2287, 1688,
3437  1560, 952, 434, 1074, 1130, 798, 1206, 923, 435, 1561,
3438  1704, 899, 2302, 436, 1335, 1654, 1655, 1656, 1657, 1658,
3439  2260, 2261, 2343, 2303, 1091, 1498, 1562, 1499, 1659, 1660,
3440  1661, 1662, 1663, 1664, 729, 730, 731, 1217, 1218, 1219,
3441  159, 160, 161, 1133, 1134, 1135, 1437, 1438, 1439, 605,
3442  606, 607, 1137, 1138, 1139, 1705, 1706, 1707, 1683, 1684,
3443  1685, 1140, 1141, 1142, 1564, 1565, 1566, 162, 163, 164,
3444  374, 375, 376, 616, 617, 618, 2312, 2313, 2314, 1177,
3445  1178, 1179, 1891, 1892, 2022, 2116, 1893, 2023, 2119, 1894,
3446  2024, 1895, 2004, 1896, 2005, 1897, 2012, 1898, 2006, 1899,
3447  2003, 1900, 2007, 1901, 2008, 1902, 2014, 1903, 2015, 1904,
3448  2016, 1905, 2011, 1906, 1907, 2125, 1908, 2018, 1909, 2013,
3449  1910, 2025, 1911, 2026, 1912, 2027, 1913, 1914, 2131, 2030,
3450  2132, 2133, 2250, 1915, 2017, 2194, 2281, 2109, 2195, 2196,
3451  2197, 1916, 2009, 2101, 1917, 2020, 2112, 1918, 2019, 2111,
3452  1919, 2021, 2113, 1920, 2010, 2102, 1778, 1779, 1780, 1988,
3453  1853, 1781, 1782, 1992, 1855, 1783, 1784, 1996, 1857, 1785,
3454  1786, 2000, 1859, 1787, 1788, 1861, 1789, 1790, 1863, 1791,
3455  1792, 1921, 1793, 1794, 1923, 1795, 1796, 1925, 2136, 1797,
3456  1798, 1927, 2138, 1926, 1799, 1800, 1931, 1801, 1802, 1933,
3457  1803, 1804, 1935, 1805, 1806, 1937, 1807, 1808, 1939, 1809,
3458  1849, 1984, 1810, 1811, 1941, 1812, 1813, 1943, 1814, 1815,
3459  1945
3460 };
3461 
3462 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
3463  STATE-NUM. */
3464 #define YYPACT_NINF -2074
3465 static const yytype_int16 yypact[] =
3466 {
3467  425, -2074, -2074, 148, 17, 210, -2074, -2074, 228, -62,
3468  -2074, 464, -2074, 469, -2074, -2074, -2074, -2074, -7, 474,
3469  -2074, -2074, -2074, -2074, -2074, 17, -2074, -2074, -2074, -2074,
3470  -2074, 1, 488, -13, -2074, -2074, -2074, -2074, 191, 1083,
3471  228, -2074, 20, 514, 87, -2074, -2074, -2074, -2074, -2074,
3472  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 29,
3473  -20, -2074, -2074, 217, -2074, 520, -2074, 555, -2074, 561,
3474  -2074, 585, -2074, 618, -2074, 629, -2074, 644, -2074, 295,
3475  -2074, 340, -2074, -2074, 347, -2074, -2074, 351, -2074, -2074,
3476  356, -2074, -2074, 371, -2074, -2074, -2074, -2074, -2074, -2074,
3477  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3478  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 67,
3479  653, 42, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3480  -2074, -2074, -2074, 79, 455, -2074, -2074, 656, -2074, -2074,
3481  -2074, -2074, -2074, -2074, -2074, 505, -2074, 295, -2074, -2074,
3482  -2074, -2074, 389, -2074, 393, 671, 217, -2074, -2074, -2074,
3483  -2074, -2074, -2074, -2074, -2074, 128, -2074, -2074, -2074, -2074,
3484  16, -2074, -2074, -2074, -2074, 13, -2074, -2074, -2074, -2074,
3485  9, -2074, -2074, -2074, -2074, 8, -2074, -2074, -2074, -2074,
3486  137, -2074, -2074, -2074, -2074, 85, -2074, -2074, -2074, -2074,
3487  -2074, 673, -2074, 275, 279, 282, 284, 312, -2074, -2074,
3488  -2074, 18, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3489  -2074, -2074, -2074, 115, 435, -2074, -2074, 675, -2074, 681,
3490  -2074, 683, -2074, 687, -2074, 689, -2074, 295, -2074, -2074,
3491  102, -2074, -2074, -2074, -2074, 424, 269, 436, 269, 443,
3492  269, 445, -2074, 693, -2074, 456, -2, 459, 461, 233,
3493  -2074, -2074, -2074, -2074, -2074, -2074, -2074, 411, -2074, -2074,
3494  166, -2074, -2074, 175, -2074, -2074, 183, -2074, -2074, 173,
3495  -2074, -2074, 439, -2074, -2074, 420, 516, -25, -2074, -2074,
3496  -2074, -2074, -2074, -2074, -2074, -2074, -2074, 695, 156, -2074,
3497  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3498  -2074, 216, 384, -2074, -2074, 699, -2074, 767, -2074, 770,
3499  -2074, 774, -2074, 776, -2074, 507, -2074, -2074, -2074, -2074,
3500  -2074, -2074, -2074, 505, -2074, 295, -2074, -2074, 129, -2074,
3501  -2074, -2074, -2074, 255, -2074, -2074, -2074, -2074, 138, -2074,
3502  -2074, -2074, -2074, 92, -2074, -2074, -2074, -2074, 160, -2074,
3503  -2074, -2074, -2074, 778, -2074, -2074, -2074, 450, 787, -2074,
3504  -2074, 545, -2074, -2074, -2074, -2074, -2074, 787, -2074, -2074,
3505  -2074, -2074, 787, -2074, -2074, -2074, -2074, 544, -2074, -11,
3506  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3507  -2074, -2074, -2074, -2074, -2074, 495, 470, -2074, -2074, -2074,
3508  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 508,
3509  232, -2074, -2074, -60, -2074, -2074, -2074, -2074, -2074, 569,
3510  571, 575, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 126,
3511  -2074, -2074, -2074, -2074, 136, -2074, -2074, -2074, -2074, 105,
3512  -2074, -2074, -2074, -2074, 331, -2074, -2074, -2074, -2074, 146,
3513  -2074, -2074, -2074, -2074, -2074, 785, -2074, 577, 269, 579,
3514  269, 583, 269, 587, -2074, 788, -2074, -2074, -2074, 536,
3515  -2074, -2074, 562, -2074, -2074, 519, -2074, -2074, 529, -2074,
3516  -2074, -2074, 557, -2074, -10, -2074, -2074, -2074, -2074, -2074,
3517  600, -2074, 652, 609, -2074, 638, -2074, -2074, 651, -2074,
3518  -2074, 628, 366, -2074, -2074, -2074, -2074, -2074, 806, 346,
3519  -2074, -2074, -2074, 810, 396, -2074, -2074, 395, 86, -2074,
3520  -2074, 707, 709, 711, 713, -2074, -2074, 640, -2074, -2074,
3521  642, -2074, -2074, 660, -2074, -2074, 692, -2074, -2074, 678,
3522  731, 62, -2074, -2074, -2074, -2074, 787, -2074, -2074, -2074,
3523  -2074, 787, -2074, -2074, -2074, -2074, 787, -2074, -2074, -2074,
3524  -2074, 733, -2074, -8, -2074, -2074, -2074, -2074, -2074, -2074,
3525  -2074, -2074, -2074, -2074, -2074, 676, 410, -2074, -2074, -2074,
3526  -2074, -2074, -2074, -2074, -2074, -2074, 812, 396, 662, -2074,
3527  -2074, -2074, 744, -2074, -2074, -2074, -2074, -2074, 413, -2074,
3528  -2074, -2074, 752, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3529  -2074, -2074, -2074, 727, 749, 379, -2074, 755, 757, 759,
3530  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 672, 690,
3531  -2074, -2074, 666, -2074, 670, -2074, 686, -2074, -2074, 694,
3532  -2074, -2074, 708, 466, -2074, -2074, -2074, -2074, 814, 396,
3533  478, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 842, -2074,
3534  844, -2074, 821, -2074, 745, -2074, 853, 855, -2074, -2074,
3535  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3536  246, -2074, -2074, -2074, -2074, -2074, -2074, 824, 396, 524,
3537  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 860,
3538  83, -2074, -2074, -2074, -2074, -2074, 808, 217, -2074, -2074,
3539  864, 93, -2074, -2074, 869, -2074, -2074, -2074, -2074, -2074,
3540  -2074, -2074, -2074, -2074, -2074, 538, -2074, -2074, -2074, -2074,
3541  -2074, -2074, -2074, -2074, -2074, -2074, 803, 796, -2074, -2074,
3542  -2074, 581, 826, 828, 217, -2074, -2074, -2074, -2074, -2074,
3543  -2074, -2074, -2074, -2074, -2074, 791, -2074, 872, -2074, -2074,
3544  -2074, -2074, 830, 440, -2074, 589, 866, 141, -2074, -2074,
3545  -2074, -2074, 74, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3546  -2074, 272, -2074, -2074, -2074, -2074, 880, -2074, -2074, -2074,
3547  -2074, -2074, -2074, 599, 873, -2074, 832, -2074, -2074, -2074,
3548  839, -2074, -2074, 811, 820, -2074, -2074, -2074, -2074, 893,
3549  -2074, 819, 480, -2074, -2074, -2074, -2074, 904, -2074, 635,
3550  894, -2074, 835, -2074, 910, 780, -2074, -2074, -2074, -2074,
3551  -2074, -2074, -2074, 837, 296, -2074, 764, -2074, -2074, 912,
3552  -2074, 856, 900, -2074, 1163, -2074, 926, 790, -2074, -2074,
3553  -2074, -2074, -2074, -2074, 634, 836, 725, 851, -2074, -2074,
3554  -2074, -2074, -2074, -2074, -2074, -2074, 863, 925, -2074, 1165,
3555  -2074, 944, 902, -2074, -2074, -2074, -2074, -2074, -2074, 663,
3556  919, 761, -2074, -2074, -2074, 921, 725, 959, 1168, -2074,
3557  -2074, -2074, -2074, 1181, -2074, 963, 696, -2074, -2074, -2074,
3558  -2074, -2074, -2074, 685, 933, 782, -2074, -2074, -2074, -2074,
3559  1183, 973, 1187, -2074, -2074, -2074, 1189, 1193, -2074, 977,
3560  -59, -2074, -2074, -2074, -2074, 979, 343, -2074, -2074, -2074,
3561  -2074, -2074, -2074, -2074, 958, -2074, -2074, -2074, -2074, 1229,
3562  985, 1231, -2074, 664, 682, -2074, -2074, -2074, -2074, 989,
3563  -65, -2074, -2074, -2074, -2074, 668, 682, -2074, -2074, -2074,
3564  -2074, -57, -2074, -2074, -2074, -2074, 997, -2074, -2074, 852,
3565  715, -2074, -2074, -2074, -2074, -2074, 939, 948, -2074, -2074,
3566  -2074, -77, -2074, 1235, -2074, 677, 682, -2074, -2074, -2074,
3567  -2074, 1012, -12, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3568  -2074, 975, 717, -2074, 868, 1014, -2074, -2074, 879, 735,
3569  -2074, -2074, -2074, -2074, -2074, 983, 717, -2074, -2074, -2074,
3570  923, 737, -2074, -2074, -2074, -2074, -2074, 54, -2074, -2074,
3571  -2074, 1239, 512, -2074, -2074, -2074, 1032, 896, -2074, -2074,
3572  -2074, -2074, -2074, -2074, -2074, 999, 717, -2074, 1034, -2074,
3573  -2074, 1016, 772, -2074, -2074, 1241, 1018, -2074, -2074, 748,
3574  -2074, 868, 1061, 1243, -2074, -2074, -2074, -2074, 64, 1245,
3575  641, -2074, 748, -2074, -2074, -2074, 40, 787, 1063, -2074,
3576  -2074, -2074, -2074, 107, -2074, -2074, -2074, -2074, -2074, -2074,
3577  -2074, -2074, -2074, -2074, -2074, -2074, -2074, 858, 1247, 1066,
3578  -2074, 748, -2074, -2074, -2074, -2074, 186, -92, -2074, -2074,
3579  -2074, -2074, 1065, -2074, 1074, -2074, 1076, -2074, 1078, -2074,
3580  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3581  -2074, -2074, -2074, -2074, -2074, -2074, 789, -2074, 868, 1249,
3582  1077, 929, -2074, -2074, -2074, -2074, 787, -2074, -2074, -2074,
3583  -2074, -82, -2074, -2074, -2074, -2074, -2074, 1101, -2074, -2074,
3584  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3585  789, -2074, 6, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3586  816, 1100, -2074, -2074, 1103, -2074, 1041, 506, -2074, -2074,
3587  -2074, -2074, -2074, -183, 1104, 1251, -2074, -81, -2074, -2074,
3588  -2074, -2074, -2074, 1111, -2074, -2074, -2074, -2074, -2074, -2074,
3589  -2074, -2074, -2074, -2074, -2074, -2074, 789, -2074, 787, -2074,
3590  -2074, -2074, -2074, -2074, -2074, -2074, 807, 850, -2074, -2074,
3591  1001, -2074, -2074, 1141, 1145, 1147, 1149, -2074, 838, -2074,
3592  868, 1253, 929, -2074, -2074, -2074, -2074, 1153, 915, -2074,
3593  1015, -2074, 845, 871, -2074, -2074, -2074, 833, 907, -2074,
3594  -2074, 1021, -2074, -2074, 1206, 838, -2074, -2074, -2074, 922,
3595  -2074, 1219, -2074, 1185, -2074, -2074, -2074, -2074, -2074, -2074,
3596  -2074, 1334, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3597  1006, 1052, -2074, -2074, 1194, -2074, -2074, 1337, 838, -2074,
3598  1054, -2074, -2074, 52, -2074, 1255, 226, 1339, -2074, -2074,
3599  -2074, -2074, 1025, -2074, 868, 1257, 929, -2074, -2074, -2074,
3600  -2074, -2074, 1033, -2074, 1342, 1259, -2074, -2074, -2074, -2074,
3601  -2074, -2074, -2074, 68, -2074, 1261, 226, -2074, 1025, -2074,
3602  -2074, -2074, -2074, 1264, 479, 1343, 12, -2074, -2074, 163,
3603  -2074, 1266, 226, -2074, 1025, -2074, -2074, 23, -2074, -2074,
3604  -2074, -2074, -2074, -2074, -2074, 929, -2074, -2074, -2074, -2074,
3605  -2074, -2074, -2074, -2074, -2074, -2074, 1027, -2074, 868, 1268,
3606  929, -2074, -2074, -2074, -2074, -2074, 1035, -2074, 1348, 89,
3607  -2074, -2074, -2074, -2074, 1345, 1048, 15, -2074, -2074, -2074,
3608  -2074, -2074, -2074, -2074, 929, -2074, -2074, -2074, -2074, -2074,
3609  -2074, -2074, -2074, 1027, -2074, -55, -2074, -2074, -2074, -2074,
3610  -2074, 1353, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3611  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3612  31, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 929, -2074,
3613  -2074, -2074, -2074, -2074, -2074, -2074, -2074, 1027, -2074, -2074,
3614  -2074, -2074, -2074, 1064, -2074, 1208, -2074, -2074, -2074, -2074,
3615  868, 1272, 929, -2074, -2074, -2074, -2074, -2074, 1043, -2074,
3616  1354, 1204, -2074, 1357, -2074, 1356, 1358, -2074, -2074, -2074,
3617  -2074, 1067, -2074, 1214, -2074, -2074, -2074, -2074, -2074, 1036,
3618  1087, 1220, -2074, -2074, -2074, 1361, 1274, 261, -2074, 1079,
3619  -2074, 1222, -2074, -2074, -2074, -2074, -2074, 1276, 929, -2074,
3620  -2074, -2074, -2074, -2074, 1053, -2074, -2074, -2074, 1225, 1370,
3621  1371, -2074, -2074, -2074, -2074, -2074, 1278, 226, -2074, 1136,
3622  -2074, -2074, -2074, -2074, -2074, 1376, 1372, 1373, -2074, -2074,
3623  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3624  929, -2074, -2074, -2074, -2074, -2074, 1058, -2074, -2074, 1375,
3625  1377, 929, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3626  -2074, 1102, -2074, -2074, 1378, 1381, 1382, 1383, -2074, 1068,
3627  -2074, -2074, -2074, 1240, -2074, -2074, 294, 1280, 392, -2074,
3628  1384, 1385, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3629  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3630  -2074, -2074, -2074, -2074, -2074, -2074, -2074, 1119, -2074, 1195,
3631  1154, -2074, -2074, -2074, 1387, 1389, 1390, 1391, 1392, 1393,
3632  1394, 1395, 1396, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3633  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 1397, 174,
3634  1398, 174, 1399, 174, 1400, 174, 1403, 174, 1404, 174,
3635  -2074, 1402, 1405, -2074, -2074, -2074, 1408, 1407, -2074, -2074,
3636  -2074, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 787, 1139,
3637  -2074, 1422, 1419, -2074, -2074, -2074, -2074, -2074, 1139, -2074,
3638  -2074, -2074, 1139, -2074, -2074, -2074, 1139, -2074, -2074, -2074,
3639  1139, -2074, -2074, -2074, 1139, -2074, -2074, -2074, 1420, 341,
3640  1423, 1179, -2074, -2074, 1424, 1425, 1426, 1427, 1428, 1430,
3641  1431, 1432, -2074, -2074, 1161, 1284, 1433, 1436, 1161, -2074,
3642  1161, -2074, 1161, -2074, 1161, -2074, 1161, -2074, -2074, -2074,
3643  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3644  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 1155, -2074,
3645  1212, -2074, 1213, -2074, 1215, -2074, 1216, -2074, 341, -2074,
3646  341, -2074, 769, -2074, 341, -2074, 1007, -2074, 1007, -2074,
3647  1286, -2074, 341, -2074, 341, -2074, 341, -2074, 341, -2074,
3648  -2074, 769, -2074, 769, -2074, 341, 1440, -2074, 1200, 868,
3649  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 1196,
3650  1180, 1288, 929, -2074, -2074, -2074, -2074, -2074, 1444, 1182,
3651  1198, 1184, 1199, 1188, 1201, 1191, 1192, 1197, 1202, -2074,
3652  -2074, -2074, 1450, 1290, 1452, 1292, 1455, 1294, 1457, 1296,
3653  1060, -2074, 341, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3654  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3655  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3656  -2074, 1037, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3657  -2074, -2074, -2074, -2074, -2074, -2074, -2074, 769, -2074, -2074,
3658  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3659  -2074, -2074, 1031, -2074, 1466, 1460, -2074, 1462, -2074, 1059,
3660  -2074, -2074, 341, -2074, 1056, -2074, 341, -2074, 341, -2074,
3661  341, -2074, 769, -2074, 1045, -2074, -2074, -2074, -2074, 868,
3662  1298, -2074, -2074, -2074, -2074, 1300, 929, -2074, -2074, -2074,
3663  -2074, -2074, 1209, -2074, -2074, -2074, 1302, -2074, -2074, -2074,
3664  1304, -2074, -2074, -2074, 1306, -2074, -2074, -2074, 1308, -2074,
3665  -2074, -2074, 1310, -2074, 309, 1470, 1046, -2074, -2074, 1473,
3666  1203, -2074, -2074, 1474, 1205, -2074, -2074, 1475, 1207, -2074,
3667  -2074, -2074, 1075, 769, 769, 769, 769, 769, 769, -2074,
3668  -2074, 769, 769, 769, 769, 769, 769, -2074, 769, -2074,
3669  -2074, -2074, 1312, 1314, 769, 341, 341, 341, -2074, 1105,
3670  14, -2074, 1476, 341, 341, -2074, 1070, -2074, 1062, 1071,
3671  1069, 769, -2074, 1082, 1318, -2074, 929, -2074, -2074, -2074,
3672  -2074, 1332, -2074, -2074, -2074, -2074, -2074, 1224, -2074, 929,
3673  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3674  -2074, -2074, -2074, -2074, 929, -2074, -2074, -2074, -2074, -2074,
3675  -2074, -2074, -2074, -2074, -2074, -2074, 1481, -2074, 1484, -2074,
3676  1488, -2074, 1490, -2074, -2074, 769, 769, 769, 769, 1140,
3677  1137, 500, 556, 1133, 1132, 769, 1129, 1128, 1127, 61,
3678  1122, 605, 658, 697, 1115, -2074, -2074, 1114, -2074, -2074,
3679  769, 1109, 1108, 1107, -2074, -2074, 1116, -2074, 1509, -2074,
3680  -2074, -2074, -2074, -2074, -2074, 1106, -2074, 1110, -2074, -2074,
3681  -2074, -2074, -2074, 769, -2074, -2074, -2074, -2074, -2074, 929,
3682  -2074, -2074, -2074, -2074, -2074, 1265, 915, -2074, 1367, -2074,
3683  1246, -2074, -2074, 1248, 1252, 1369, -67, -2074, 1254, -63,
3684  -2074, -2074, -2074, -2074, 1167, 1169, 1171, 1172, -2074, -2074,
3685  -2074, -2074, -2074, -2074, -2074, -2074, 769, -2074, -2074, -2074,
3686  738, -2074, 1513, 1517, -2074, -2074, -2074, -2074, -2074, -2074,
3687  -2074, -2074, -2074, -2074, -2074, -2074, -2074, 1135, -2074, -2074,
3688  -2074, -2074, -2074, -2074, -2074, 341, 1320, 307, -2074, 1279,
3689  -2074, 1323, -2074, -2074, 1299, -2074, -2074, -2074, -2074, -2074,
3690  -2074, -2074, -2074, -2074, 1325, -2074, -2074, -2074, -2074, -2074,
3691  -2074, -2074, -2074, -2074, 1162, -2074, -2074, 1527, 787, -2074,
3692  1528, 1112, 1136, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3693  -2074, -2074, -2074, -2074, -2074, 90, -2074, -2074, -2074, -2074,
3694  1525, -2074, 1327, -76, 769, -2074, -2074, -2074, -2074, 169,
3695  -2074, 1157, 1530, 1531, -2074, -2074, -2074, 1295, 1536, 1537,
3696  1388, -2074, 787, -2074, -2074, -2074, -2074, -2074, -2074, 1538,
3697  1539, -2074, -2074, -2074, 1401, 1542, -2074, 1541, -2074, -2074,
3698  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 294, -2074,
3699  -2074, -2074, -2074, 1406, -58, 1543, 787, -2074, 1409, 1544,
3700  -2074, -2074, -2074, -2074, -2074, -2074, 1316, 1545, 1546, -2074,
3701  -2074, 1548, 1547, -2074, -2074, -2074, 787, 1553, -2074, 1552,
3702  1287, -2074, -2074
3703 };
3704 
3705 /* YYPGOTO[NTERM-NUM]. */
3706 static const yytype_int16 yypgoto[] =
3707 {
3708  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 1522, -2074,
3709  1540, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 1503,
3710  -2074, -2074, -2074, -2074, 1410, -2074, -2074, -2074, -2074, -2074,
3711  1158, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3712  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3713  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3714  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3715  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3716  -2074, -2074, -2074, -2074, -2074, -2074, 1148, -2074, -2074, -2074,
3717  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 1435,
3718  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3719  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3720  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3721  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3722  1055, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3723  -2074, -2074, -2074, 1346, -2074, -2074, -2074, -2074, -2074, -2074,
3724  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3725  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3726  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3727  -2074, -2074, 986, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3728  -2074, -2074, -2074, -2074, -2074, 1262, -2074, -2074, -2074, -2074,
3729  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3730  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3731  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3732  -2074, -2074, -2074, -2074, 932, -2074, -2074, -2074, -2074, -2074,
3733  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3734  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3735  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3736  -2074, -2074, -2074, -2074, -2074, -2074, -2074, 920, -2074, -2074,
3737  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3738  -2074, -2074, -2074, 1047, -2074, -2074, -2074, -2074, -2074, -2074,
3739  -2074, -2074, -2074, -2074, -2074, -2074, 822, -2074, -2074, -2074,
3740  -2074, -2074, 763, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3741  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3742  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 598,
3743  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3744  -2074, -2074, 548, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3745  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3746  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3747  -2074, -2074, -2074, -2074, 313, -2074, -2074, -2074, -2074, -2074,
3748  -2074, -2074, -2074, 311, -2074, -2074, -2074, -2074, -2074, -2074,
3749  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3750  -2074, -2074, -2074, -2074, -2074, -2074, -2074, 564, -2074, -2074,
3751  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3752  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3753  -2074, -2074, -2074, -2074, -2074, -2074, 348, -2074, -2074, -2074,
3754  -2074, -2074, -2074, -2074, -2074, 344, -2074, -2074, -2074, -2074,
3755  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3756  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 518,
3757  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3758  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3759  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 285, -2074,
3760  -2074, -2074, -2074, -2074, -2074, -2074, -2074, 283, -2074, -2074,
3761  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3762  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3763  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3764  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 77,
3765  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3766  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 602, -2074,
3767  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, 394, -2074,
3768  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3769  -2074, 843, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3770  -2074, 771, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3771  -102, -2074, -2074, -2074, -2074, -583, -2074, -366, -1238, -200,
3772  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3773  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3774  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3775  -1244, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3776  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3777  -2074, -2074, -597, -2074, -2074, -2074, -2074, -2074, -656, -2074,
3778  -2074, -2074, -2074, -2074, -939, -2074, -2074, -2074, -2074, -2074,
3779  -1041, -2074, -2074, -2074, -2074, -2074, -1003, -2074, -2074, -2074,
3780  -2074, -2074, -1201, -2074, -2074, -2074, -2074, -2074, -1173, -2074,
3781  -2074, -2074, -2074, -2074, -1037, -1312, -2074, -2074, -2074, -2074,
3782  -2074, -2074, -2074, -2074, -660, -2074, -2074, -2074, -2074, -2074,
3783  -692, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -1212,
3784  -2074, -2074, -2074, -2074, -2074, -1210, -2074, -2074, -2074, -2074,
3785  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3786  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3787  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3788  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3789  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3790  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3791  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3792  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3793  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3794  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3795  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3796  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3797  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3798  -2074, 486, -2074, -1313, -1065, 554, 243, 532, -2074, -2074,
3799  -1093, -798, -2074, -2074, -557, -2074, -2074, -2074, -2074, -2074,
3800  -2074, -2074, -2074, -2074, -1055, -679, -2074, -2073, -2074, -2074,
3801  -2074, -2074, -2074, -2074, -741, -2074, -2074, -2074, -2074, -2074,
3802  -136, -2074, -2074, -1054, -2074, -2074, -2074, -2074, -2074, -510,
3803  -2074, -2074, -2074, -2074, -2074, -1052, -2074, -2074, -2074, -2074,
3804  -2074, -1032, -2074, -2074, -616, -2074, -2074, -689, -2074, -2074,
3805  -243, -2074, -2074, -593, -2074, -2074, -2074, -2074, -2074, -2074,
3806  -2074, -2074, -1738, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3807  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3808  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3809  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3810  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3811  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3812  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3813  -2074, -2074, -2074, -2074, -2074, -2074, -1687, -2074, -2074, -2074,
3814  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3815  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3816  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3817  -2074, -2074, -2074, -196, -2074, -2074, -2074, -2074, -2074, -2074,
3818  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3819  -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074, -2074,
3820  -2074
3821 };
3822 
3823 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
3824  positive, shift that token. If negative, reduce the rule which
3825  number is the opposite. If zero, do what YYDEFACT says.
3826  If YYTABLE_NINF, syntax error. */
3827 #define YYTABLE_NINF -1
3828 static const yytype_uint16 yytable[] =
3829 {
3830  286, 733, 501, 1381, 666, 381, 395, 386, 1331, 252,
3831  1277, 504, 277, 274, 615, 1169, 506, 271, 525, 1469,
3832  268, 1470, 1471, 1159, 2126, 2127, 1172, 1469, 758, 1470,
3833  1471, 1188, 799, 1420, 1149, 1469, 49, 1470, 1471, 1059,
3834  50, 1043, 417, 49, 1216, 254, 51, 50, 1174, 1464,
3835  1182, 1183, 299, 51, 1028, 1221, 509, 583, 1233, 650,
3836  52, 1231, 1367, 1368, 1087, 758, 705, 52, 1264, 1297,
3837  300, 2190, 2191, 1940, 1156, 1942, 53, 1223, 1406, 1407,
3838  1016, 2231, 1395, 53, 301, 2236, 977, 665, 216, 283,
3839  217, 2333, 302, 1491, 2290, 1507, 486, 1286, 928, 762,
3840  763, 1860, 303, 1862, 304, 741, 365, 1922, 218, 541,
3841  373, 1251, 380, 1514, 385, 1932, 305, 1934, 219, 1936,
3842  306, 1938, 307, 126, 308, 127, 309, 128, 1944, 129,
3843  535, 1476, 265, 477, 756, 364, 220, 7, 2299, 1276,
3844  538, 280, 221, 1181, 483, 808, 1487, 1424, 6, 704,
3845  547, 2271, 1287, 130, 636, 872, 744, 1445, 620, 811,
3846  2300, 637, 812, 1468, 525, 745, 489, 490, 1502, 2029,
3847  1504, 756, 1227, 1450, 1451, 2002, 1192, 131, 478, 2305,
3848  542, 428, 284, 153, 154, 1309, 764, 487, 740, 266,
3849  643, 611, 612, 366, 515, 645, 1228, 474, 1544, 548,
3850  647, 1044, 809, 1234, 2041, 2232, 2311, 601, 602, 2237,
3851  1298, 536, 1520, 1325, 1522, 2334, 520, 1265, 281, 601,
3852  602, 601, 602, 539, 12, 560, 1446, 565, 531, 570,
3853  1017, 601, 602, 476, 1587, 601, 602, 491, 1533, 484,
3854  978, 17, 1029, 14, 1235, 2036, 1492, 2291, 150, 2038,
3855  1506, 2039, 526, 2040, 1266, 1299, 721, 722, 1373, 1193,
3856  1194, 480, 1195, 801, 550, 2095, 2096, 2097, 2098, 2099,
3857  2100, 1088, 1349, 2103, 2104, 2105, 2106, 2107, 2108, 1060,
3858  2110, 1508, 1170, 1088, 1575, 1088, 2120, 1389, 1412, 1433,
3859  403, 54, 2192, 1446, 1524, 1088, 2193, 2085, 30, 1088,
3860  1436, 1100, 481, 2143, 1456, 1365, 1278, 55, 41, 56,
3861  418, 57, 80, 58, 55, 1500, 56, 200, 57, 1472,
3862  58, 404, 1441, 1518, 510, 584, 1598, 651, 310, 118,
3863  601, 602, 559, 148, 564, 544, 569, 1604, 2121, 2122,
3864  2123, 275, 278, 272, 269, 203, 2135, 2137, 2306, 2307,
3865  222, 1481, 204, 601, 602, 817, 205, 2174, 2175, 2176,
3866  2177, 206, 429, 2181, 2183, 430, 545, 2186, 431, 1027,
3867  1083, 1700, 1701, 2200, 2202, 2204, 207, 1143, 208, 1702,
3868  151, 152, 2207, 604, 1072, 238, 153, 154, 614, 151,
3869  152, 1175, 257, 132, 1088, 676, 258, 677, 292, 1057,
3870  1112, 1495, 1496, 611, 612, 2215, 293, 723, 724, 151,
3871  152, 984, 678, 294, 985, 153, 154, 1088, 299, 295,
3872  1224, 370, 371, 336, 818, 819, 683, 820, 601, 602,
3873  153, 154, 151, 152, 368, 687, 300, 1, 2, 396,
3874  397, 398, 399, 1527, 370, 371, 377, 734, 2244, 1103,
3875  301, 296, 2246, 382, 2128, 387, 1554, 1555, 302, 151,
3876  152, 664, 394, 1556, 1557, 153, 154, 401, 303, 402,
3877  304, 709, 409, 1144, 20, 21, 153, 154, 720, 25,
3878  26, 216, 305, 217, 33, 34, 306, 1176, 307, 1558,
3879  308, 126, 309, 127, 410, 128, 1748, 129, 44, 45,
3880  1750, 218, 1554, 1555, 1752, 411, 1951, 413, 1754, 151,
3881  152, 219, 1756, 601, 602, 412, 1225, 415, 759, 760,
3882  414, 130, 416, 703, 121, 122, 437, 1092, 2251, 220,
3883  165, 166, 1102, 2257, 2258, 221, 2304, 1615, 1839, 464,
3884  1841, 499, 1843, 769, 1845, 131, 1847, 1616, 502, 1617,
3885  507, 1618, 516, 1619, 732, 1620, 1136, 1621, 404, 151,
3886  152, 788, 739, 601, 602, 170, 171, 418, 1160, 1622,
3887  1173, 175, 176, 611, 612, 521, 1189, 532, 1710, 533,
3888  1714, 757, 1718, 534, 1722, 578, 1726, 556, 1961, 561,
3889  1759, 1643, 1644, 566, 1760, 180, 181, 571, 1761, 1222,
3890  796, 723, 724, 151, 152, 834, 1232, 601, 602, 579,
3891  1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 757, 1711,
3892  580, 1715, 1759, 1719, 581, 1723, 1760, 1727, 185, 186,
3893  1761, 856, 818, 819, 582, 820, 2045, 800, 1122, 190,
3894  191, 589, 151, 152, 1123, 1124, 601, 602, 153, 154,
3895  1125, 1126, 591, 881, 195, 196, 611, 612, 1193, 1194,
3896  590, 1195, 892, 211, 212, 1442, 240, 241, 151, 152,
3897  1430, 1431, 796, 723, 724, 151, 152, 592, 905, 601,
3898  602, 259, 260, 287, 288, 338, 339, 916, 593, 611,
3899  612, 343, 344, 348, 349, 594, 1204, 353, 354, 358,
3900  359, 510, 935, 389, 390, 423, 424, 619, 871, 439,
3901  440, 945, 2056, 626, 1762, 627, 1763, 628, 1764, 629,
3902  1765, 1190, 1766, 1383, 1767, 630, 1768, 633, 1769, 631,
3903  1770, 634, 1771, 2084, 1772, 632, 1773, 635, 1774, 648,
3904  1775, 990, 1776, 656, 1777, 584, 1762, 668, 1763, 669,
3905  1764, 667, 1765, 1422, 1766, 670, 1767, 671, 1768, 674,
3906  1769, 1443, 1770, 684, 1771, 685, 1772, 686, 1773, 1466,
3907  1774, 688, 1775, 691, 1776, 695, 1777, 444, 445, 692,
3908  449, 450, 636, 1038, 454, 455, 459, 460, 494, 495,
3909  1263, 693, 1046, 489, 490, 551, 552, 694, 573, 574,
3910  1122, 651, 2154, 1374, 151, 152, 1123, 1124, 601, 602,
3911  153, 154, 1125, 1126, 706, 2162, 598, 599, 611, 612,
3912  608, 609, 660, 661, 699, 700, 1166, 1167, 1567, 715,
3913  2167, 710, 711, 1413, 735, 736, 777, 778, 782, 783,
3914  791, 792, 835, 836, 1440, 857, 858, 867, 868, 1457,
3915  707, 1864, 708, 1865, 897, 1866, 718, 1867, 719, 1868,
3916  742, 1869, 1310, 1870, 2180, 1871, 743, 1872, 750, 1873,
3917  761, 1874, 767, 1875, 768, 1876, 770, 1877, 745, 1878,
3918  790, 1879, 774, 1880, 789, 1881, 802, 1882, 827, 1883,
3919  805, 1884, 828, 1885, 831, 1886, 841, 1887, 845, 1888,
3920  840, 1889, 847, 1890, 1202, 2218, 1101, 1864, 812, 1865,
3921  849, 1866, 850, 1867, 853, 1868, 862, 1869, 873, 1870,
3922  874, 1871, 2182, 1872, 863, 1873, 875, 1874, 878, 1875,
3923  1132, 1876, 887, 1877, 888, 1878, 893, 1879, 897, 1880,
3924  900, 1881, 901, 1882, 1171, 1883, 894, 1884, 902, 1885,
3925  911, 1886, 912, 1887, 1589, 1888, 1864, 1889, 1865, 1890,
3926  1866, 917, 1867, 918, 1868, 924, 1869, 929, 1870, 941,
3927  1871, 921, 1872, 1220, 1873, 942, 1874, 947, 1875, 946,
3928  1876, 959, 1877, 976, 1878, 983, 1879, 992, 1880, 950,
3929  1881, 2199, 1882, 1001, 1883, 1015, 1884, 1035, 1885, 1007,
3930  1886, 1010, 1887, 1022, 1888, 1034, 1889, 1563, 1890, 1864,
3931  1039, 1865, 1052, 1866, 978, 1867, 984, 1868, 1058, 1869,
3932  1067, 1870, 1075, 1871, 1076, 1872, 1072, 1873, 1081, 1874,
3933  1017, 1875, 1068, 1876, 1084, 1877, 1029, 1878, 1104, 1879,
3934  1105, 1880, 1113, 1881, 1110, 1882, 2201, 1883, 1864, 1884,
3935  1865, 1885, 1866, 1886, 1867, 1887, 1868, 1888, 1869, 1889,
3936  1870, 1890, 1871, 1060, 1872, 1145, 1873, 1114, 1874, 1150,
3937  1875, 1191, 1876, 1243, 1877, 1204, 1878, 1244, 1879, 1245,
3938  1880, 1246, 1881, 1257, 1882, 1258, 1883, 2203, 1884, 1864,
3939  1885, 1865, 1886, 1866, 1887, 1867, 1888, 1868, 1889, 1869,
3940  1890, 1870, 1247, 1871, 1274, 1872, 1281, 1873, 1282, 1874,
3941  1284, 1875, 1291, 1876, 1307, 1877, 1280, 1878, 2245, 1879,
3942  1864, 1880, 1865, 1881, 1866, 1882, 1867, 1883, 1868, 1884,
3943  1869, 1885, 1870, 1886, 1871, 1887, 1872, 1888, 1873, 1889,
3944  1874, 1890, 1875, 1311, 1876, 1234, 1877, 1317, 1878, 1334,
3945  1879, 1233, 1880, 1318, 1881, 1319, 1882, 1320, 1883, 1321,
3946  1884, 1333, 1885, 1336, 1886, 1339, 1887, 1340, 1888, 1341,
3947  1889, 1264, 1890, 882, 883, 906, 907, 1122, 930, 931,
3948  1382, 151, 152, 1123, 1124, 601, 602, 153, 154, 1125,
3949  1126, 936, 937, 954, 955, 611, 612, 960, 961, 966,
3950  967, 1127, 1128, 971, 972, 81, 1265, 82, 83, 84,
3951  1421, 85, 86, 87, 1347, 88, 89, 90, 1435, 91,
3952  92, 93, 1350, 94, 95, 1122, 1465, 1351, 921, 151,
3953  152, 1123, 1124, 601, 602, 153, 154, 1125, 1126, 996,
3954  997, 1002, 1003, 611, 612, 1047, 1048, 1212, 1213, 1093,
3955  1094, 1117, 1118, 1151, 1152, 1161, 1162, 1207, 1208, 1252,
3956  1253, 1292, 1293, 1326, 1327, 1375, 1376, 1390, 1391, 1399,
3957  1400, 1414, 1415, 950, 1425, 1426, 1458, 1459, 1482, 1483,
3958  1495, 1496, 1528, 1529, 1549, 1550, 1570, 1571, 1581, 1582,
3959  1640, 1641, 1680, 1681, 1832, 1833, 1929, 1930, 1956, 1957,
3960  1986, 1987, 1990, 1991, 1994, 1995, 1998, 1999, 2046, 2047,
3961  2051, 2052, 2059, 2060, 2064, 2065, 2069, 2070, 2074, 2075,
3962  2079, 2080, 2114, 2115, 2117, 2118, 2144, 2145, 2149, 2150,
3963  2252, 2253, 1741, 2265, 2266, 2274, 2275, 2294, 2295, 1352,
3964  1355, 2129, 1357, 1298, 1297, 1363, 1366, 1384, 1385, 1397,
3965  1398, 1444, 1477, 1489, 1490, 1493, 1515, 1535, 1597, 1526,
3966  1525, 1537, 1536, 1538, 1539, 1542, 1540, 1541, 1446, 1548,
3967  1507, 1568, 1543, 1569, 1578, 1577, 1579, 1580, 1590, 1594,
3968  1595, 1596, 1600, 1601, 1605, 1602, 1609, 1610, 1611, 1612,
3969  1690, 1614, 1665, 1666, 1613, 1689, 1686, 1691, 1692, 1693,
3970  1694, 1695, 1696, 1697, 1698, 1728, 1742, 1699, 1708, 1712,
3971  1716, 1588, 1667, 1720, 1724, 1729, 1730, 1731, 1734, 1735,
3972  1736, 1737, 1738, 1739, 1740, 1746, 1817, 1747, 1758, 1816,
3973  1828, 1850, 1820, 1821, 1822, 1823, 1824, 2130, 1825, 1826,
3974  1827, 1837, 1838, 1852, 1854, 1924, 1856, 1858, 1946, 1947,
3975  1952, 1953, 1963, 1964, 1967, 1968, 1979, 1971, 1985, 1972,
3976  1989, 1975, 1976, 1993, 1983, 1997, 2001, 2031, 1980, 2032,
3977  2033, 2028, 2034, 2035, 2037, 2042, 2086, 2058, 2087, 2088,
3978  2090, 2092, 2140, 2094, 2134, 2089, 2139, 2124, 2156, 2170,
3979  1733, 2091, 2171, 2141, 2161, 2142, 2172, 2093, 2173, 2179,
3980  2178, 2184, 2185, 2187, 2188, 2189, 2198, 2205, 2206, 2208,
3981  2209, 2210, 2212, 2220, 2211, 2222, 2213, 2228, 2225, 2240,
3982  2226, 2247, 2214, 2241, 2227, 2248, 2235, 2242, 2263, 2264,
3983  2243, 2249, 1496, 2282, 2280, 2292, 2284, 2315, 2316, 2317,
3984  2285, 2319, 2320, 2321, 2329, 2322, 2325, 2326, 2328, 2337,
3985  2327, 2341, 2340, 2344, 2345, 2332, 2346, 2347, 2339, 2350,
3986  2351, 2352, 117, 149, 517, 40, 264, 595, 522, 239,
3987  337, 689, 657, 696, 438, 621, 787, 842, 1036, 1085,
3988  1115, 1342, 1344, 1077, 1314, 1312, 1358, 1360, 1545, 1040,
3989  771, 1285, 2286, 848, 2318, 1215, 1099, 1434, 1131, 2221,
3990  2310, 2262, 1928, 0, 0, 0, 0, 0, 0, 0,
3991  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3992  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3993  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3994  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3995  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3996  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3997  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3998  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3999  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4000  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4001  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4002  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4003  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4004  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4005  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4006  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4007  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4008  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4009  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4010  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4011  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4012  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4013  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4014  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4015  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4016  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4017  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4018  0, 0, 2283, 0, 0, 0, 0, 0, 0, 0,
4019  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4020  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4021  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4022  0, 0, 0, 0, 0, 0, 2323, 0, 0, 0,
4023  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4024  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4025  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4026  2338, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4027  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4028  2349, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4029  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4030  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4031  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4032  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4033  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4034  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4035  0, 0, 0, 0, 0, 0, 0, 2288, 2289, 0,
4036  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4037  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4038  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4039  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4040  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4041  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4042  2330, 2331
4043 };
4044 
4045 static const yytype_int16 yycheck[] =
4046 {
4047  200, 690, 368, 1316, 597, 248, 8, 250, 1252, 145,
4048  4, 377, 4, 4, 524, 1080, 382, 4, 78, 4,
4049  4, 6, 7, 1078, 10, 11, 1080, 4, 717, 6,
4050  7, 1086, 773, 1346, 1071, 4, 56, 6, 7, 51,
4051  60, 118, 67, 56, 1109, 147, 66, 60, 1080, 1362,
4052  10, 11, 34, 66, 111, 1109, 67, 67, 150, 67,
4053  80, 1116, 10, 11, 10, 754, 659, 80, 150, 150,
4054  52, 10, 11, 1811, 10, 1813, 96, 1109, 10, 11,
4055  145, 148, 1326, 96, 66, 148, 145, 597, 46, 4,
4056  48, 149, 74, 4, 4, 150, 4, 280, 896, 6,
4057  7, 1788, 84, 1790, 86, 698, 4, 1794, 66, 4,
4058  246, 1148, 248, 1425, 250, 1802, 98, 1804, 76, 1806,
4059  102, 1808, 104, 36, 106, 38, 108, 40, 1815, 42,
4060  4, 1375, 4, 4, 717, 237, 94, 120, 214, 1180,
4061  4, 4, 100, 1082, 6, 4, 1390, 1348, 0, 659,
4062  4, 2224, 335, 66, 92, 844, 73, 145, 72, 85,
4063  236, 99, 88, 1364, 78, 82, 6, 7, 1406, 1907,
4064  1414, 754, 1111, 10, 11, 1862, 69, 90, 49, 10,
4065  75, 25, 97, 169, 170, 1226, 93, 95, 698, 61,
4066  556, 177, 178, 91, 394, 561, 10, 333, 1510, 53,
4067  566, 278, 61, 295, 1942, 272, 2279, 167, 168, 272,
4068  291, 85, 1450, 1250, 1458, 273, 416, 299, 81, 167,
4069  168, 167, 168, 87, 14, 468, 281, 470, 428, 472,
4070  295, 167, 168, 335, 1547, 167, 168, 77, 1482, 101,
4071  299, 303, 299, 15, 336, 1932, 157, 157, 31, 1936,
4072  1423, 1938, 312, 1940, 336, 336, 10, 11, 1313, 152,
4073  153, 6, 155, 773, 464, 2003, 2004, 2005, 2006, 2007,
4074  2008, 231, 1275, 2011, 2012, 2013, 2014, 2015, 2016, 291,
4075  2018, 336, 1080, 231, 1528, 231, 2024, 1324, 1343, 1354,
4076  57, 304, 231, 281, 1467, 231, 235, 1984, 305, 231,
4077  1354, 1042, 47, 2041, 1359, 1308, 300, 327, 307, 329,
4078  335, 331, 121, 333, 327, 300, 329, 22, 331, 296,
4079  333, 88, 1354, 292, 335, 335, 1570, 335, 310, 309,
4080  167, 168, 468, 304, 470, 4, 472, 1581, 2025, 2026,
4081  2027, 332, 334, 330, 328, 5, 2033, 2034, 179, 180,
4082  308, 1388, 5, 167, 168, 83, 5, 2095, 2096, 2097,
4083  2098, 5, 206, 2101, 2102, 209, 35, 2105, 212, 966,
4084  1026, 197, 198, 2111, 2112, 2113, 5, 1066, 311, 205,
4085  163, 164, 2120, 519, 158, 306, 169, 170, 524, 163,
4086  164, 1080, 3, 306, 231, 16, 3, 18, 123, 996,
4087  1056, 232, 233, 177, 178, 2143, 127, 161, 162, 163,
4088  164, 68, 33, 131, 71, 169, 170, 231, 34, 135,
4089  1109, 175, 176, 308, 152, 153, 626, 155, 167, 168,
4090  169, 170, 163, 164, 10, 635, 52, 12, 13, 441,
4091  442, 443, 444, 1480, 175, 176, 10, 690, 2186, 1042,
4092  66, 139, 2190, 10, 440, 10, 195, 196, 74, 163,
4093  164, 597, 6, 202, 203, 169, 170, 8, 84, 8,
4094  86, 671, 61, 1066, 10, 11, 169, 170, 678, 10,
4095  11, 46, 98, 48, 10, 11, 102, 1080, 104, 228,
4096  106, 36, 108, 38, 328, 40, 1708, 42, 10, 11,
4097  1712, 66, 195, 196, 1716, 330, 1819, 334, 1720, 163,
4098  164, 76, 1724, 167, 168, 332, 1109, 97, 718, 719,
4099  81, 66, 6, 659, 10, 11, 310, 1037, 2215, 94,
4100  10, 11, 1042, 226, 227, 100, 2274, 243, 1748, 32,
4101  1750, 91, 1752, 743, 1754, 90, 1756, 253, 3, 255,
4102  6, 257, 57, 259, 690, 261, 1066, 263, 88, 163,
4103  164, 761, 698, 167, 168, 10, 11, 335, 1078, 275,
4104  1080, 10, 11, 177, 178, 67, 1086, 8, 1671, 8,
4105  1673, 717, 1675, 8, 1677, 49, 1679, 10, 1832, 10,
4106  281, 199, 200, 10, 285, 10, 11, 10, 289, 1109,
4107  160, 161, 162, 163, 164, 805, 1116, 167, 168, 47,
4108  218, 219, 220, 221, 222, 223, 224, 225, 754, 1671,
4109  101, 1673, 281, 1675, 95, 1677, 285, 1679, 10, 11,
4110  289, 831, 152, 153, 77, 155, 1949, 773, 159, 10,
4111  11, 41, 163, 164, 165, 166, 167, 168, 169, 170,
4112  171, 172, 43, 853, 10, 11, 177, 178, 152, 153,
4113  8, 155, 862, 10, 11, 1354, 10, 11, 163, 164,
4114  191, 192, 160, 161, 162, 163, 164, 39, 878, 167,
4115  168, 10, 11, 10, 11, 10, 11, 887, 37, 177,
4116  178, 10, 11, 10, 11, 67, 217, 10, 11, 10,
4117  11, 335, 902, 10, 11, 10, 11, 312, 844, 10,
4118  11, 911, 1956, 6, 405, 6, 407, 6, 409, 6,
4119  411, 1087, 413, 1316, 415, 85, 417, 35, 419, 87,
4120  421, 53, 423, 424, 425, 75, 427, 6, 429, 6,
4121  431, 941, 433, 67, 435, 335, 405, 3, 407, 336,
4122  409, 89, 411, 1346, 413, 3, 415, 30, 417, 10,
4123  419, 1354, 421, 8, 423, 8, 425, 8, 427, 1362,
4124  429, 99, 431, 107, 433, 67, 435, 10, 11, 109,
4125  10, 11, 92, 983, 10, 11, 10, 11, 10, 11,
4126  1156, 105, 992, 6, 7, 10, 11, 103, 10, 11,
4127  159, 335, 2046, 1313, 163, 164, 165, 166, 167, 168,
4128  169, 170, 171, 172, 336, 2059, 10, 11, 177, 178,
4129  10, 11, 10, 11, 10, 11, 185, 186, 1517, 84,
4130  2074, 10, 11, 1343, 10, 11, 10, 11, 10, 11,
4131  10, 11, 10, 11, 1354, 10, 11, 10, 11, 1359,
4132  8, 351, 8, 353, 213, 355, 3, 357, 3, 359,
4133  336, 361, 1228, 363, 364, 365, 6, 367, 60, 369,
4134  6, 371, 3, 373, 336, 375, 73, 377, 82, 379,
4135  8, 381, 301, 383, 93, 385, 297, 387, 8, 389,
4136  24, 391, 293, 393, 21, 395, 85, 397, 5, 399,
4137  61, 401, 83, 403, 1104, 2149, 1042, 351, 88, 353,
4138  6, 355, 277, 357, 20, 359, 6, 361, 154, 363,
4139  8, 365, 366, 367, 144, 369, 70, 371, 28, 373,
4140  1066, 375, 6, 377, 144, 379, 302, 381, 213, 383,
4141  89, 385, 79, 387, 1080, 389, 110, 391, 23, 393,
4142  6, 395, 50, 397, 1547, 399, 351, 401, 353, 403,
4143  355, 298, 357, 44, 359, 44, 361, 8, 363, 6,
4144  365, 210, 367, 1109, 369, 279, 371, 44, 373, 294,
4145  375, 8, 377, 6, 379, 6, 381, 29, 383, 207,
4146  385, 386, 387, 8, 389, 6, 391, 145, 393, 335,
4147  395, 319, 397, 335, 399, 8, 401, 1517, 403, 351,
4148  71, 353, 335, 355, 299, 357, 68, 359, 6, 361,
4149  45, 363, 8, 365, 145, 367, 158, 369, 45, 371,
4150  295, 373, 315, 375, 111, 377, 299, 379, 6, 381,
4151  144, 383, 8, 385, 45, 387, 388, 389, 351, 391,
4152  353, 393, 355, 395, 357, 397, 359, 399, 361, 401,
4153  363, 403, 365, 291, 367, 317, 369, 51, 371, 8,
4154  373, 8, 375, 8, 377, 217, 379, 3, 381, 3,
4155  383, 3, 385, 6, 387, 156, 389, 390, 391, 351,
4156  393, 353, 395, 355, 397, 357, 399, 359, 401, 361,
4157  403, 363, 313, 365, 3, 367, 6, 369, 5, 371,
4158  69, 373, 8, 375, 3, 377, 300, 379, 380, 381,
4159  351, 383, 353, 385, 355, 387, 357, 389, 359, 391,
4160  361, 393, 363, 395, 365, 397, 367, 399, 369, 401,
4161  371, 403, 373, 336, 375, 295, 377, 6, 379, 234,
4162  381, 150, 383, 8, 385, 8, 387, 8, 389, 321,
4163  391, 8, 393, 148, 395, 320, 397, 296, 399, 336,
4164  401, 150, 403, 10, 11, 10, 11, 159, 10, 11,
4165  1316, 163, 164, 165, 166, 167, 168, 169, 170, 171,
4166  172, 10, 11, 10, 11, 177, 178, 10, 11, 10,
4167  11, 183, 184, 10, 11, 122, 299, 124, 125, 126,
4168  1346, 128, 129, 130, 8, 132, 133, 134, 1354, 136,
4169  137, 138, 300, 140, 141, 159, 1362, 8, 210, 163,
4170  164, 165, 166, 167, 168, 169, 170, 171, 172, 10,
4171  11, 10, 11, 177, 178, 10, 11, 181, 182, 10,
4172  11, 10, 11, 10, 11, 10, 11, 10, 11, 10,
4173  11, 10, 11, 10, 11, 10, 11, 10, 11, 10,
4174  11, 10, 11, 207, 10, 11, 10, 11, 10, 11,
4175  232, 233, 10, 11, 10, 11, 10, 11, 10, 11,
4176  10, 11, 173, 174, 10, 11, 10, 11, 10, 11,
4177  10, 11, 10, 11, 10, 11, 10, 11, 10, 11,
4178  10, 11, 10, 11, 10, 11, 10, 11, 10, 11,
4179  10, 11, 10, 11, 10, 11, 244, 245, 10, 11,
4180  10, 11, 1698, 10, 11, 10, 11, 10, 11, 154,
4181  6, 2030, 336, 291, 150, 8, 292, 8, 323, 316,
4182  8, 8, 325, 318, 6, 10, 3, 314, 1558, 151,
4183  296, 157, 8, 6, 8, 151, 8, 300, 281, 8,
4184  150, 292, 336, 151, 149, 322, 6, 6, 242, 3,
4185  8, 8, 324, 8, 282, 8, 8, 6, 6, 6,
4186  3, 151, 8, 8, 326, 241, 201, 8, 8, 8,
4187  8, 8, 8, 8, 8, 3, 267, 10, 10, 10,
4188  10, 1547, 1612, 10, 10, 10, 8, 10, 6, 6,
4189  6, 6, 6, 6, 6, 3, 247, 8, 8, 6,
4190  269, 276, 8, 8, 8, 8, 8, 2030, 8, 8,
4191  8, 8, 6, 231, 231, 438, 231, 231, 8, 249,
4192  254, 271, 8, 271, 256, 271, 264, 258, 8, 271,
4193  8, 260, 271, 8, 262, 8, 406, 436, 271, 3,
4194  10, 434, 10, 414, 418, 430, 6, 268, 432, 6,
4195  6, 6, 420, 408, 8, 282, 416, 382, 156, 8,
4196  1690, 286, 8, 422, 270, 426, 8, 290, 8, 362,
4197  360, 368, 370, 374, 376, 378, 384, 392, 394, 400,
4198  402, 404, 3, 248, 398, 148, 410, 148, 272, 352,
4199  272, 8, 412, 354, 272, 8, 272, 356, 2217, 250,
4200  358, 396, 233, 6, 372, 10, 8, 380, 8, 8,
4201  428, 246, 6, 6, 3, 157, 8, 8, 6, 6,
4202  149, 235, 8, 8, 8, 149, 8, 10, 149, 6,
4203  8, 274, 40, 60, 406, 25, 156, 512, 420, 134,
4204  224, 639, 586, 653, 312, 528, 754, 814, 980, 1031,
4205  1062, 1268, 1271, 1019, 1240, 1237, 1301, 1304, 1511, 987,
4206  747, 1197, 2252, 822, 2286, 1109, 1042, 1354, 1066, 2156,
4207  2279, 2217, 1798, -1, -1, -1, -1, -1, -1, -1,
4208  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4209  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4210  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4211  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4212  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4213  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4214  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4215  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4216  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4217  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4218  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4219  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4220  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4221  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4222  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4223  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4224  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4225  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4226  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4227  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4228  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4229  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4230  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4231  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4232  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4233  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4234  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4235  -1, -1, 2248, -1, -1, -1, -1, -1, -1, -1,
4236  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4237  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4238  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4239  -1, -1, -1, -1, -1, -1, 2292, -1, -1, -1,
4240  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4241  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4242  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4243  2326, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4244  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4245  2346, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4246  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4247  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4248  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4249  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4250  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4251  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4252  -1, -1, -1, -1, -1, -1, -1, 2257, 2258, -1,
4253  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4254  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4255  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4256  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4257  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4258  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4259  2320, 2321
4260 };
4261 
4262 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
4263  symbol of state STATE-NUM. */
4264 static const yytype_uint16 yystos[] =
4265 {
4266  0, 12, 13, 446, 447, 448, 0, 120, 455, 456,
4267  1087, 1088, 14, 449, 15, 453, 454, 303, 457, 458,
4268  10, 11, 1089, 1090, 1091, 10, 11, 450, 451, 452,
4269  305, 537, 538, 10, 11, 459, 460, 461, 1092, 1093,
4270  455, 307, 591, 592, 10, 11, 539, 540, 541, 56,
4271  60, 66, 80, 96, 304, 327, 329, 331, 333, 462,
4272  463, 464, 465, 466, 481, 482, 487, 488, 493, 494,
4273  499, 500, 505, 506, 511, 512, 517, 518, 523, 524,
4274  121, 122, 124, 125, 126, 128, 129, 130, 132, 133,
4275  134, 136, 137, 138, 140, 141, 1094, 1095, 1096, 1097,
4276  1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107,
4277  1108, 1109, 1110, 1111, 1112, 1113, 1114, 453, 309, 643,
4278  644, 10, 11, 593, 594, 595, 36, 38, 40, 42,
4279  66, 90, 306, 542, 543, 544, 545, 546, 551, 552,
4280  558, 559, 565, 566, 572, 573, 577, 578, 304, 464,
4281  31, 163, 164, 169, 170, 467, 468, 469, 1080, 1385,
4282  1386, 1387, 1412, 1413, 1414, 10, 11, 483, 484, 485,
4283  10, 11, 489, 490, 491, 10, 11, 495, 496, 497,
4284  10, 11, 501, 502, 503, 10, 11, 507, 508, 509,
4285  10, 11, 513, 514, 515, 10, 11, 519, 520, 521,
4286  22, 525, 1075, 5, 5, 5, 5, 5, 311, 738,
4287  739, 10, 11, 645, 646, 647, 46, 48, 66, 76,
4288  94, 100, 308, 596, 597, 598, 599, 600, 605, 606,
4289  611, 612, 617, 618, 623, 624, 629, 630, 306, 544,
4290  10, 11, 547, 548, 549, 553, 554, 560, 561, 567,
4291  568, 574, 1385, 579, 1075, 1084, 1085, 3, 3, 10,
4292  11, 470, 471, 472, 469, 4, 61, 486, 4, 328,
4293  492, 4, 330, 498, 4, 332, 504, 4, 334, 510,
4294  4, 81, 516, 4, 97, 522, 1084, 10, 11, 526,
4295  527, 528, 123, 127, 131, 135, 139, 740, 741, 34,
4296  52, 66, 74, 84, 86, 98, 102, 104, 106, 108,
4297  310, 648, 649, 650, 651, 652, 657, 658, 663, 664,
4298  669, 670, 675, 676, 681, 682, 698, 699, 705, 706,
4299  712, 713, 719, 720, 724, 725, 308, 598, 10, 11,
4300  601, 602, 603, 10, 11, 607, 608, 609, 10, 11,
4301  613, 614, 615, 10, 11, 619, 620, 621, 10, 11,
4302  625, 626, 627, 631, 1075, 4, 91, 550, 10, 556,
4303  175, 176, 555, 1385, 1415, 1416, 1417, 10, 563, 562,
4304  1385, 1415, 10, 570, 569, 1385, 1415, 10, 575, 10,
4305  11, 580, 581, 582, 6, 8, 441, 442, 443, 444,
4306  1086, 8, 8, 57, 88, 473, 474, 475, 476, 61,
4307  328, 330, 332, 334, 81, 97, 6, 67, 335, 529,
4308  530, 531, 532, 10, 11, 743, 744, 745, 25, 206,
4309  209, 212, 742, 1078, 1347, 1353, 1358, 310, 650, 10,
4310  11, 653, 654, 655, 10, 11, 659, 660, 661, 10,
4311  11, 665, 666, 667, 10, 11, 671, 672, 673, 10,
4312  11, 677, 678, 679, 32, 683, 1081, 700, 701, 707,
4313  708, 714, 715, 721, 1385, 726, 1075, 4, 49, 604,
4314  6, 47, 610, 6, 101, 616, 4, 95, 622, 6,
4315  7, 77, 628, 1082, 10, 11, 632, 633, 634, 91,
4316  557, 1082, 3, 564, 1082, 571, 1082, 6, 576, 67,
4317  335, 583, 584, 585, 586, 1084, 57, 475, 477, 478,
4318  1084, 67, 531, 533, 534, 78, 312, 746, 747, 748,
4319  749, 1084, 8, 8, 8, 4, 85, 656, 4, 87,
4320  662, 4, 75, 668, 4, 35, 674, 4, 53, 680,
4321  1084, 10, 11, 684, 685, 686, 10, 703, 702, 1385,
4322  1415, 10, 710, 709, 1385, 1415, 10, 717, 716, 1385,
4323  1415, 10, 722, 10, 11, 727, 728, 729, 49, 47,
4324  101, 95, 77, 67, 335, 635, 636, 637, 638, 41,
4325  8, 43, 39, 37, 67, 585, 587, 588, 10, 11,
4326  480, 167, 168, 479, 1385, 1394, 1395, 1396, 10, 11,
4327  536, 177, 178, 535, 1385, 1394, 1418, 1419, 1420, 312,
4328  72, 748, 1048, 1049, 750, 751, 6, 6, 6, 6,
4329  85, 87, 75, 35, 53, 6, 92, 99, 687, 688,
4330  689, 690, 704, 1082, 711, 1082, 718, 1082, 6, 723,
4331  67, 335, 730, 731, 732, 733, 67, 637, 639, 640,
4332  10, 11, 590, 589, 1385, 1394, 1418, 89, 3, 336,
4333  3, 30, 1050, 1079, 10, 756, 16, 18, 33, 752,
4334  753, 754, 755, 1084, 8, 8, 8, 1084, 99, 689,
4335  691, 107, 109, 105, 103, 67, 732, 734, 735, 10,
4336  11, 642, 641, 1385, 1394, 1418, 336, 8, 8, 1084,
4337  10, 11, 1051, 1052, 1053, 84, 757, 758, 3, 3,
4338  1084, 10, 11, 161, 162, 692, 693, 694, 695, 1379,
4339  1380, 1381, 1385, 1412, 1415, 10, 11, 737, 736, 1385,
4340  1394, 1418, 336, 6, 73, 82, 1054, 1055, 1056, 1057,
4341  60, 773, 774, 759, 760, 761, 1080, 1385, 1412, 1084,
4342  1084, 6, 6, 7, 93, 696, 697, 3, 336, 1084,
4343  73, 1056, 1058, 1059, 301, 779, 780, 10, 11, 775,
4344  776, 777, 10, 11, 762, 763, 764, 761, 1084, 93,
4345  8, 10, 11, 1061, 1062, 1063, 160, 1060, 1350, 1379,
4346  1385, 1394, 297, 857, 858, 24, 781, 1077, 4, 61,
4347  778, 85, 88, 765, 766, 767, 768, 83, 152, 153,
4348  155, 1064, 1065, 1066, 1067, 1068, 1069, 8, 293, 919,
4349  920, 21, 859, 1074, 1084, 10, 11, 782, 783, 784,
4350  61, 85, 767, 769, 770, 5, 1070, 83, 1066, 6,
4351  277, 981, 982, 20, 921, 1071, 1084, 10, 11, 860,
4352  861, 862, 6, 144, 785, 786, 787, 10, 11, 772,
4353  771, 1385, 1412, 154, 8, 70, 1025, 1026, 28, 983,
4354  1072, 1084, 10, 11, 922, 923, 924, 6, 144, 863,
4355  864, 865, 1084, 302, 110, 799, 800, 213, 788, 1356,
4356  89, 79, 23, 1027, 1076, 1084, 10, 11, 984, 985,
4357  986, 6, 50, 925, 926, 927, 1084, 298, 44, 877,
4358  878, 210, 866, 1352, 44, 815, 816, 801, 1356, 8,
4359  10, 11, 789, 790, 791, 1084, 10, 11, 1028, 1029,
4360  1030, 6, 279, 987, 988, 1084, 294, 44, 939, 940,
4361  207, 928, 1346, 890, 10, 11, 879, 880, 881, 8,
4362  10, 11, 867, 868, 869, 828, 10, 11, 817, 818,
4363  819, 10, 11, 802, 803, 804, 6, 145, 299, 792,
4364  793, 794, 795, 6, 68, 71, 1031, 1032, 1033, 1034,
4365  1084, 1023, 29, 989, 1073, 952, 10, 11, 941, 942,
4366  943, 8, 10, 11, 929, 930, 931, 335, 891, 892,
4367  319, 882, 883, 1137, 1138, 6, 145, 295, 870, 871,
4368  872, 873, 335, 829, 830, 820, 821, 1137, 111, 299,
4369  805, 806, 807, 808, 8, 145, 794, 796, 1084, 71,
4370  1033, 1035, 1036, 118, 278, 1024, 1084, 10, 11, 990,
4371  991, 992, 335, 953, 954, 944, 945, 1137, 6, 51,
4372  291, 932, 933, 934, 935, 893, 894, 45, 315, 884,
4373  1143, 1144, 158, 1179, 1348, 8, 145, 872, 874, 831,
4374  832, 45, 822, 1143, 111, 807, 809, 10, 231, 797,
4375  798, 1369, 1394, 10, 11, 1038, 1039, 1040, 1037, 1350,
4376  1379, 1385, 1394, 1418, 6, 144, 994, 995, 955, 956,
4377  45, 946, 1143, 8, 51, 934, 936, 10, 11, 896,
4378  897, 898, 159, 165, 166, 171, 172, 183, 184, 895,
4379  1349, 1352, 1385, 1388, 1389, 1390, 1394, 1397, 1398, 1399,
4380  1406, 1407, 1408, 1412, 1418, 317, 885, 1149, 1150, 1179,
4381  8, 10, 11, 1139, 1140, 1141, 10, 875, 876, 1369,
4382  1394, 10, 11, 834, 835, 836, 185, 186, 833, 1349,
4383  1356, 1385, 1388, 1394, 1406, 1412, 1418, 1424, 1425, 1426,
4384  823, 1149, 10, 11, 810, 811, 812, 813, 1369, 1394,
4385  1082, 8, 69, 152, 153, 155, 1041, 1042, 1043, 1044,
4386  1045, 1046, 1084, 1002, 217, 996, 1351, 10, 11, 958,
4387  959, 960, 181, 182, 957, 1346, 1349, 1382, 1383, 1384,
4388  1385, 1388, 1394, 1406, 1412, 1418, 947, 1149, 10, 937,
4389  938, 1369, 1394, 150, 295, 336, 899, 900, 901, 902,
4390  909, 910, 911, 8, 3, 3, 3, 313, 886, 1155,
4391  1156, 1179, 10, 11, 1145, 1146, 1147, 6, 156, 1115,
4392  1116, 1123, 1142, 1082, 150, 299, 336, 837, 838, 839,
4393  840, 847, 848, 849, 3, 824, 1155, 4, 300, 814,
4394  300, 6, 5, 1047, 69, 1043, 280, 335, 993, 1003,
4395  1004, 8, 10, 11, 997, 998, 999, 150, 291, 336,
4396  961, 962, 963, 964, 971, 972, 973, 3, 948, 1155,
4397  1082, 336, 901, 903, 910, 912, 913, 6, 8, 8,
4398  8, 321, 887, 1161, 1162, 1179, 10, 11, 1151, 1152,
4399  1153, 1115, 1148, 8, 234, 1359, 148, 1117, 1118, 320,
4400  296, 336, 839, 841, 848, 850, 851, 8, 825, 1161,
4401  300, 8, 154, 1005, 1006, 6, 1001, 336, 963, 965,
4402  972, 974, 975, 8, 949, 1161, 292, 10, 11, 904,
4403  905, 906, 907, 1369, 1394, 10, 11, 915, 916, 917,
4404  914, 1348, 1385, 1418, 8, 323, 888, 1167, 1168, 1179,
4405  10, 11, 1157, 1158, 1159, 1115, 1154, 316, 8, 10,
4406  11, 1124, 1125, 1126, 1119, 1120, 10, 11, 842, 843,
4407  844, 845, 1369, 1394, 10, 11, 853, 854, 855, 852,
4408  1348, 1385, 1418, 826, 1167, 10, 11, 1008, 1009, 1010,
4409  191, 192, 1007, 1349, 1351, 1385, 1388, 1391, 1392, 1393,
4410  1394, 1406, 1412, 1418, 8, 145, 281, 1000, 1180, 1181,
4411  10, 11, 966, 967, 968, 969, 1369, 1394, 10, 11,
4412  977, 978, 979, 976, 1348, 1385, 1418, 950, 1167, 4,
4413  6, 7, 296, 908, 1083, 918, 1115, 325, 889, 1173,
4414  1174, 1179, 10, 11, 1163, 1164, 1165, 1115, 1160, 318,
4415  6, 4, 157, 10, 1122, 232, 233, 1121, 1370, 1372,
4416  300, 846, 1083, 856, 1115, 827, 1173, 150, 336, 1011,
4417  1012, 1013, 1014, 1015, 1180, 3, 1182, 1183, 292, 970,
4418  1083, 980, 1115, 951, 1173, 296, 151, 1179, 10, 11,
4419  1169, 1170, 1171, 1115, 1166, 314, 8, 157, 6, 8,
4420  8, 300, 151, 336, 1180, 1014, 1016, 1017, 8, 10,
4421  11, 1185, 1186, 1187, 195, 196, 202, 203, 228, 1184,
4422  1345, 1354, 1371, 1394, 1409, 1410, 1411, 1412, 292, 151,
4423  10, 11, 1175, 1176, 1177, 1115, 1172, 322, 149, 6,
4424  6, 10, 11, 1019, 1020, 1021, 1018, 1348, 1385, 1418,
4425  242, 1188, 1189, 1190, 3, 8, 8, 1084, 1115, 1178,
4426  324, 8, 8, 1022, 1115, 282, 1195, 1191, 1192, 8,
4427  6, 6, 6, 326, 151, 243, 253, 255, 257, 259,
4428  261, 263, 275, 1196, 1197, 1198, 1222, 1223, 1235, 1236,
4429  1262, 1263, 1280, 1281, 1293, 1294, 1311, 1312, 1315, 1316,
4430  10, 11, 1194, 199, 200, 218, 219, 220, 221, 222,
4431  223, 224, 225, 1193, 1360, 1361, 1362, 1363, 1364, 1373,
4432  1374, 1375, 1376, 1377, 1378, 8, 8, 1084, 1199, 1200,
4433  1224, 1225, 1237, 1238, 1264, 1265, 1282, 1283, 1295, 1296,
4434  173, 174, 1313, 1403, 1404, 1405, 201, 1317, 1344, 241,
4435  3, 8, 8, 8, 8, 8, 8, 8, 8, 10,
4436  197, 198, 205, 1201, 1355, 1400, 1401, 1402, 10, 1226,
4437  1355, 1400, 10, 1239, 1355, 1400, 10, 1266, 1355, 1400,
4438  10, 1284, 1355, 1400, 10, 1297, 1355, 1400, 3, 10,
4439  8, 10, 1318, 1084, 6, 6, 6, 6, 6, 6,
4440  6, 1082, 267, 1202, 1204, 1205, 3, 8, 1204, 1227,
4441  1204, 1240, 1204, 1267, 1204, 1285, 1204, 1298, 8, 281,
4442  285, 289, 405, 407, 409, 411, 413, 415, 417, 419,
4443  421, 423, 425, 427, 429, 431, 433, 435, 1501, 1502,
4444  1503, 1506, 1507, 1510, 1511, 1514, 1515, 1518, 1519, 1521,
4445  1522, 1524, 1525, 1527, 1528, 1530, 1531, 1534, 1535, 1539,
4446  1540, 1542, 1543, 1545, 1546, 1548, 1549, 1551, 1552, 1554,
4447  1557, 1558, 1560, 1561, 1563, 1564, 6, 247, 1320, 1321,
4448  8, 8, 8, 8, 8, 8, 8, 8, 269, 1203,
4449  1210, 1211, 10, 11, 1206, 1207, 1208, 8, 6, 1210,
4450  1228, 1210, 1241, 1210, 1268, 1210, 1286, 1210, 1299, 1555,
4451  276, 1314, 231, 1505, 231, 1509, 231, 1513, 231, 1517,
4452  1501, 1520, 1501, 1523, 351, 353, 355, 357, 359, 361,
4453  363, 365, 367, 369, 371, 373, 375, 377, 379, 381,
4454  383, 385, 387, 389, 391, 393, 395, 397, 399, 401,
4455  403, 1427, 1428, 1431, 1434, 1436, 1438, 1440, 1442, 1444,
4456  1446, 1448, 1450, 1452, 1454, 1456, 1458, 1459, 1461, 1463,
4457  1465, 1467, 1469, 1471, 1472, 1478, 1486, 1489, 1492, 1495,
4458  1498, 1526, 1501, 1529, 438, 1532, 1538, 1536, 1538, 10,
4459  11, 1541, 1501, 1544, 1501, 1547, 1501, 1550, 1501, 1553,
4460  1427, 1559, 1427, 1562, 1501, 1565, 8, 249, 1327, 1328,
4461  1322, 1348, 254, 271, 1216, 1217, 10, 11, 1212, 1213,
4462  1214, 1115, 1209, 8, 271, 1229, 1230, 256, 271, 1242,
4463  1243, 258, 271, 1269, 1270, 260, 271, 1287, 1288, 264,
4464  271, 1300, 1301, 262, 1556, 8, 10, 11, 1504, 8,
4465  10, 11, 1508, 8, 10, 11, 1512, 8, 10, 11,
4466  1516, 406, 1501, 1445, 1437, 1439, 1443, 1447, 1449, 1487,
4467  1499, 1457, 1441, 1464, 1451, 1453, 1455, 1479, 1462, 1493,
4468  1490, 1496, 1429, 1432, 1435, 1466, 1468, 1470, 434, 1427,
4469  1474, 436, 3, 10, 10, 414, 1501, 418, 1501, 1501,
4470  1501, 1427, 430, 1334, 1329, 1348, 10, 11, 1323, 1324,
4471  1325, 10, 11, 1218, 1219, 1220, 1115, 1215, 268, 10,
4472  11, 1231, 1232, 1233, 10, 11, 1244, 1245, 1246, 10,
4473  11, 1271, 1272, 1273, 10, 11, 1289, 1290, 1291, 10,
4474  11, 1302, 1303, 1304, 424, 1501, 6, 432, 6, 282,
4475  6, 286, 6, 290, 408, 1427, 1427, 1427, 1427, 1427,
4476  1427, 1488, 1500, 1427, 1427, 1427, 1427, 1427, 1427, 1482,
4477  1427, 1494, 1491, 1497, 10, 11, 1430, 10, 11, 1433,
4478  1427, 1501, 1501, 1501, 382, 1460, 10, 11, 440, 1412,
4479  1418, 1473, 1475, 1476, 8, 1501, 1533, 1501, 1537, 416,
4480  420, 422, 426, 1427, 244, 245, 1319, 1335, 1336, 10,
4481  11, 1330, 1331, 1332, 1115, 1326, 156, 1127, 1128, 1133,
4482  1221, 270, 1115, 1234, 1247, 1248, 1274, 1115, 1292, 1305,
4483  8, 8, 8, 8, 1427, 1427, 1427, 1427, 360, 362,
4484  364, 1427, 366, 1427, 368, 370, 1427, 374, 376, 378,
4485  10, 11, 231, 235, 1480, 1483, 1484, 1485, 384, 386,
4486  1427, 388, 1427, 390, 1427, 392, 394, 1427, 400, 402,
4487  404, 398, 3, 410, 412, 1427, 1337, 1338, 1115, 1333,
4488  248, 1359, 148, 1129, 1130, 272, 272, 272, 148, 1249,
4489  1250, 148, 272, 1275, 1276, 272, 148, 272, 1306, 1307,
4490  352, 354, 356, 358, 1427, 380, 1427, 8, 8, 396,
4491  1477, 1501, 10, 11, 1340, 1341, 1342, 226, 227, 1339,
4492  1365, 1366, 1409, 1412, 250, 10, 11, 1134, 1135, 1136,
4493  1131, 1372, 1251, 1252, 10, 11, 1277, 1278, 1279, 1308,
4494  372, 1481, 6, 1082, 8, 428, 1189, 1343, 1084, 1084,
4495  4, 157, 10, 1132, 10, 11, 1254, 1255, 1256, 214,
4496  236, 1253, 1357, 1368, 1427, 10, 179, 180, 1309, 1310,
4497  1370, 1372, 1421, 1422, 1423, 380, 8, 8, 1195, 246,
4498  6, 6, 157, 1082, 1257, 8, 8, 149, 6, 3,
4499  1084, 1084, 149, 149, 273, 1258, 1259, 6, 1082, 149,
4500  8, 235, 1260, 1367, 8, 8, 8, 10, 1261, 1082,
4501  6, 8, 274
4502 };
4503 
4504 #define yyerrok (yyerrstatus = 0)
4505 #define yyclearin (yychar = YYEMPTY)
4506 #define YYEMPTY (-2)
4507 #define YYEOF 0
4508 
4509 #define YYACCEPT goto yyacceptlab
4510 #define YYABORT goto yyabortlab
4511 #define YYERROR goto yyerrorlab
4512 
4513 
4514 /* Like YYERROR except do call yyerror. This remains here temporarily
4515  to ease the transition to the new meaning of YYERROR, for GCC.
4516  Once GCC version 2 has supplanted version 1, this can go. */
4517 
4518 #define YYFAIL goto yyerrlab
4519 
4520 #define YYRECOVERING() (!!yyerrstatus)
4521 
4522 #define YYBACKUP(Token, Value) \
4523 do \
4524  if (yychar == YYEMPTY && yylen == 1) \
4525  { \
4526  yychar = (Token); \
4527  yylval = (Value); \
4528  yytoken = YYTRANSLATE (yychar); \
4529  YYPOPSTACK (1); \
4530  goto yybackup; \
4531  } \
4532  else \
4533  { \
4534  yyerror (&yylloc, osresult, parserData, osglData, osnlData, YY_("syntax error: cannot back up")); \
4535  YYERROR; \
4536  } \
4537 while (YYID (0))
4538 
4539 
4540 #define YYTERROR 1
4541 #define YYERRCODE 256
4542 
4543 
4544 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
4545  If N is 0, then set CURRENT to the empty location which ends
4546  the previous symbol: RHS[0] (always defined). */
4547 
4548 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
4549 #ifndef YYLLOC_DEFAULT
4550 # define YYLLOC_DEFAULT(Current, Rhs, N) \
4551  do \
4552  if (YYID (N)) \
4553  { \
4554  (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
4555  (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
4556  (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
4557  (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
4558  } \
4559  else \
4560  { \
4561  (Current).first_line = (Current).last_line = \
4562  YYRHSLOC (Rhs, 0).last_line; \
4563  (Current).first_column = (Current).last_column = \
4564  YYRHSLOC (Rhs, 0).last_column; \
4565  } \
4566  while (YYID (0))
4567 #endif
4568 
4569 
4570 /* YY_LOCATION_PRINT -- Print the location on the stream.
4571  This macro was not mandated originally: define only if we know
4572  we won't break user code: when these are the locations we know. */
4573 
4574 #ifndef YY_LOCATION_PRINT
4575 # if YYLTYPE_IS_TRIVIAL
4576 # define YY_LOCATION_PRINT(File, Loc) \
4577  fprintf (File, "%d.%d-%d.%d", \
4578  (Loc).first_line, (Loc).first_column, \
4579  (Loc).last_line, (Loc).last_column)
4580 # else
4581 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4582 # endif
4583 #endif
4584 
4585 
4586 /* YYLEX -- calling `yylex' with the right arguments. */
4587 
4588 #ifdef YYLEX_PARAM
4589 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
4590 #else
4591 # define YYLEX yylex (&yylval, &yylloc, scanner)
4592 #endif
4593 
4594 /* Enable debugging if requested. */
4595 #if YYDEBUG
4596 
4597 # ifndef YYFPRINTF
4598 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
4599 # define YYFPRINTF fprintf
4600 # endif
4601 
4602 # define YYDPRINTF(Args) \
4603 do { \
4604  if (yydebug) \
4605  YYFPRINTF Args; \
4606 } while (YYID (0))
4607 
4608 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4609 do { \
4610  if (yydebug) \
4611  { \
4612  YYFPRINTF (stderr, "%s ", Title); \
4613  yy_symbol_print (stderr, \
4614  Type, Value, Location, osresult, parserData, osglData, osnlData); \
4615  YYFPRINTF (stderr, "\n"); \
4616  } \
4617 } while (YYID (0))
4618 
4619 
4620 /*--------------------------------.
4621 | Print this symbol on YYOUTPUT. |
4622 `--------------------------------*/
4623 
4624 /*ARGSUSED*/
4625 #if (defined __STDC__ || defined __C99__FUNC__ \
4626  || defined __cplusplus || defined _MSC_VER)
4627 static void
4628 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, OSResult *osresult, OSrLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData)
4629 #else
4630 static void
4631 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, osresult, parserData, osglData, osnlData)
4632  FILE *yyoutput;
4633  int yytype;
4634  YYSTYPE const * const yyvaluep;
4635  YYLTYPE const * const yylocationp;
4636  OSResult *osresult;
4637  OSrLParserData *parserData;
4638  OSgLParserData *osglData;
4639  OSnLParserData *osnlData;
4640 #endif
4641 {
4642  if (!yyvaluep)
4643  return;
4644  YYUSE (yylocationp);
4645  YYUSE (osresult);
4646  YYUSE (parserData);
4647  YYUSE (osglData);
4648  YYUSE (osnlData);
4649 # ifdef YYPRINT
4650  if (yytype < YYNTOKENS)
4651  YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4652 # else
4653  YYUSE (yyoutput);
4654 # endif
4655  switch (yytype)
4656  {
4657  default:
4658  break;
4659  }
4660 }
4661 
4662 
4663 /*--------------------------------.
4664 | Print this symbol on YYOUTPUT. |
4665 `--------------------------------*/
4666 
4667 #if (defined __STDC__ || defined __C99__FUNC__ \
4668  || defined __cplusplus || defined _MSC_VER)
4669 static void
4670 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, OSResult *osresult, OSrLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData)
4671 #else
4672 static void
4673 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, osresult, parserData, osglData, osnlData)
4674  FILE *yyoutput;
4675  int yytype;
4676  YYSTYPE const * const yyvaluep;
4677  YYLTYPE const * const yylocationp;
4678  OSResult *osresult;
4679  OSrLParserData *parserData;
4680  OSgLParserData *osglData;
4681  OSnLParserData *osnlData;
4682 #endif
4683 {
4684  if (yytype < YYNTOKENS)
4685  YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
4686  else
4687  YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
4688 
4689  YY_LOCATION_PRINT (yyoutput, *yylocationp);
4690  YYFPRINTF (yyoutput, ": ");
4691  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, osresult, parserData, osglData, osnlData);
4692  YYFPRINTF (yyoutput, ")");
4693 }
4694 
4695 /*------------------------------------------------------------------.
4696 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
4697 | TOP (included). |
4698 `------------------------------------------------------------------*/
4699 
4700 #if (defined __STDC__ || defined __C99__FUNC__ \
4701  || defined __cplusplus || defined _MSC_VER)
4702 static void
4703 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
4704 #else
4705 static void
4706 yy_stack_print (yybottom, yytop)
4707  yytype_int16 *yybottom;
4708  yytype_int16 *yytop;
4709 #endif
4710 {
4711  YYFPRINTF (stderr, "Stack now");
4712  for (; yybottom <= yytop; yybottom++)
4713  {
4714  int yybot = *yybottom;
4715  YYFPRINTF (stderr, " %d", yybot);
4716  }
4717  YYFPRINTF (stderr, "\n");
4718 }
4719 
4720 # define YY_STACK_PRINT(Bottom, Top) \
4721 do { \
4722  if (yydebug) \
4723  yy_stack_print ((Bottom), (Top)); \
4724 } while (YYID (0))
4725 
4726 
4727 /*------------------------------------------------.
4728 | Report that the YYRULE is going to be reduced. |
4729 `------------------------------------------------*/
4730 
4731 #if (defined __STDC__ || defined __C99__FUNC__ \
4732  || defined __cplusplus || defined _MSC_VER)
4733 static void
4734 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, OSResult *osresult, OSrLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData)
4735 #else
4736 static void
4737 yy_reduce_print (yyvsp, yylsp, yyrule, osresult, parserData, osglData, osnlData)
4738  YYSTYPE *yyvsp;
4739  YYLTYPE *yylsp;
4740  int yyrule;
4741  OSResult *osresult;
4742  OSrLParserData *parserData;
4743  OSgLParserData *osglData;
4744  OSnLParserData *osnlData;
4745 #endif
4746 {
4747  int yynrhs = yyr2[yyrule];
4748  int yyi;
4749  unsigned long int yylno = yyrline[yyrule];
4750  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
4751  yyrule - 1, yylno);
4752  /* The symbols being reduced. */
4753  for (yyi = 0; yyi < yynrhs; yyi++)
4754  {
4755  YYFPRINTF (stderr, " $%d = ", yyi + 1);
4756  yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
4757  &(yyvsp[(yyi + 1) - (yynrhs)])
4758  , &(yylsp[(yyi + 1) - (yynrhs)]) , osresult, parserData, osglData, osnlData);
4759  YYFPRINTF (stderr, "\n");
4760  }
4761 }
4762 
4763 # define YY_REDUCE_PRINT(Rule) \
4764 do { \
4765  if (yydebug) \
4766  yy_reduce_print (yyvsp, yylsp, Rule, osresult, parserData, osglData, osnlData); \
4767 } while (YYID (0))
4768 
4769 /* Nonzero means print parse trace. It is left uninitialized so that
4770  multiple parsers can coexist. */
4771 int yydebug;
4772 #else /* !YYDEBUG */
4773 # define YYDPRINTF(Args)
4774 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4775 # define YY_STACK_PRINT(Bottom, Top)
4776 # define YY_REDUCE_PRINT(Rule)
4777 #endif /* !YYDEBUG */
4778 
4779 
4780 /* YYINITDEPTH -- initial size of the parser's stacks. */
4781 #ifndef YYINITDEPTH
4782 # define YYINITDEPTH 200
4783 #endif
4784 
4785 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
4786  if the built-in stack extension method is used).
4787 
4788  Do not make this value too large; the results are undefined if
4789  YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
4790  evaluated with infinite-precision integer arithmetic. */
4791 
4792 #ifndef YYMAXDEPTH
4793 # define YYMAXDEPTH 10000
4794 #endif
4795 
4796 
4797 
4798 #if YYERROR_VERBOSE
4799 
4800 # ifndef yystrlen
4801 # if defined __GLIBC__ && defined _STRING_H
4802 # define yystrlen strlen
4803 # else
4804 /* Return the length of YYSTR. */
4805 #if (defined __STDC__ || defined __C99__FUNC__ \
4806  || defined __cplusplus || defined _MSC_VER)
4807 static YYSIZE_T
4808 yystrlen (const char *yystr)
4809 #else
4810 static YYSIZE_T
4811 yystrlen (yystr)
4812  const char *yystr;
4813 #endif
4814 {
4815  YYSIZE_T yylen;
4816  for (yylen = 0; yystr[yylen]; yylen++)
4817  continue;
4818  return yylen;
4819 }
4820 # endif
4821 # endif
4822 
4823 # ifndef yystpcpy
4824 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4825 # define yystpcpy stpcpy
4826 # else
4827 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
4828  YYDEST. */
4829 #if (defined __STDC__ || defined __C99__FUNC__ \
4830  || defined __cplusplus || defined _MSC_VER)
4831 static char *
4832 yystpcpy (char *yydest, const char *yysrc)
4833 #else
4834 static char *
4835 yystpcpy (yydest, yysrc)
4836  char *yydest;
4837  const char *yysrc;
4838 #endif
4839 {
4840  char *yyd = yydest;
4841  const char *yys = yysrc;
4842 
4843  while ((*yyd++ = *yys++) != '\0')
4844  continue;
4845 
4846  return yyd - 1;
4847 }
4848 # endif
4849 # endif
4850 
4851 # ifndef yytnamerr
4852 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
4853  quotes and backslashes, so that it's suitable for yyerror. The
4854  heuristic is that double-quoting is unnecessary unless the string
4855  contains an apostrophe, a comma, or backslash (other than
4856  backslash-backslash). YYSTR is taken from yytname. If YYRES is
4857  null, do not copy; instead, return the length of what the result
4858  would have been. */
4859 static YYSIZE_T
4860 yytnamerr (char *yyres, const char *yystr)
4861 {
4862  if (*yystr == '"')
4863  {
4864  YYSIZE_T yyn = 0;
4865  char const *yyp = yystr;
4866 
4867  for (;;)
4868  switch (*++yyp)
4869  {
4870  case '\'':
4871  case ',':
4872  goto do_not_strip_quotes;
4873 
4874  case '\\':
4875  if (*++yyp != '\\')
4876  goto do_not_strip_quotes;
4877  /* Fall through. */
4878  default:
4879  if (yyres)
4880  yyres[yyn] = *yyp;
4881  yyn++;
4882  break;
4883 
4884  case '"':
4885  if (yyres)
4886  yyres[yyn] = '\0';
4887  return yyn;
4888  }
4889  do_not_strip_quotes: ;
4890  }
4891 
4892  if (! yyres)
4893  return yystrlen (yystr);
4894 
4895  return yystpcpy (yyres, yystr) - yyres;
4896 }
4897 # endif
4898 
4899 /* Copy into YYRESULT an error message about the unexpected token
4900  YYCHAR while in state YYSTATE. Return the number of bytes copied,
4901  including the terminating null byte. If YYRESULT is null, do not
4902  copy anything; just return the number of bytes that would be
4903  copied. As a special case, return 0 if an ordinary "syntax error"
4904  message will do. Return YYSIZE_MAXIMUM if overflow occurs during
4905  size calculation. */
4906 static YYSIZE_T
4907 yysyntax_error (char *yyresult, int yystate, int yychar)
4908 {
4909  int yyn = yypact[yystate];
4910 
4911  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
4912  return 0;
4913  else
4914  {
4915  int yytype = YYTRANSLATE (yychar);
4916  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
4917  YYSIZE_T yysize = yysize0;
4918  YYSIZE_T yysize1;
4919  int yysize_overflow = 0;
4920  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
4921  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
4922  int yyx;
4923 
4924 # if 0
4925  /* This is so xgettext sees the translatable formats that are
4926  constructed on the fly. */
4927  YY_("syntax error, unexpected %s");
4928  YY_("syntax error, unexpected %s, expecting %s");
4929  YY_("syntax error, unexpected %s, expecting %s or %s");
4930  YY_("syntax error, unexpected %s, expecting %s or %s or %s");
4931  YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
4932 # endif
4933  char *yyfmt;
4934  char const *yyf;
4935  static char const yyunexpected[] = "syntax error, unexpected %s";
4936  static char const yyexpecting[] = ", expecting %s";
4937  static char const yyor[] = " or %s";
4938  char yyformat[sizeof yyunexpected
4939  + sizeof yyexpecting - 1
4940  + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
4941  * (sizeof yyor - 1))];
4942  char const *yyprefix = yyexpecting;
4943 
4944  /* Start YYX at -YYN if negative to avoid negative indexes in
4945  YYCHECK. */
4946  int yyxbegin = yyn < 0 ? -yyn : 0;
4947 
4948  /* Stay within bounds of both yycheck and yytname. */
4949  int yychecklim = YYLAST - yyn + 1;
4950  int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
4951  int yycount = 1;
4952 
4953  yyarg[0] = yytname[yytype];
4954  yyfmt = yystpcpy (yyformat, yyunexpected);
4955 
4956  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4957  if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
4958  {
4959  if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4960  {
4961  yycount = 1;
4962  yysize = yysize0;
4963  yyformat[sizeof yyunexpected - 1] = '\0';
4964  break;
4965  }
4966  yyarg[yycount++] = yytname[yyx];
4967  yysize1 = yysize + yytnamerr (0, yytname[yyx]);
4968  yysize_overflow |= (yysize1 < yysize);
4969  yysize = yysize1;
4970  yyfmt = yystpcpy (yyfmt, yyprefix);
4971  yyprefix = yyor;
4972  }
4973 
4974  yyf = YY_(yyformat);
4975  yysize1 = yysize + yystrlen (yyf);
4976  yysize_overflow |= (yysize1 < yysize);
4977  yysize = yysize1;
4978 
4979  if (yysize_overflow)
4980  return YYSIZE_MAXIMUM;
4981 
4982  if (yyresult)
4983  {
4984  /* Avoid sprintf, as that infringes on the user's name space.
4985  Don't have undefined behavior even if the translation
4986  produced a string with the wrong number of "%s"s. */
4987  char *yyp = yyresult;
4988  int yyi = 0;
4989  while ((*yyp = *yyf) != '\0')
4990  {
4991  if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
4992  {
4993  yyp += yytnamerr (yyp, yyarg[yyi++]);
4994  yyf += 2;
4995  }
4996  else
4997  {
4998  yyp++;
4999  yyf++;
5000  }
5001  }
5002  }
5003  return yysize;
5004  }
5005 }
5006 #endif /* YYERROR_VERBOSE */
5007 
5008 
5009 /*-----------------------------------------------.
5010 | Release the memory associated to this symbol. |
5011 `-----------------------------------------------*/
5012 
5013 /*ARGSUSED*/
5014 #if (defined __STDC__ || defined __C99__FUNC__ \
5015  || defined __cplusplus || defined _MSC_VER)
5016 static void
5017 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, OSResult *osresult, OSrLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData)
5018 #else
5019 static void
5020 yydestruct (yymsg, yytype, yyvaluep, yylocationp, osresult, parserData, osglData, osnlData)
5021  const char *yymsg;
5022  int yytype;
5023  YYSTYPE *yyvaluep;
5024  YYLTYPE *yylocationp;
5025  OSResult *osresult;
5026  OSrLParserData *parserData;
5027  OSgLParserData *osglData;
5028  OSnLParserData *osnlData;
5029 #endif
5030 {
5031  YYUSE (yyvaluep);
5032  YYUSE (yylocationp);
5033  YYUSE (osresult);
5034  YYUSE (parserData);
5035  YYUSE (osglData);
5036  YYUSE (osnlData);
5037 
5038  if (!yymsg)
5039  yymsg = "Deleting";
5040  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
5041 
5042  switch (yytype)
5043  {
5044 
5045  default:
5046  break;
5047  }
5048 }
5049 
5050 /* Prevent warnings from -Wmissing-prototypes. */
5051 #ifdef YYPARSE_PARAM
5052 #if defined __STDC__ || defined __cplusplus
5053 int yyparse (void *YYPARSE_PARAM);
5054 #else
5055 int yyparse ();
5056 #endif
5057 #else /* ! YYPARSE_PARAM */
5058 #if defined __STDC__ || defined __cplusplus
5059 int yyparse (OSResult *osresult, OSrLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData);
5060 #else
5061 int yyparse ();
5062 #endif
5063 #endif /* ! YYPARSE_PARAM */
5064 
5065 
5066 
5067 
5068 
5069 /*-------------------------.
5070 | yyparse or yypush_parse. |
5071 `-------------------------*/
5072 
5073 #ifdef YYPARSE_PARAM
5074 #if (defined __STDC__ || defined __C99__FUNC__ \
5075  || defined __cplusplus || defined _MSC_VER)
5076 int
5077 yyparse (void *YYPARSE_PARAM)
5078 #else
5079 int
5080 yyparse (YYPARSE_PARAM)
5081  void *YYPARSE_PARAM;
5082 #endif
5083 #else /* ! YYPARSE_PARAM */
5084 #if (defined __STDC__ || defined __C99__FUNC__ \
5085  || defined __cplusplus || defined _MSC_VER)
5086 int
5087 yyparse (OSResult *osresult, OSrLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData)
5088 #else
5089 int
5090 yyparse (osresult, parserData, osglData, osnlData)
5091  OSResult *osresult;
5092  OSrLParserData *parserData;
5093  OSgLParserData *osglData;
5094  OSnLParserData *osnlData;
5095 #endif
5096 #endif
5098 /* The lookahead symbol. */
5099 int yychar;
5100 
5101 /* The semantic value of the lookahead symbol. */
5102 YYSTYPE yylval;
5103 
5104 /* Location data for the lookahead symbol. */
5106 
5107  /* Number of syntax errors so far. */
5108  int yynerrs;
5109 
5110  int yystate;
5111  /* Number of tokens to shift before error messages enabled. */
5113 
5114  /* The stacks and their tools:
5115  `yyss': related to states.
5116  `yyvs': related to semantic values.
5117  `yyls': related to locations.
5118 
5119  Refer to the stacks thru separate pointers, to allow yyoverflow
5120  to reallocate them elsewhere. */
5121 
5122  /* The state stack. */
5123  yytype_int16 yyssa[YYINITDEPTH];
5124  yytype_int16 *yyss;
5125  yytype_int16 *yyssp;
5126 
5127  /* The semantic value stack. */
5131 
5132  /* The location stack. */
5136 
5137  /* The locations where the error started and ended. */
5139 
5141 
5142  int yyn;
5144  /* Lookahead token as an internal (translated) token number. */
5145  int yytoken;
5146  /* The variables used to return semantic value and location from the
5147  action routines. */
5150 
5151 #if YYERROR_VERBOSE
5152  /* Buffer for error messages, and its allocated size. */
5153  char yymsgbuf[128];
5154  char *yymsg = yymsgbuf;
5155  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
5156 #endif
5157 
5158 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
5159 
5160  /* The number of symbols on the RHS of the reduced rule.
5161  Keep to zero when no symbol should be popped. */
5162  int yylen = 0;
5163 
5164  yytoken = 0;
5165  yyss = yyssa;
5166  yyvs = yyvsa;
5167  yyls = yylsa;
5168  yystacksize = YYINITDEPTH;
5169 
5170  YYDPRINTF ((stderr, "Starting parse\n"));
5171 
5172  yystate = 0;
5173  yyerrstatus = 0;
5174  yynerrs = 0;
5175  yychar = YYEMPTY; /* Cause a token to be read. */
5176 
5177  /* Initialize stack pointers.
5178  Waste one element of value and location stack
5179  so that they stay on the same level as the state stack.
5180  The wasted elements are never initialized. */
5181  yyssp = yyss;
5182  yyvsp = yyvs;
5183  yylsp = yyls;
5184 
5185 #if YYLTYPE_IS_TRIVIAL
5186  /* Initialize the default location before parsing starts. */
5187  yylloc.first_line = yylloc.last_line = 1;
5188  yylloc.first_column = yylloc.last_column = 1;
5189 #endif
5190 
5192 
5193 /*------------------------------------------------------------.
5194 | yynewstate -- Push a new state, which is found in yystate. |
5195 `------------------------------------------------------------*/
5196  yynewstate:
5197  /* In all cases, when you get here, the value and location stacks
5198  have just been pushed. So pushing a state here evens the stacks. */
5199  yyssp++;
5200 
5201  yysetstate:
5202  *yyssp = yystate;
5203 
5204  if (yyss + yystacksize - 1 <= yyssp)
5205  {
5206  /* Get the current used size of the three stacks, in elements. */
5207  YYSIZE_T yysize = yyssp - yyss + 1;
5208 
5209 #ifdef yyoverflow
5210  {
5211  /* Give user a chance to reallocate the stack. Use copies of
5212  these so that the &'s don't force the real ones into
5213  memory. */
5214  YYSTYPE *yyvs1 = yyvs;
5215  yytype_int16 *yyss1 = yyss;
5216  YYLTYPE *yyls1 = yyls;
5217 
5218  /* Each stack pointer address is followed by the size of the
5219  data in use in that stack, in bytes. This used to be a
5220  conditional around just the two extra args, but that might
5221  be undefined if yyoverflow is a macro. */
5222  yyoverflow (YY_("memory exhausted"),
5223  &yyss1, yysize * sizeof (*yyssp),
5224  &yyvs1, yysize * sizeof (*yyvsp),
5225  &yyls1, yysize * sizeof (*yylsp),
5226  &yystacksize);
5227 
5228  yyls = yyls1;
5229  yyss = yyss1;
5230  yyvs = yyvs1;
5231  }
5232 #else /* no yyoverflow */
5233 # ifndef YYSTACK_RELOCATE
5234  goto yyexhaustedlab;
5235 # else
5236  /* Extend the stack our own way. */
5237  if (YYMAXDEPTH <= yystacksize)
5238  goto yyexhaustedlab;
5239  yystacksize *= 2;
5240  if (YYMAXDEPTH < yystacksize)
5241  yystacksize = YYMAXDEPTH;
5242 
5243  {
5244  yytype_int16 *yyss1 = yyss;
5245  union yyalloc *yyptr =
5246  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
5247  if (! yyptr)
5248  goto yyexhaustedlab;
5249  YYSTACK_RELOCATE (yyss_alloc, yyss);
5250  YYSTACK_RELOCATE (yyvs_alloc, yyvs);
5251  YYSTACK_RELOCATE (yyls_alloc, yyls);
5252 # undef YYSTACK_RELOCATE
5253  if (yyss1 != yyssa)
5254  YYSTACK_FREE (yyss1);
5255  }
5256 # endif
5257 #endif /* no yyoverflow */
5258 
5259  yyssp = yyss + yysize - 1;
5260  yyvsp = yyvs + yysize - 1;
5261  yylsp = yyls + yysize - 1;
5262 
5263  YYDPRINTF ((stderr, "Stack size increased to %lu\n",
5264  (unsigned long int) yystacksize));
5265 
5266  if (yyss + yystacksize - 1 <= yyssp)
5267  YYABORT;
5268  }
5269 
5270  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
5271 
5272  if (yystate == YYFINAL)
5274 
5275  goto yybackup;
5276 
5277 /*-----------.
5278 | yybackup. |
5279 `-----------*/
5280 yybackup:
5281 
5282  /* Do appropriate processing given the current state. Read a
5283  lookahead token if we need one and don't already have one. */
5284 
5285  /* First try to decide what to do without reference to lookahead token. */
5286  yyn = yypact[yystate];
5287  if (yyn == YYPACT_NINF)
5289 
5290  /* Not known => get a lookahead token if don't already have one. */
5291 
5292  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
5293  if (yychar == YYEMPTY)
5294  {
5295  YYDPRINTF ((stderr, "Reading a token: "));
5296  yychar = YYLEX;
5297  }
5298 
5299  if (yychar <= YYEOF)
5300  {
5301  yychar = yytoken = YYEOF;
5302  YYDPRINTF ((stderr, "Now at end of input.\n"));
5303  }
5304  else
5305  {
5306  yytoken = YYTRANSLATE (yychar);
5307  YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
5308  }
5309 
5310  /* If the proper action on seeing token YYTOKEN is to reduce or to
5311  detect an error, take that action. */
5312  yyn += yytoken;
5313  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
5314  goto yydefault;
5315  yyn = yytable[yyn];
5316  if (yyn <= 0)
5317  {
5318  if (yyn == 0 || yyn == YYTABLE_NINF)
5319  goto yyerrlab;
5320  yyn = -yyn;
5321  goto yyreduce;
5322  }
5323 
5324  /* Count tokens shifted since error; after three, turn off error
5325  status. */
5326  if (yyerrstatus)
5327  yyerrstatus--;
5328 
5329  /* Shift the lookahead token. */
5330  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
5331 
5332  /* Discard the shifted token. */
5333  yychar = YYEMPTY;
5334 
5335  yystate = yyn;
5336  *++yyvsp = yylval;
5337  *++yylsp = yylloc;
5339 
5340 
5341 /*-----------------------------------------------------------.
5342 | yydefault -- do the default action for the current state. |
5343 `-----------------------------------------------------------*/
5344 yydefault:
5345  yyn = yydefact[yystate];
5346  if (yyn == 0)
5347  goto yyerrlab;
5348  goto yyreduce;
5349 
5350 
5351 /*-----------------------------.
5352 | yyreduce -- Do a reduction. |
5353 `-----------------------------*/
5354 yyreduce:
5355  /* yyn is the number of a rule to reduce with. */
5356  yylen = yyr2[yyn];
5357 
5358  /* If YYLEN is nonzero, implement the default value of the action:
5359  `$$ = $1'.
5360 
5361  Otherwise, the following line sets YYVAL to garbage.
5362  This behavior is undocumented and Bison
5363  users should not rely upon it. Assigning to YYVAL
5364  unconditionally makes the parser a bit smaller, and it avoids a
5365  GCC warning that YYVAL may be used uninitialized. */
5366  yyval = yyvsp[1-yylen];
5367 
5368  /* Default location. */
5369  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
5370  YY_REDUCE_PRINT (yyn);
5371  switch (yyn)
5372  {
5373  case 4:
5374 
5375  {
5376 #ifdef DEBUG
5377  yydebug = 1;
5378 #endif
5379 }
5380  break;
5381 
5382  case 5:
5383 
5384  {
5385 #ifdef DEBUG
5386  yydebug = 1;
5387 #endif
5388  parserData->parser_errors = "";
5389  parserData->suppressFurtherErrorMessages = false;
5390  parserData->ignoreDataAfterErrors = false;
5391 }
5392  break;
5393 
5394  case 12:
5395 
5396  {
5397  if (parserData->parser_errors != "")
5398  {
5399  parserData->parser_errors += ("\n\nOSrL input is either invalid or not well-formed.\n");
5400  osrlerror( NULL, osresult, parserData, osglData, osnlData, parserData->parser_errors);
5401  }
5402  }
5403  break;
5404 
5405  case 14:
5406 
5407  { parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "unexpected end of file, expecting </osol>");}
5408  break;
5409 
5410  case 17:
5411 
5412  {
5413  if (!osresult->setHeader(osglData->fileName, osglData->source,
5414  osglData->description, osglData->fileCreator, osglData->licence) )
5415  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "setHeader failed");
5416 }
5417  break;
5418 
5419  case 20:
5420 
5421  {
5422  parserData->generalStatusPresent = false;
5423  parserData->generalMessagePresent = false;
5424  parserData->generalServiceURIPresent = false;
5425  parserData->generalServiceNamePresent = false;
5426  parserData->generalInstanceNamePresent = false;
5427  parserData->generalJobIDPresent = false;
5428  parserData->generalSolverInvokedPresent = false;
5429  parserData->generalTimeStampPresent = false;
5430  parserData->otherGeneralResultsPresent = false;
5431  osresult->general = new GeneralResult();
5432 }
5433  break;
5434 
5435  case 39:
5436 
5437  {
5438  if (parserData->generalStatusPresent)
5439  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one generalStatus element allowed");
5440  if (osresult->general->generalStatus != NULL)
5441  osrlerror(NULL, NULL, parserData, osglData, osnlData, "generalStatus previously allocated");
5442  parserData->generalStatusPresent = true;
5443  parserData->numberAttributePresent = false;
5444  parserData->numberOf = 0;
5445  osglData->typePresent = false;
5446  osglData->type = "";
5447  osglData->descriptionPresent = false;
5448  osglData->description = "";
5449  }
5450  break;
5451 
5452  case 40:
5453 
5454  {
5455  if (!osglData->typePresent)
5456  osrlerror(NULL, NULL, parserData, osglData, osnlData, "type attribute must be present for generalStatus element");
5457  parserData->kounter = 0;
5458  }
5459  break;
5460 
5461  case 43:
5462 
5463  {
5464  if (osresult->setGeneralStatusType(osglData->type) == false)
5465  osrlerror(NULL, NULL, parserData, osglData, osnlData, "general status type does not match any legal value");
5466  }
5467  break;
5468 
5469  case 44:
5470 
5471  {
5472  osresult->setGeneralStatusDescription(osglData->description);
5473  }
5474  break;
5475 
5476  case 45:
5477 
5478  {
5479  if (osresult->setNumberOfGeneralSubstatuses(parserData->tempInt) == false)
5480  osrlerror(NULL, NULL, parserData, osglData, osnlData, "Attempting to reallocate substatus array. Potential loss of data.");
5481  parserData->numberOf = parserData->tempInt;
5482  parserData->kounter = 0;
5483  }
5484  break;
5485 
5486  case 46:
5487 
5488  { if (parserData->numberOf > 0)
5489  osrlerror(NULL, NULL, parserData, osglData, osnlData, "expected at least one <substatus> element");
5490  }
5491  break;
5492 
5493  case 47:
5494 
5495  { if (parserData->kounter != parserData->numberOf)
5496  osrlerror(NULL, NULL, parserData, osglData, osnlData, "fewer <substatus> elements than specified");
5497  }
5498  break;
5499 
5500  case 54:
5501 
5502  {
5503  parserData->kounter++;
5504 }
5505  break;
5506 
5507  case 55:
5508 
5509  {
5510  if (parserData->kounter >= parserData->numberOf)
5511  osrlerror( NULL, NULL, parserData, osglData, osnlData, "more <substatus> elements than specified");
5512  osglData->namePresent = false;
5513  osglData->descriptionPresent = false;
5514  osglData->name = "";
5515  osglData->description = "";
5516 }
5517  break;
5518 
5519  case 56:
5520 
5521  {
5522  if (!osglData->namePresent)
5523  osrlerror (NULL, NULL, parserData, osglData, osnlData, "<substatus> must have name attribute");
5524 }
5525  break;
5526 
5527  case 59:
5528 
5529  {
5530  if (osresult->setGeneralSubstatusName(parserData->kounter, osglData->name) == false)
5531  osrlerror(NULL, NULL, parserData, osglData, osnlData, "Error while setting <general> substatus name");
5532  }
5533  break;
5534 
5535  case 60:
5536 
5537  {
5538  if (osresult->setGeneralSubstatusDescription(parserData->kounter, osglData->description) == false)
5539  osrlerror(NULL, NULL, parserData, osglData, osnlData, "Error while setting <general> substatus description");
5540  }
5541  break;
5542 
5543  case 64:
5544 
5545  {
5546  if (parserData->generalMessagePresent)
5547  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one message element allowed");
5548  parserData->generalMessagePresent = true;
5549  }
5550  break;
5551 
5552  case 70:
5553 
5554  {osresult->setGeneralMessage((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;}
5555  break;
5556 
5557  case 72:
5558 
5559  {
5560  if (parserData->generalServiceURIPresent)
5561  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one serviceURI element allowed");
5562  parserData->generalServiceURIPresent = true;
5563  }
5564  break;
5565 
5566  case 78:
5567 
5568  {
5569  osresult->setServiceURI((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;
5570  }
5571  break;
5572 
5573  case 80:
5574 
5575  {
5576  if (parserData->generalServiceNamePresent)
5577  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one serviceName element allowed");
5578  parserData->generalServiceNamePresent = true;
5579  }
5580  break;
5581 
5582  case 86:
5583 
5584  {
5585  osresult->setServiceName((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;
5586  }
5587  break;
5588 
5589  case 88:
5590 
5591  {
5592  if (parserData->generalInstanceNamePresent)
5593  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one instanceName element allowed");
5594  parserData->generalInstanceNamePresent = true;
5595  }
5596  break;
5597 
5598  case 94:
5599 
5600  {
5601  osresult->setInstanceName((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;
5602  }
5603  break;
5604 
5605  case 96:
5606 
5607  {
5608  if (parserData->generalJobIDPresent)
5609  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one jobID element allowed");
5610  parserData->generalJobIDPresent = true;
5611  }
5612  break;
5613 
5614  case 102:
5615 
5616  {
5617  osresult->setJobID((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;
5618  }
5619  break;
5620 
5621  case 104:
5622 
5623  {
5624  if (parserData->generalSolverInvokedPresent)
5625  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one solverInvoked element allowed");
5626  parserData->generalSolverInvokedPresent = true;
5627  }
5628  break;
5629 
5630  case 110:
5631 
5632  {
5633  osresult->setSolverInvoked((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;
5634  }
5635  break;
5636 
5637  case 112:
5638 
5639  {
5640  if (parserData->generalTimeStampPresent)
5641  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one timeStamp element allowed");
5642  parserData->generalTimeStampPresent = true;
5643  }
5644  break;
5645 
5646  case 118:
5647 
5648  {
5649  osresult->setTimeStamp((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;
5650  }
5651  break;
5652 
5653  case 120:
5654 
5655  {
5656  if (parserData->otherGeneralResultsPresent)
5657  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one general other results element allowed");
5658  parserData->otherGeneralResultsPresent = true;
5659  }
5660  break;
5661 
5662  case 121:
5663 
5664  {
5665  if (parserData->tempInt < 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "number of other general results cannot be negative");
5666  if (osresult->setNumberOfOtherGeneralResults(parserData->tempInt) == false)
5667  osrlerror(NULL, NULL, parserData, osglData, osnlData, "Attempting to reallocate other general results array. Potential loss of data.");
5668  parserData->numberOf = parserData->tempInt;
5669  parserData->kounter = 0;
5670 }
5671  break;
5672 
5673  case 122:
5674 
5675  {
5676  if (parserData->numberOf > 0)
5677  osrlerror(NULL, NULL, parserData, osglData, osnlData, "expected at least one <other> element");
5678  }
5679  break;
5680 
5681  case 123:
5682 
5683  {
5684  if (parserData->kounter < parserData->numberOf - 1)
5685  osrlerror(NULL, NULL, parserData, osglData, osnlData, "fewer <other> elements than specified");
5686  }
5687  break;
5688 
5689  case 130:
5690 
5691  {
5692  parserData->kounter++;
5693 }
5694  break;
5695 
5696  case 131:
5697 
5698  {
5699  if (parserData->kounter >= parserData->numberOf)
5700  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <other> elements than specified");
5701  osglData->namePresent = false;
5702  osglData->valuePresent = false;
5703  osglData->descriptionPresent = false;
5704  osglData->name = "";
5705  osglData->value = "";
5706  osglData->description = "";
5707 }
5708  break;
5709 
5710  case 132:
5711 
5712  {
5713  if (!osglData->namePresent)
5714  osrlerror (NULL, NULL, parserData, osglData, osnlData, "<other> must have name attribute");
5715 }
5716  break;
5717 
5718  case 135:
5719 
5720  {
5721  if (osglData->name.length() == 0)
5722  osrlerror(NULL, NULL, parserData, osglData, osnlData, "otherResult name cannot be empty");
5723  if (osresult->setOtherGeneralResultName(parserData->kounter, osglData->name) == false)
5724  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setGeneralOtherResultName failed");
5725  }
5726  break;
5727 
5728  case 136:
5729 
5730  {
5731  if (osresult->setOtherGeneralResultValue(parserData->kounter, osglData->value) == false)
5732  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setGeneralOtherResultValue failed");
5733  }
5734  break;
5735 
5736  case 137:
5737 
5738  {
5739  if (osresult->setOtherGeneralResultDescription(parserData->kounter, osglData->description) == false)
5740  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setGeneralOtherResultDescription failed");
5741  }
5742  break;
5743 
5744  case 142:
5745 
5746  {
5747  parserData->systemInformationPresent = false;
5748  parserData->systemAvailableDiskSpacePresent = false;
5749  parserData->systemAvailableMemoryPresent = false;
5750  parserData->systemAvailableCPUSpeedPresent = false;
5751  parserData->systemAvailableCPUNumberPresent = false;
5752  parserData->otherSystemResultsPresent = false;
5753  osresult->system = new SystemResult();
5754 }
5755  break;
5756 
5757  case 158:
5758 
5759  {
5760  if (parserData->systemInformationPresent)
5761  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one systemInformation element allowed");
5762  parserData->systemInformationPresent = true;
5763  }
5764  break;
5765 
5766  case 164:
5767 
5768  {
5769  osresult->setSystemInformation((yyvsp[(1) - (1)].sval));
5770  free((yyvsp[(1) - (1)].sval));
5771  parserData->errorText = NULL;
5772  }
5773  break;
5774 
5775  case 166:
5776 
5777  {
5778  if (parserData->systemAvailableDiskSpacePresent)
5779  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one availableDiskSpace element allowed");
5780  parserData->systemAvailableDiskSpacePresent = true;
5781  osglData->unitPresent = false;
5782  osglData->unit = "byte";
5783  osglData->descriptionPresent = false;
5784  osglData->description = "";
5785  }
5786  break;
5787 
5788  case 170:
5789 
5790  {
5791  if (osresult->setAvailableDiskSpaceUnit( osglData->unit) == false)
5792  osrlerror(NULL, NULL, parserData, osglData, osnlData, "availableDiskSpace unit not recognized");
5793  parserData->errorText = NULL;
5794  }
5795  break;
5796 
5797  case 171:
5798 
5799  {
5800  osresult->setAvailableDiskSpaceDescription( osglData->description);
5801  parserData->errorText = NULL;
5802  }
5803  break;
5804 
5805  case 173:
5806 
5807  {
5808  osresult->setAvailableDiskSpaceValue(parserData->tempVal);
5809  parserData->errorText = NULL;
5810 }
5811  break;
5812 
5813  case 175:
5814 
5815  {
5816  if (parserData->systemAvailableMemoryPresent)
5817  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one availableMemory element allowed");
5818  parserData->systemAvailableMemoryPresent = true;
5819  osglData->unitPresent = false;
5820  osglData->unit = "byte";
5821  osglData->descriptionPresent = false;
5822  osglData->description = "";
5823  }
5824  break;
5825 
5826  case 179:
5827 
5828  {
5829  if (osresult->setAvailableMemoryUnit( osglData->unit) == false)
5830  osrlerror(NULL, NULL, parserData, osglData, osnlData, "availableDiskSpace unit not recognized");
5831  parserData->errorText = NULL;
5832  }
5833  break;
5834 
5835  case 180:
5836 
5837  {
5838  osresult->setAvailableMemoryDescription( osglData->description);
5839  parserData->errorText = NULL;
5840  }
5841  break;
5842 
5843  case 182:
5844 
5845  {
5846  osresult->setAvailableMemoryValue(parserData->tempVal);
5847  parserData->errorText = NULL;
5848 }
5849  break;
5850 
5851  case 184:
5852 
5853  {
5854  if (parserData->systemAvailableCPUSpeedPresent)
5855  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one availableCPUSpeed element allowed");
5856  parserData->systemAvailableCPUSpeedPresent = true;
5857  osglData->unitPresent = false;
5858  osglData->unit = "hertz";
5859  osglData->descriptionPresent = false;
5860  osglData->description = "";
5861  }
5862  break;
5863 
5864  case 188:
5865 
5866  {
5867  if (osresult->setAvailableCPUSpeedUnit( osglData->unit) == false)
5868  osrlerror(NULL, NULL, parserData, osglData, osnlData, "available CPU Speed could not be set");
5869  parserData->errorText = NULL;
5870  }
5871  break;
5872 
5873  case 189:
5874 
5875  {
5876  osresult->setAvailableCPUSpeedDescription( osglData->description);
5877  parserData->errorText = NULL;
5878  }
5879  break;
5880 
5881  case 191:
5882 
5883  {
5884  osresult->setAvailableCPUSpeedValue(parserData->tempVal);
5885  parserData->errorText = NULL;
5886 }
5887  break;
5888 
5889  case 193:
5890 
5891  {
5892  if (parserData->systemAvailableCPUNumberPresent)
5893  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one availableCPUNumber element allowed");
5894  parserData->systemAvailableCPUNumberPresent = true;
5895  osglData->descriptionPresent = false;
5896  osglData->description = "";
5897  }
5898  break;
5899 
5900  case 195:
5901 
5902  {
5903  osresult->setAvailableCPUNumberDescription( osglData->description);
5904  parserData->errorText = NULL;
5905  }
5906  break;
5907 
5908  case 197:
5909 
5910  {
5911  osresult->setAvailableCPUNumberValue( (yyvsp[(1) - (1)].ival)); parserData->errorText = NULL;
5912 }
5913  break;
5914 
5915  case 199:
5916 
5917  {
5918  if (parserData->otherSystemResultsPresent)
5919  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one system other results element allowed");
5920  parserData->otherSystemResultsPresent = true;
5921  }
5922  break;
5923 
5924  case 200:
5925 
5926  {
5927  if (parserData->tempInt < 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "number of other system results cannot be negative");
5928  if (osresult->setNumberOfOtherSystemResults(parserData->tempInt) == false)
5929  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setNumberOfOtherSystemResults failed");
5930  parserData->numberOf = parserData->tempInt;
5931  parserData->kounter = 0;
5932 }
5933  break;
5934 
5935  case 201:
5936 
5937  {
5938  if (parserData->numberOf > 0)
5939  osrlerror(NULL, NULL, parserData, osglData, osnlData, "expected at least one <other> element");
5940  }
5941  break;
5942 
5943  case 202:
5944 
5945  {
5946  if (parserData->kounter < parserData->numberOf - 1)
5947  osrlerror(NULL, NULL, parserData, osglData, osnlData, "fewer <other> elements than specified");
5948  }
5949  break;
5950 
5951  case 209:
5952 
5953  {
5954  parserData->kounter++;
5955 }
5956  break;
5957 
5958  case 210:
5959 
5960  {
5961  if (parserData->kounter >= parserData->numberOf)
5962  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <other> elements than specified");
5963  osglData->namePresent = false;
5964  osglData->valuePresent = false;
5965  osglData->descriptionPresent = false;
5966  osglData->name = "";
5967  osglData->value = "";
5968  osglData->description = "";
5969 }
5970  break;
5971 
5972  case 211:
5973 
5974  {
5975  if (!osglData->namePresent)
5976  osrlerror (NULL, NULL, parserData, osglData, osnlData, "<other> must have name attribute");
5977 }
5978  break;
5979 
5980  case 214:
5981 
5982  {
5983  if (osglData->name.length() == 0)
5984  osrlerror(NULL, NULL, parserData, osglData, osnlData, "otherResult name cannot be empty");
5985  if (osresult->setOtherSystemResultName(parserData->kounter, osglData->name) == false)
5986  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSystemOtherResultName failed");
5987  }
5988  break;
5989 
5990  case 215:
5991 
5992  {
5993  if (osresult->setOtherSystemResultValue(parserData->kounter, osglData->value) == false)
5994  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSystemOtherResultValue failed");
5995  }
5996  break;
5997 
5998  case 216:
5999 
6000  {
6001  if (osresult->setOtherSystemResultDescription(parserData->kounter, osglData->description) == false)
6002  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSystemOtherResultDescription failed");
6003  }
6004  break;
6005 
6006  case 221:
6007 
6008  {
6009  parserData->serviceCurrentStatePresent = false;
6010  parserData->serviceCurrentJobCountPresent = false;
6011  parserData->serviceTotalJobsSoFarPresent = false;
6012  parserData->timeServiceStartedPresent = false;
6013  parserData->serviceUtilizationPresent = false;
6014  parserData->otherServiceResultsPresent = false;
6015  osresult->service = new ServiceResult();
6016 }
6017  break;
6018 
6019  case 237:
6020 
6021  {
6022  if (parserData->serviceCurrentStatePresent)
6023  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one currentState element allowed");
6024  parserData->serviceCurrentStatePresent = true;
6025  }
6026  break;
6027 
6028  case 243:
6029 
6030  {
6031  parserData->tempStr = (yyvsp[(1) - (1)].sval); free((yyvsp[(1) - (1)].sval));
6032  if (osresult->setCurrentState(parserData->tempStr) == false)
6033  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setCurrentState failed; current system state not recognized");
6034  parserData->errorText = NULL;
6035  }
6036  break;
6037 
6038  case 245:
6039 
6040  {
6041  if (parserData->serviceCurrentJobCountPresent)
6042  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one currentJobCount element allowed");
6043  parserData->serviceCurrentJobCountPresent = true;
6044  }
6045  break;
6046 
6047  case 251:
6048 
6049  {
6050  osresult->setCurrentJobCount((yyvsp[(1) - (1)].ival)); parserData->errorText = NULL;
6051  }
6052  break;
6053 
6054  case 253:
6055 
6056  {
6057  if (parserData->serviceTotalJobsSoFarPresent)
6058  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one totalJobsSoFar element allowed");
6059  parserData->serviceTotalJobsSoFarPresent = true;
6060  }
6061  break;
6062 
6063  case 259:
6064 
6065  {
6066  osresult->setTotalJobsSoFar((yyvsp[(1) - (1)].ival)); parserData->errorText = NULL;
6067  }
6068  break;
6069 
6070  case 261:
6071 
6072  {
6073  if (parserData->timeServiceStartedPresent)
6074  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one timeServiceStarted element allowed");
6075  parserData->timeServiceStartedPresent = true;
6076  }
6077  break;
6078 
6079  case 267:
6080 
6081  {
6082  osresult->setTimeServiceStarted((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;
6083  }
6084  break;
6085 
6086  case 269:
6087 
6088  {
6089  if (parserData->serviceUtilizationPresent)
6090  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one serviceUtilization element allowed");
6091  parserData->serviceUtilizationPresent = true;
6092  }
6093  break;
6094 
6095  case 275:
6096 
6097  {
6098  if (osresult->setServiceUtilization( parserData->tempVal) == false)
6099  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setServiceUtilization failed");
6100  parserData->errorText = NULL;
6101 }
6102  break;
6103 
6104  case 277:
6105 
6106  {
6107  if (parserData->otherServiceResultsPresent)
6108  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one service other results element allowed");
6109  parserData->otherServiceResultsPresent = true;
6110  }
6111  break;
6112 
6113  case 278:
6114 
6115  {
6116  if (parserData->tempInt < 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "number of other service results cannot be negative");
6117  if (osresult->setNumberOfOtherServiceResults(parserData->tempInt) == false)
6118  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setNumberOfOtherServiceResults failed");
6119  parserData->numberOf = parserData->tempInt;
6120  parserData->kounter = 0;
6121 }
6122  break;
6123 
6124  case 279:
6125 
6126  {
6127  if (parserData->numberOf > 0)
6128  osrlerror(NULL, NULL, parserData, osglData, osnlData, "expected at least one <other> element");
6129  }
6130  break;
6131 
6132  case 280:
6133 
6134  {
6135  if (parserData->kounter < parserData->numberOf - 1)
6136  osrlerror(NULL, NULL, parserData, osglData, osnlData, "fewer <other> elements than specified");
6137  }
6138  break;
6139 
6140  case 287:
6141 
6142  {
6143  parserData->kounter++;
6144 }
6145  break;
6146 
6147  case 288:
6148 
6149  {
6150  if (parserData->kounter >= parserData->numberOf)
6151  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <other> elements than specified");
6152  osglData->namePresent = false;
6153  osglData->valuePresent = false;
6154  osglData->descriptionPresent = false;
6155  osglData->name = "";
6156  osglData->value = "";
6157  osglData->description = "";
6158 }
6159  break;
6160 
6161  case 289:
6162 
6163  {
6164  if (!osglData->namePresent)
6165  osrlerror (NULL, NULL, parserData, osglData, osnlData, "<other> must have name attribute");
6166 }
6167  break;
6168 
6169  case 292:
6170 
6171  {
6172  if (osglData->name.length() == 0)
6173  osrlerror(NULL, NULL, parserData, osglData, osnlData, "otherResult name cannot be empty");
6174  if (osresult->setOtherServiceResultName(parserData->kounter, osglData->name) == false)
6175  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setServiceOtherResultName failed");
6176  }
6177  break;
6178 
6179  case 293:
6180 
6181  {
6182  if (osresult->setOtherServiceResultValue(parserData->kounter, osglData->value) == false)
6183  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setServiceOtherResultValue failed");
6184  }
6185  break;
6186 
6187  case 294:
6188 
6189  {
6190  if (osresult->setOtherServiceResultDescription(parserData->kounter, osglData->description) == false)
6191  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setServiceOtherResultDescription failed");
6192  }
6193  break;
6194 
6195  case 299:
6196 
6197  {
6198  parserData->jobStatusPresent = false;
6199  parserData->jobSubmitTimePresent = false;
6200  parserData->scheduledStartTimePresent = false;
6201  parserData->actualStartTimePresent = false;
6202  parserData->jobEndTimePresent = false;
6203  parserData->jobTimingInformationPresent = false;
6204  parserData->jobUsedDiskSpacePresent = false;
6205  parserData->jobUsedMemoryPresent = false;
6206  parserData->jobUsedCPUSpeedPresent = false;
6207  parserData->jobUsedCPUNumberPresent = false;
6208  parserData->otherJobResultsPresent = false;
6209  osresult->job = new JobResult();
6210 }
6211  break;
6212 
6213  case 320:
6214 
6215  {
6216  if (parserData->jobStatusPresent)
6217  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one job status element allowed");
6218  parserData->jobStatusPresent = true;
6219  }
6220  break;
6221 
6222  case 326:
6223 
6224  {
6225  parserData->tempStr = (yyvsp[(1) - (1)].sval); free((yyvsp[(1) - (1)].sval));
6226  if (osresult->setJobStatus(parserData->tempStr) == false)
6227  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setJobStatus failed");
6228  parserData->errorText = NULL;
6229  }
6230  break;
6231 
6232  case 328:
6233 
6234  {
6235  if (parserData->jobSubmitTimePresent)
6236  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one submitTime element allowed");
6237  parserData->jobSubmitTimePresent = true;
6238  }
6239  break;
6240 
6241  case 334:
6242 
6243  {
6244  osresult->setJobSubmitTime((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;
6245  }
6246  break;
6247 
6248  case 336:
6249 
6250  {
6251  if (parserData->scheduledStartTimePresent)
6252  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one scheduledStartTime element allowed");
6253  parserData->scheduledStartTimePresent = true;
6254  }
6255  break;
6256 
6257  case 342:
6258 
6259  {
6260  osresult->setScheduledStartTime((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;
6261  }
6262  break;
6263 
6264  case 344:
6265 
6266  {
6267  if (parserData->actualStartTimePresent)
6268  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one actualStartTime element allowed");
6269  parserData->actualStartTimePresent = true;
6270  }
6271  break;
6272 
6273  case 350:
6274 
6275  {
6276  osresult->setActualStartTime((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;
6277  }
6278  break;
6279 
6280  case 352:
6281 
6282  {
6283  if (parserData->jobEndTimePresent)
6284  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one job endTime element allowed");
6285  parserData->jobEndTimePresent = true;
6286  }
6287  break;
6288 
6289  case 358:
6290 
6291  {
6292  osresult->setJobEndTime((yyvsp[(1) - (1)].sval)); free((yyvsp[(1) - (1)].sval)); parserData->errorText = NULL;
6293  }
6294  break;
6295 
6296  case 360:
6297 
6298  {
6299  if (parserData->jobTimingInformationPresent)
6300  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one timingInformation element allowed");
6301  parserData->jobTimingInformationPresent = true;
6302  }
6303  break;
6304 
6305  case 361:
6306 
6307  {
6308  if (parserData->tempInt < 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "number of time measurements cannot be negative");
6309  if (osresult->setNumberOfTimes(parserData->tempInt) == false)
6310  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setNumberOfTimes failed");
6311  parserData->numberOfTimes = parserData->tempInt;
6312  parserData->ivar = 0;
6313 }
6314  break;
6315 
6316  case 362:
6317 
6318  {
6319  if (parserData->numberOfTimes > 0)
6320  osrlerror(NULL, NULL, parserData, osglData, osnlData, "expected at least one <time> element");
6321  }
6322  break;
6323 
6324  case 363:
6325 
6326  {
6327  if (parserData->ivar != parserData->numberOfTimes)
6328  osrlerror(NULL, NULL, parserData, osglData, osnlData, "fewer <time> elements than specified");
6329  }
6330  break;
6331 
6332  case 371:
6333 
6334  {
6335  if (parserData->ivar >= parserData->numberOfTimes)
6336  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <time> elements than specified");
6337  osglData->unitPresent = false;
6338  osglData->typePresent = false;
6339  osglData->categoryPresent = false;
6340  osglData->descriptionPresent = false;
6341  osglData->unit = "second";
6342  osglData->type = "elapsedTime";
6343  osglData->category = "total";
6344  osglData->description = "";
6345 }
6346  break;
6347 
6348  case 383:
6349 
6350  {
6351  if (osresult->setTimingInformation(parserData->ivar, osglData->type, osglData->category,
6352  osglData->unit, osglData->description, parserData->timeValue) == false)
6353  osrlerror(NULL, NULL, parserData, osglData, osnlData, "timing information could not be stored");
6354  parserData->ivar++;
6355 }
6356  break;
6357 
6358  case 384:
6359 
6360  { parserData->timeValue = (yyvsp[(1) - (1)].dval); }
6361  break;
6362 
6363  case 385:
6364 
6365  { parserData->timeValue = (yyvsp[(1) - (1)].ival); }
6366  break;
6367 
6368  case 387:
6369 
6370  {
6371  if (parserData->jobUsedDiskSpacePresent)
6372  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one usedDiskSpace element allowed");
6373  parserData->jobUsedDiskSpacePresent = true;
6374  osglData->unitPresent = false;
6375  osglData->unit = "byte";
6376  osglData->descriptionPresent = false;
6377  osglData->description = "";
6378  }
6379  break;
6380 
6381  case 391:
6382 
6383  {
6384  if (osresult->setUsedDiskSpaceUnit( osglData->unit) == false)
6385  osrlerror(NULL, NULL, parserData, osglData, osnlData, "availableDiskSpace unit could not be set");
6386  parserData->errorText = NULL;
6387  }
6388  break;
6389 
6390  case 392:
6391 
6392  {
6393  osresult->setUsedDiskSpaceDescription( osglData->description);
6394  parserData->errorText = NULL;
6395  }
6396  break;
6397 
6398  case 394:
6399 
6400  {
6401  osresult->setUsedDiskSpaceValue(parserData->tempVal);
6402  parserData->errorText = NULL;
6403 }
6404  break;
6405 
6406  case 396:
6407 
6408  {
6409  if (parserData->jobUsedMemoryPresent)
6410  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one usedMemory element allowed");
6411  parserData->jobUsedMemoryPresent = true;
6412  osglData->unitPresent = false;
6413  osglData->unit = "byte";
6414  osglData->descriptionPresent = false;
6415  osglData->description = "";
6416  }
6417  break;
6418 
6419  case 400:
6420 
6421  {
6422  if (osresult->setUsedMemoryUnit( osglData->unit) == false)
6423  osrlerror(NULL, NULL, parserData, osglData, osnlData, "usedMemory unit could not be set");
6424  parserData->errorText = NULL;
6425  }
6426  break;
6427 
6428  case 401:
6429 
6430  {
6431  osresult->setUsedMemoryDescription( osglData->description);
6432  parserData->errorText = NULL;
6433  }
6434  break;
6435 
6436  case 403:
6437 
6438  {
6439  osresult->setUsedMemoryValue(parserData->tempVal);
6440  parserData->errorText = NULL;
6441 }
6442  break;
6443 
6444  case 405:
6445 
6446  {
6447  if (parserData->jobUsedCPUSpeedPresent)
6448  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one usedCPUSpeed element allowed");
6449  parserData->jobUsedCPUSpeedPresent = true;
6450  osglData->unitPresent = false;
6451  osglData->unit = "hertz";
6452  osglData->descriptionPresent = false;
6453  osglData->description = "";
6454  }
6455  break;
6456 
6457  case 409:
6458 
6459  {
6460  if (osresult->setUsedCPUSpeedUnit( osglData->unit) == false)
6461  osrlerror(NULL, NULL, parserData, osglData, osnlData, "availableCPUSpeed unit could not be set");
6462  parserData->errorText = NULL;
6463  }
6464  break;
6465 
6466  case 410:
6467 
6468  {
6469  osresult->setUsedCPUSpeedDescription( osglData->description);
6470  parserData->errorText = NULL;
6471  }
6472  break;
6473 
6474  case 412:
6475 
6476  {
6477  osresult->setUsedCPUSpeedValue(parserData->tempVal);
6478  parserData->errorText = NULL;
6479 }
6480  break;
6481 
6482  case 414:
6483 
6484  {
6485  if (parserData->jobUsedCPUNumberPresent)
6486  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one usedCPUNumber element allowed");
6487  parserData->jobUsedCPUNumberPresent = true;
6488  osglData->descriptionPresent = false;
6489  osglData->description = "";
6490  }
6491  break;
6492 
6493  case 416:
6494 
6495  {
6496  osresult->setUsedCPUNumberDescription( osglData->description);
6497  parserData->errorText = NULL;
6498  }
6499  break;
6500 
6501  case 418:
6502 
6503  {
6504  osresult->setUsedCPUNumberValue( (yyvsp[(1) - (1)].ival)); parserData->errorText = NULL;
6505 }
6506  break;
6507 
6508  case 420:
6509 
6510  {
6511  if (parserData->otherJobResultsPresent)
6512  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one job other results element allowed");
6513  parserData->otherJobResultsPresent = true;
6514  }
6515  break;
6516 
6517  case 421:
6518 
6519  {
6520  if (parserData->tempInt < 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "number of other job results cannot be negative");
6521  if (osresult->setNumberOfOtherJobResults(parserData->tempInt) == false)
6522  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setNumberOfOtherJobResults failed");
6523  parserData->numberOf = parserData->tempInt;
6524  parserData->kounter = 0;
6525 }
6526  break;
6527 
6528  case 422:
6529 
6530  {
6531  if (parserData->numberOf > 0)
6532  osrlerror(NULL, NULL, parserData, osglData, osnlData, "expected at least one <other> element");
6533  }
6534  break;
6535 
6536  case 423:
6537 
6538  {
6539  if (parserData->kounter < parserData->numberOf - 1)
6540  osrlerror(NULL, NULL, parserData, osglData, osnlData, "fewer <other> elements than specified");
6541  }
6542  break;
6543 
6544  case 430:
6545 
6546  {
6547  parserData->kounter++;
6548 }
6549  break;
6550 
6551  case 431:
6552 
6553  {
6554  if (parserData->kounter >= parserData->numberOf)
6555  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <other> elements than specified");
6556  osglData->namePresent = false;
6557  osglData->valuePresent = false;
6558  osglData->descriptionPresent = false;
6559  osglData->name = "";
6560  osglData->value = "";
6561  osglData->description = "";
6562 }
6563  break;
6564 
6565  case 432:
6566 
6567  {
6568  if (!osglData->namePresent)
6569  osrlerror (NULL, NULL, parserData, osglData, osnlData, "<other> must have name attribute");
6570 }
6571  break;
6572 
6573  case 435:
6574 
6575  {
6576  if (osglData->name.length() == 0)
6577  osrlerror(NULL, NULL, parserData, osglData, osnlData, "otherResult name cannot be empty");
6578  if (osresult->setOtherJobResultName(parserData->kounter, osglData->name) == false)
6579  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setJobOtherResultName failed");
6580  }
6581  break;
6582 
6583  case 436:
6584 
6585  {
6586  if (osresult->setOtherJobResultValue(parserData->kounter, osglData->value) == false)
6587  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setJobOtherResultValue failed");
6588  }
6589  break;
6590 
6591  case 437:
6592 
6593  {
6594  if (osresult->setOtherJobResultDescription(parserData->kounter, osglData->description) == false)
6595  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setJobOtherResultDescription failed");
6596  }
6597  break;
6598 
6599  case 442:
6600 
6601  {
6602  parserData->numberAttributePresent = false;
6603  parserData->nVarPresent = false;
6604  parserData->nObjPresent = false;
6605  parserData->nConPresent = false;
6606 }
6607  break;
6608 
6609  case 443:
6610 
6611  {
6612  if (!parserData->numberAttributePresent)
6613  osrlerror (NULL, NULL, parserData, osglData, osnlData, "numberOfSolutions was never set");
6614 }
6615  break;
6616 
6617  case 446:
6618 
6619  {
6620  parserData->numberOfSolutions = parserData->tempInt;
6621  if (osresult->setSolutionNumber(parserData->tempInt) == false)
6622  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSolutionNumber failed");
6623  parserData->solutionIdx = 0;
6624  }
6625  break;
6626 
6627  case 447:
6628 
6629  {
6630  if (osresult->setVariableNumber(osglData->numberOfVariables) == false)
6631  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setVariableNumber failed");
6632  }
6633  break;
6634 
6635  case 448:
6636 
6637  {
6638  if (osresult->setConstraintNumber(osglData->numberOfConstraints) == false)
6639  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setConstraintNumber failed");
6640  }
6641  break;
6642 
6643  case 449:
6644 
6645  {
6646  if (osresult->setObjectiveNumber(osglData->numberOfObjectives) == false)
6647  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setObjectiveNumber failed");
6648  }
6649  break;
6650 
6651  case 450:
6652 
6653  {
6654  if (parserData->numberOfSolutions > 0)
6655  osrlerror(NULL, NULL, parserData, osglData, osnlData, "expected at least one <solution> element");
6656  }
6657  break;
6658 
6659  case 451:
6660 
6661  {
6662  if (parserData->solutionIdx != parserData->numberOfSolutions)
6663  osrlerror(NULL, NULL, parserData, osglData, osnlData, "fewer <solution> elements than specified");
6664  }
6665  break;
6666 
6667  case 459:
6668 
6669  {
6670  if (parserData->solutionIdx >= parserData->numberOfSolutions)
6671  osrlerror(NULL, NULL, parserData, osglData, osnlData, "too many solutions");
6672  parserData->idxAttributePresent = false;
6673  parserData->nameAttributePresent = false;
6674  parserData->weightedObjAttributePresent = false;
6675 }
6676  break;
6677 
6678  case 466:
6679 
6680  {
6681  if (parserData->idxAttributePresent)
6682  osrlerror(NULL, NULL, parserData, osglData, osnlData, "target objective idx previously set");
6683  parserData->idxAttributePresent = true;
6684  if((yyvsp[(3) - (4)].ival) >= 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "target objective index must be negative");
6685  if (osresult->setSolutionTargetObjectiveIdx(parserData->solutionIdx, (yyvsp[(3) - (4)].ival)) == false)
6686  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSolutionTargetObjectiveIdx failed");
6687  }
6688  break;
6689 
6690  case 467:
6691 
6692  {
6693  if (parserData->nameAttributePresent)
6694  osrlerror(NULL, NULL, parserData, osglData, osnlData, "target objective name previously set");
6695  parserData->nameAttributePresent = true;
6696  parserData->tempStr = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));
6697  if (osresult->setSolutionTargetObjectiveName(parserData->solutionIdx, parserData->tempStr) == false)
6698  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSolutionTargetObjectiveName failed");
6699  }
6700  break;
6701 
6702  case 468:
6703 
6704  {
6705  if (parserData->weightedObjAttributePresent)
6706  osrlerror(NULL, NULL, parserData, osglData, osnlData, "weighted objective attribute previously set");
6707  parserData->weightedObjAttributePresent = true;
6708  parserData->tempStr = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));
6709  if (parserData->tempStr == "true")
6710  {
6711  if (osresult->setSolutionWeightedObjectives(parserData->solutionIdx, true) == false)
6712  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSolutionWeightedObjectives failed");
6713  }
6714  else if (parserData->tempStr == "false")
6715  {
6716  if (osresult->setSolutionWeightedObjectives(parserData->solutionIdx, false) == false)
6717  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSolutionWeightedObjectives failed");
6718  }
6719  else
6720  osrlerror(NULL, NULL, parserData, osglData, osnlData, "weightedobjectives must be true or false");
6721 }
6722  break;
6723 
6724  case 469:
6725 
6726  {
6727  parserData->solutionIdx++;
6728  }
6729  break;
6730 
6731  case 471:
6732 
6733  {
6734  osglData->typePresent = false;
6735  osglData->type = "";
6736  osglData->description = "";
6737  osglData->descriptionPresent = false;
6738  parserData->numberAttributePresent = false;
6739  parserData->numberOf = 0;
6740  }
6741  break;
6742 
6743  case 472:
6744 
6745  {
6746  if (!osglData->typePresent)
6747  osrlerror(NULL, NULL, parserData, osglData, osnlData, "type attribute must be present for solution status element");
6748  }
6749  break;
6750 
6751  case 475:
6752 
6753  {
6754  if (osresult->setSolutionStatusType(parserData->solutionIdx, osglData->type) == false)
6755  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSolutionStatusType failed");
6756  }
6757  break;
6758 
6759  case 476:
6760 
6761  {
6762  if (osresult->setSolutionStatusDescription(parserData->solutionIdx, osglData->description) == false)
6763  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSolutionStatusDescription failed");
6764  }
6765  break;
6766 
6767  case 477:
6768 
6769  {
6770  if (osresult->setNumberOfSolutionSubstatuses(parserData->solutionIdx, parserData->tempInt) == false)
6771  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setNumberOfSolutionSubstatuses failed");
6772  parserData->numberOf = parserData->tempInt;
6773  parserData->kounter = 0;
6774  }
6775  break;
6776 
6777  case 478:
6778 
6779  {
6780  if (parserData->numberOf > 0)
6781  osrlerror(NULL, NULL, parserData, osglData, osnlData, "expected at least one <substatus> element");
6782  }
6783  break;
6784 
6785  case 479:
6786 
6787  {
6788  if (parserData->kounter != parserData->numberOf)
6789  osrlerror(NULL, NULL, parserData, osglData, osnlData, "fewer <substatus> elements than specified");
6790  }
6791  break;
6792 
6793  case 486:
6794 
6795  {
6796  parserData->kounter++;
6797 }
6798  break;
6799 
6800  case 487:
6801 
6802  {
6803  if (parserData->kounter >= parserData->numberOf)
6804  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <substatus> elements than specified");
6805  osglData->typePresent = false;
6806  osglData->type = "";
6807  osglData->descriptionPresent = false;
6808  osglData->description = "";
6809 }
6810  break;
6811 
6812  case 488:
6813 
6814  {
6815  if (!osglData->typePresent)
6816  osrlerror (NULL, NULL, parserData, osglData, osnlData, "<substatus> must have type attribute");
6817 }
6818  break;
6819 
6820  case 491:
6821 
6822  {
6823  if (osresult->setSolutionSubstatusType(parserData->solutionIdx, parserData->kounter,
6824  osglData->type) == false)
6825  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSolutionSubstatusType failed");
6826  }
6827  break;
6828 
6829  case 492:
6830 
6831  {
6832  if (osresult->setSolutionSubstatusDescription(parserData->solutionIdx, parserData->kounter,
6833  osglData->description) == false)
6834  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSolutionSubstatusDescription failed");
6835  }
6836  break;
6837 
6838  case 503:
6839 
6840  {
6841  parserData->tempStr = (yyvsp[(1) - (1)].sval);
6842  free((yyvsp[(1) - (1)].sval));
6843  osresult->setSolutionMessage(parserData->solutionIdx, parserData->tempStr);
6844  parserData->errorText = NULL;
6845  }
6846  break;
6847 
6848  case 506:
6849 
6850  {
6851  parserData->numberOfOtherVariableResults = 0;
6852  osresult->optimization->solution[parserData->solutionIdx]->variables = new VariableSolution();
6853 }
6854  break;
6855 
6856  case 508:
6857 
6858  {
6859  if (osresult->setNumberOfOtherVariableResults(parserData->solutionIdx, parserData->tempInt) == false)
6860  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setNumberOfOtherVariableResults failed");
6861  parserData->numberOfOtherVariableResults = parserData->tempInt;
6862  parserData->iOther = 0;
6863 }
6864  break;
6865 
6866  case 516:
6867 
6868  {
6869  osglData->numberOfVarPresent = false;
6870 }
6871  break;
6872 
6873  case 517:
6874 
6875  {
6876  if (osresult->setNumberOfVarValues(parserData->solutionIdx, osglData->numberOfVar) == false)
6877  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setNumberOfVarValues failed");
6878  parserData->kounter = 0;
6879 }
6880  break;
6881 
6882  case 518:
6883 
6884  {
6885  if (osglData->numberOfVar > 0)
6886  osrlerror(NULL, NULL, parserData, osglData, osnlData, "expected at least one <var> element");
6887  }
6888  break;
6889 
6890  case 519:
6891 
6892  {
6893  if (parserData->kounter != osglData->numberOfVar)
6894  osrlerror(NULL, NULL, parserData, osglData, osnlData, "fewer <var> elements than specified");
6895  }
6896  break;
6897 
6898  case 526:
6899 
6900  {
6901  if (!osglData->idxPresent)
6902  osrlerror(NULL, NULL, parserData, osglData, osnlData, "idx attribute not set");
6903  if (osresult->setVarValue(parserData->solutionIdx, parserData->kounter,
6904  osglData->idx, osglData->name, parserData->tempVal) == false)
6905  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setVarValue failed");
6906  parserData->kounter++;
6907 }
6908  break;
6909 
6910  case 527:
6911 
6912  {
6913  if (parserData->kounter >= osglData->numberOfVar)
6914  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <var> elements than specified");
6915  osglData->idxPresent = false;
6916  osglData->namePresent = false;
6917  osglData->name = "";
6918 }
6919  break;
6920 
6921  case 535:
6922 
6923  {
6924  osglData->numberOfVarPresent = false;
6925 }
6926  break;
6927 
6928  case 536:
6929 
6930  {
6931  if (osresult->setNumberOfVarValuesString(parserData->solutionIdx, osglData->numberOfVar) == false)
6932  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setNumberOfVarValuesString failed");
6933  parserData->kounter = 0;
6934 }
6935  break;
6936 
6937  case 537:
6938 
6939  {
6940  if (osglData->numberOfVar > 0)
6941  osrlerror(NULL, NULL, parserData, osglData, osnlData, "expected at least one <var> element");
6942  }
6943  break;
6944 
6945  case 538:
6946 
6947  {
6948  if (parserData->kounter != osglData->numberOfVar)
6949  osrlerror(NULL, NULL, parserData, osglData, osnlData, "fewer <var> elements than specified");
6950  }
6951  break;
6952 
6953  case 545:
6954 
6955  {
6956  if (!osglData->idxPresent)
6957  osrlerror(NULL, NULL, parserData, osglData, osnlData, "idx attribute not set");
6958  if (osresult->setVarValueString(parserData->solutionIdx, parserData->kounter,
6959  osglData->idx, osglData->name, parserData->tempStr) == false)
6960  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setVarValueString failed");
6961  parserData->kounter++;
6962 }
6963  break;
6964 
6965  case 546:
6966 
6967  {
6968  if (parserData->kounter >= osglData->numberOfVar)
6969  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <var> elements than specified");
6970  osglData->idxPresent = false;
6971  osglData->namePresent = false;
6972  osglData->name = "";
6973 }
6974  break;
6975 
6976  case 551:
6977 
6978  {parserData->tempStr = "";}
6979  break;
6980 
6981  case 556:
6982 
6983  {
6984  parserData->tempStr = (yyvsp[(1) - (1)].sval); free((yyvsp[(1) - (1)].sval));
6985  }
6986  break;
6987 
6988  case 559:
6989 
6990  {
6991  osresult->optimization->solution[parserData->solutionIdx]->variables->basisStatus = new BasisStatus();
6992 }
6993  break;
6994 
6995  case 566:
6996 
6997  {
6998  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_variables, ENUM_BASIS_STATUS_basic, osglData->osglIntArray, osglData->numberOfEl) != true)
6999  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set variables basic failed");
7000  delete[] osglData->osglIntArray;
7001  osglData->osglIntArray = NULL;
7002  osglData->numberOfEl = 0;
7003 }
7004  break;
7005 
7006  case 568:
7007 
7008  {
7009  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_variables, ENUM_BASIS_STATUS_atLower, osglData->osglIntArray, osglData->numberOfEl) != true)
7010  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set variables atLower failed");
7011  delete[] osglData->osglIntArray;
7012  osglData->osglIntArray = NULL;
7013  osglData->numberOfEl = 0;
7014 }
7015  break;
7016 
7017  case 570:
7018 
7019  {
7020  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_variables, ENUM_BASIS_STATUS_atUpper, osglData->osglIntArray, osglData->numberOfEl) != true)
7021  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set variables atUpper failed");
7022  delete[] osglData->osglIntArray;
7023  osglData->osglIntArray = NULL;
7024  osglData->numberOfEl = 0;
7025 }
7026  break;
7027 
7028  case 572:
7029 
7030  {
7031  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_variables, ENUM_BASIS_STATUS_atEquality, osglData->osglIntArray, osglData->numberOfEl) != true)
7032  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set variables atEquality failed");
7033  delete[] osglData->osglIntArray;
7034  osglData->osglIntArray = NULL;
7035  osglData->numberOfEl = 0;
7036 }
7037  break;
7038 
7039  case 574:
7040 
7041  {
7042  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_variables, ENUM_BASIS_STATUS_isFree, osglData->osglIntArray, osglData->numberOfEl) != true)
7043  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set variables isFree failed");
7044  delete[] osglData->osglIntArray;
7045  osglData->osglIntArray = NULL;
7046  osglData->numberOfEl = 0;
7047 }
7048  break;
7049 
7050  case 576:
7051 
7052  {
7053  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_variables, ENUM_BASIS_STATUS_superbasic, osglData->osglIntArray, osglData->numberOfEl) != true)
7054  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set variables superbasic failed");
7055  delete[] osglData->osglIntArray;
7056  osglData->osglIntArray = NULL;
7057  osglData->numberOfEl = 0;
7058 }
7059  break;
7060 
7061  case 578:
7062 
7063  {
7064  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_variables, ENUM_BASIS_STATUS_unknown, osglData->osglIntArray, osglData->numberOfEl) != true)
7065  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set variables unknown failed");
7066  delete[] osglData->osglIntArray;
7067  osglData->osglIntArray = NULL;
7068  osglData->numberOfEl = 0;
7069 }
7070  break;
7071 
7072  case 581:
7073 
7074  {
7075  parserData->iOther++;
7076  }
7077  break;
7078 
7079  case 582:
7080 
7081  {
7082  if (parserData->iOther >= parserData->numberOfOtherVariableResults)
7083  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <otherVariableResults> than specified");
7084  osglData->namePresent = false;
7085  osglData->typePresent = false;
7086  osglData->valuePresent = false;
7087  osglData->solverPresent = false;
7088  osglData->categoryPresent = false;
7089  osglData->descriptionPresent = false;
7090  osglData->numberOfVarPresent = false;
7091  osglData->varTypePresent = false;
7092  osglData->name = "";
7093  osglData->type = "";
7094  osglData->value = "";
7095  osglData->solver = "";
7096  osglData->category = "";
7097  osglData->description = "";
7098  osglData->varType = "";
7099  osglData->numberOfEnumerationsPresent = false;
7100  osglData->enumTypePresent = false;
7101  osglData->enumType = "";
7102 }
7103  break;
7104 
7105  case 583:
7106 
7107  {
7108  if(!osglData->namePresent)
7109  osrlerror(NULL, NULL, parserData, osglData, osnlData, "other element requires name attribute");
7110  }
7111  break;
7112 
7113  case 586:
7114 
7115  {
7116  if (osresult->setOtherVariableResultNumberOfVar(parserData->solutionIdx,
7117  parserData->iOther,
7118  osglData->numberOfVar) == false)
7119  osrlerror(NULL, NULL, parserData, osglData, osnlData,
7120  "setOtherVariableResultNumberOfVar failed");
7121  parserData->kounter = 0;
7122  }
7123  break;
7124 
7125  case 587:
7126 
7127  {
7128  if (osresult->setOtherVariableResultNumberOfEnumerations(parserData->solutionIdx,
7129  parserData->iOther,
7130  osglData->numberOfEnumerations) == false)
7131  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherVariableResultNumberOfEnumerations failed");
7132  parserData->kounter = 0;
7133  }
7134  break;
7135 
7136  case 588:
7137 
7138  {
7139  if (osresult->setOtherVariableResultValue(parserData->solutionIdx, parserData->iOther,
7140  osglData->value) == false)
7141  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherVariableResultValue failed");
7142  }
7143  break;
7144 
7145  case 589:
7146 
7147  {
7148  if (osresult->setOtherVariableResultSolver(parserData->solutionIdx, parserData->iOther,
7149  osglData->solver) == false)
7150  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherVariableResultSolver failed");
7151  }
7152  break;
7153 
7154  case 590:
7155 
7156  {
7157  if (osresult->setOtherVariableResultName(parserData->solutionIdx, parserData->iOther,
7158  osglData->name) == false)
7159  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherVariableResultName failed");
7160  }
7161  break;
7162 
7163  case 591:
7164 
7165  {
7166  if (osresult->setOtherVariableResultType(parserData->solutionIdx, parserData->iOther,
7167  osglData->type) == false)
7168  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherVariableResultType failed");
7169  }
7170  break;
7171 
7172  case 592:
7173 
7174  {
7175  if (osresult->setOtherVariableResultVarType(parserData->solutionIdx, parserData->iOther,
7176  osglData->varType) == false)
7177  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherVariableResultVarType failed");
7178  }
7179  break;
7180 
7181  case 593:
7182 
7183  {
7184  if (osresult->setOtherVariableResultEnumType(parserData->solutionIdx, parserData->iOther,
7185  osglData->enumType) == false)
7186  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherVariableResultEnumType failed");
7187  }
7188  break;
7189 
7190  case 594:
7191 
7192  {
7193  if (osresult->setOtherVariableResultDescription(parserData->solutionIdx, parserData->iOther,
7194  osglData->description) == false)
7195  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherVariableResultDescription failed");
7196  }
7197  break;
7198 
7199  case 604:
7200 
7201  {
7202  if (!osglData->idxPresent)
7203  osrlerror(NULL, NULL, parserData, osglData, osnlData, "idx attribute not set");
7204  parserData->kounter++;
7205 }
7206  break;
7207 
7208  case 605:
7209 
7210  {
7211  if (parserData->kounter >= osglData->numberOfVar)
7212  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <var> elements than specified");
7213  osglData->idxPresent = false;
7214  osglData->namePresent = false;
7215  osglData->name = "" ;
7216 }
7217  break;
7218 
7219  case 608:
7220 
7221  {
7222  if (osresult->setOtherVariableResultVarIdx(parserData->solutionIdx, parserData->iOther,
7223  parserData->kounter, osglData->idx) == false)
7224  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherVariableResultVarIdx failed");
7225  }
7226  break;
7227 
7228  case 609:
7229 
7230  {
7231  if (osresult->setOtherVariableResultVarName(parserData->solutionIdx, parserData->iOther,
7232  parserData->kounter, osglData->name) == false)
7233  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherVariableResultVarName failed");
7234  }
7235  break;
7236 
7237  case 615:
7238 
7239  {
7240  if (osresult->setOtherVariableResultVar(parserData->solutionIdx, parserData->iOther,
7241  parserData->kounter, parserData->tempStr)
7242  == false)
7243  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherVariableResultVar failed");
7244  }
7245  break;
7246 
7247  case 618:
7248 
7249  {
7250  if (osresult->setOtherOptionOrResultEnumeration(parserData->solutionIdx, parserData->iOther,
7251  ENUM_PROBLEM_COMPONENT_variables, parserData->kounter, osglData->value,
7252  osglData->description, osglData->osglIntArray, osglData->numberOfEl) != true)
7253  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set other variable option failed");
7254  delete[] osglData->osglIntArray;
7255  osglData->osglIntArray = NULL;
7256  parserData->kounter++;
7257 }
7258  break;
7259 
7260  case 619:
7261 
7262  {
7263  osglData->numberOfElPresent = false;
7264  osglData->numberOfEl = 0;
7265  osglData->valuePresent = false;
7266  osglData->value = "";
7267  osglData->descriptionPresent = false;
7268  osglData->description = "";
7269 }
7270  break;
7271 
7272  case 620:
7273 
7274  {
7275  if(!osglData->namePresent)
7276  osrlerror(NULL, NULL, parserData, osglData, osnlData, "other element enumeration requires name attribute");
7277  }
7278  break;
7279 
7280  case 623:
7281 
7282  {
7283  osglData->osglCounter = 0;
7284  osglData->osglIntArray = new int[osglData->numberOfEl];
7285  }
7286  break;
7287 
7288  case 633:
7289 
7290  {
7291  parserData->numberOfOtherObjectiveResults = 0;
7292  parserData->iOther = 0;
7293  osresult->optimization->solution[parserData->solutionIdx]->objectives = new ObjectiveSolution();
7294 }
7295  break;
7296 
7297  case 635:
7298 
7299  {
7300  parserData->numberOfOtherObjectiveResults = parserData->tempInt;
7301  if (osresult->setNumberOfOtherObjectiveResults(parserData->solutionIdx, parserData->tempInt) == false)
7302  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setNumberOfOtherObjectiveResults failed");
7303  parserData->iOther = 0;
7304 }
7305  break;
7306 
7307  case 643:
7308 
7309  {
7310  osglData->numberOfObjPresent = false;
7311 }
7312  break;
7313 
7314  case 644:
7315 
7316  {
7317  if (osresult->setNumberOfObjValues(parserData->solutionIdx, osglData->numberOfObj) == false)
7318  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setNumberOfObjValues failed");
7319  parserData->kounter = 0;
7320 }
7321  break;
7322 
7323  case 645:
7324 
7325  {
7326  if (osglData->numberOfObj > 0)
7327  osrlerror(NULL, NULL, parserData, osglData, osnlData, "expected at least one <obj> element");
7328  }
7329  break;
7330 
7331  case 646:
7332 
7333  {
7334  if (parserData->kounter != osglData->numberOfObj)
7335  osrlerror(NULL, NULL, parserData, osglData, osnlData, "fewer <obj> elements than specified");
7336  }
7337  break;
7338 
7339  case 653:
7340 
7341  {
7342  if (osresult->setObjValue(parserData->solutionIdx, parserData->kounter,
7343  osglData->idx, osglData->name, parserData->tempVal) == false)
7344  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setObjValue failed");
7345  parserData->kounter++;
7346 }
7347  break;
7348 
7349  case 654:
7350 
7351  {
7352  if (parserData->kounter >= osglData->numberOfObj)
7353  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <obj> elements than specified");
7354  osglData->idxPresent = false;
7355  osglData->idx = -1;
7356  osglData->namePresent = false;
7357  osglData->name = "" ;
7358 }
7359  break;
7360 
7361  case 662:
7362 
7363  {
7364  osresult->optimization->solution[parserData->solutionIdx]->objectives->basisStatus = new BasisStatus();
7365 }
7366  break;
7367 
7368  case 669:
7369 
7370  {
7371  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_objectives, ENUM_BASIS_STATUS_basic, osglData->osglIntArray, osglData->numberOfEl) != true)
7372  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set objectives basic failed");
7373  delete[] osglData->osglIntArray;
7374  osglData->osglIntArray = NULL;
7375  osglData->numberOfEl = 0;
7376 }
7377  break;
7378 
7379  case 671:
7380 
7381  {
7382  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_objectives, ENUM_BASIS_STATUS_atLower, osglData->osglIntArray, osglData->numberOfEl) != true)
7383  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set objectives atLower failed");
7384  delete[] osglData->osglIntArray;
7385  osglData->osglIntArray = NULL;
7386  osglData->numberOfEl = 0;
7387 }
7388  break;
7389 
7390  case 673:
7391 
7392  {
7393  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_objectives, ENUM_BASIS_STATUS_atUpper, osglData->osglIntArray, osglData->numberOfEl) != true)
7394  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set objectives atUpper failed");
7395  delete[] osglData->osglIntArray;
7396  osglData->osglIntArray = NULL;
7397  osglData->numberOfEl = 0;
7398 }
7399  break;
7400 
7401  case 675:
7402 
7403  {
7404  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_objectives, ENUM_BASIS_STATUS_atEquality, osglData->osglIntArray, osglData->numberOfEl) != true)
7405  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set objectives atEquality failed");
7406  delete[] osglData->osglIntArray;
7407  osglData->osglIntArray = NULL;
7408  osglData->numberOfEl = 0;
7409 }
7410  break;
7411 
7412  case 677:
7413 
7414  {
7415  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_objectives, ENUM_BASIS_STATUS_isFree, osglData->osglIntArray, osglData->numberOfEl) != true)
7416  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set objectives isFree failed");
7417  delete[] osglData->osglIntArray;
7418  osglData->osglIntArray = NULL;
7419  osglData->numberOfEl = 0;
7420 }
7421  break;
7422 
7423  case 679:
7424 
7425  {
7426  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_objectives, ENUM_BASIS_STATUS_superbasic, osglData->osglIntArray, osglData->numberOfEl) != true)
7427  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set objectives superbasic failed");
7428  delete[] osglData->osglIntArray;
7429  osglData->osglIntArray = NULL;
7430  osglData->numberOfEl = 0;
7431 }
7432  break;
7433 
7434  case 681:
7435 
7436  {
7437  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_objectives, ENUM_BASIS_STATUS_unknown, osglData->osglIntArray, osglData->numberOfEl) != true)
7438  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set objectives unknown failed");
7439  delete[] osglData->osglIntArray;
7440  osglData->osglIntArray = NULL;
7441  osglData->numberOfEl = 0;
7442 }
7443  break;
7444 
7445  case 684:
7446 
7447  {
7448  parserData->iOther++;
7449  }
7450  break;
7451 
7452  case 685:
7453 
7454  {
7455  if (parserData->iOther >= parserData->numberOfOtherObjectiveResults)
7456  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <otherObjectiveResults> than specified");
7457  osglData->namePresent = false;
7458  osglData->typePresent = false;
7459  osglData->valuePresent = false;
7460  osglData->solverPresent = false;
7461  osglData->categoryPresent = false;
7462  osglData->descriptionPresent = false;
7463  osglData->numberOfObjPresent = false;
7464  osglData->objTypePresent = false;
7465  osglData->name = "";
7466  osglData->type = "";
7467  osglData->value = "";
7468  osglData->solver = "";
7469  osglData->category = "";
7470  osglData->description = "";
7471  osglData->objType = "";
7472  osglData->numberOfEnumerationsPresent = false;
7473  osglData->enumTypePresent = false;
7474  osglData->enumType = "";
7475 }
7476  break;
7477 
7478  case 686:
7479 
7480  {
7481  if(!osglData->namePresent)
7482  osrlerror(NULL, NULL, parserData, osglData, osnlData, "other element requires name attribute");
7483  }
7484  break;
7485 
7486  case 689:
7487 
7488  {
7489  if (osresult->setOtherObjectiveResultNumberOfObj(parserData->solutionIdx,
7490  parserData->iOther,
7491  osglData->numberOfObj) == false)
7492  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherObjectiveResultNumberOfObj failed");
7493  parserData->kounter = 0;
7494  }
7495  break;
7496 
7497  case 690:
7498 
7499  {
7500  if (osresult->setOtherObjectiveResultNumberOfEnumerations(parserData->solutionIdx,
7501  parserData->iOther,
7502  osglData->numberOfEnumerations) == false)
7503  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherObjectiveResultNumberOfEnumerations failed");
7504  parserData->kounter = 0;
7505  }
7506  break;
7507 
7508  case 691:
7509 
7510  {
7511  if (osresult->setOtherObjectiveResultValue(parserData->solutionIdx, parserData->iOther,
7512  osglData->value) == false)
7513  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherObjectiveResultValue failed");
7514  }
7515  break;
7516 
7517  case 692:
7518 
7519  {
7520  if (osresult->setOtherObjectiveResultSolver(parserData->solutionIdx, parserData->iOther,
7521  osglData->solver) == false)
7522  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherObjectiveResultSolver failed");
7523  }
7524  break;
7525 
7526  case 693:
7527 
7528  {
7529  if (osresult->setOtherObjectiveResultName(parserData->solutionIdx, parserData->iOther,
7530  osglData->name) == false)
7531  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherObjectiveResultName failed");
7532  }
7533  break;
7534 
7535  case 694:
7536 
7537  {
7538  if (osresult->setOtherObjectiveResultType(parserData->solutionIdx, parserData->iOther,
7539  osglData->type) == false)
7540  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherObjectiveResultType failed");
7541  }
7542  break;
7543 
7544  case 695:
7545 
7546  {
7547  if (osresult->setOtherObjectiveResultObjType(parserData->solutionIdx, parserData->iOther,
7548  osglData->objType) == false)
7549  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherObjectiveResultObjType failed");
7550  }
7551  break;
7552 
7553  case 696:
7554 
7555  {
7556  if (osresult->setOtherObjectiveResultEnumType(parserData->solutionIdx, parserData->iOther,
7557  osglData->enumType) == false)
7558  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherObjectiveResultEnumType failed");
7559  }
7560  break;
7561 
7562  case 697:
7563 
7564  {
7565  if (osresult->setOtherObjectiveResultDescription(parserData->solutionIdx,
7566  parserData->iOther,
7567  osglData->description) == false)
7568  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherObjectiveResultDescription failed");
7569  }
7570  break;
7571 
7572  case 707:
7573 
7574  {
7575  parserData->kounter++;
7576 }
7577  break;
7578 
7579  case 708:
7580 
7581  {
7582  if (parserData->kounter >= osglData->numberOfObj)
7583  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <obj> elements than specified");
7584  osglData->idxPresent = false;
7585  osglData->idx = -1;
7586  osglData->namePresent = false;
7587  osglData->name = "" ;
7588 }
7589  break;
7590 
7591  case 711:
7592 
7593  {
7594  if (osresult->setOtherObjectiveResultObjIdx(parserData->solutionIdx, parserData->iOther,
7595  parserData->kounter, osglData->idx) == false)
7596  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherObjectiveResultObjIdx failed");
7597  }
7598  break;
7599 
7600  case 712:
7601 
7602  {
7603  if (osresult->setOtherObjectiveResultObjName(parserData->solutionIdx, parserData->iOther,
7604  parserData->kounter, osglData->name) == false)
7605  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherObjectiveResultObjName failed");
7606  }
7607  break;
7608 
7609  case 718:
7610 
7611  {
7612  if (osresult->setOtherObjectiveResultObj(parserData->solutionIdx, parserData->iOther, parserData->kounter, parserData->tempStr) == false)
7613  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherObjectiveResultObj failed");
7614  }
7615  break;
7616 
7617  case 721:
7618 
7619  {
7620  if (osresult->setOtherOptionOrResultEnumeration(parserData->solutionIdx, parserData->iOther,
7621  ENUM_PROBLEM_COMPONENT_objectives, parserData->kounter, osglData->value,
7622  osglData->description, osglData->osglIntArray, osglData->numberOfEl) != true)
7623  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set other objective option failed");
7624  delete[] osglData->osglIntArray;
7625  osglData->osglIntArray = NULL;
7626  osglData->numberOfEl = 0;
7627  parserData->kounter++;
7628 }
7629  break;
7630 
7631  case 722:
7632 
7633  {
7634  osglData->numberOfElPresent = false;
7635  osglData->numberOfEl = 0;
7636  osglData->valuePresent = false;
7637  osglData->descriptionPresent = false;
7638  osglData->value = "";
7639  osglData->description = "";
7640 }
7641  break;
7642 
7643  case 723:
7644 
7645  {
7646  if(!osglData->namePresent)
7647  osrlerror(NULL, NULL, parserData, osglData, osnlData, "other element enumeration requires name attribute");
7648  }
7649  break;
7650 
7651  case 726:
7652 
7653  {
7654  osglData->osglCounter = 0;
7655  osglData->osglIntArray = new int[osglData->numberOfEl];
7656  }
7657  break;
7658 
7659  case 736:
7660 
7661  {
7662  parserData->numberOfOtherConstraintResults = 0;
7663  parserData->iOther = 0;
7664  osresult->optimization->solution[parserData->solutionIdx]->constraints = new ConstraintSolution();
7665 }
7666  break;
7667 
7668  case 738:
7669 
7670  {
7671  parserData->numberOfOtherConstraintResults = parserData->tempInt;
7672  if (osresult->setNumberOfOtherConstraintResults(parserData->solutionIdx, parserData->tempInt) == false)
7673  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setNumberOfOtherConstraintResults failed");
7674  parserData->iOther = 0;
7675 }
7676  break;
7677 
7678  case 746:
7679 
7680  {
7681  osglData->numberOfConPresent = false;
7682 }
7683  break;
7684 
7685  case 747:
7686 
7687  {
7688  if (osresult->setNumberOfDualValues(parserData->solutionIdx, osglData->numberOfCon) == false)
7689  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setNumberOfDualValues failed");
7690  parserData->kounter = 0;
7691 }
7692  break;
7693 
7694  case 748:
7695 
7696  {
7697  if (osglData->numberOfCon > 0)
7698  osrlerror(NULL, NULL, parserData, osglData, osnlData, "expected at least one <con> element");
7699  }
7700  break;
7701 
7702  case 749:
7703 
7704  {
7705  if (parserData->kounter != osglData->numberOfCon)
7706  osrlerror(NULL, NULL, parserData, osglData, osnlData, "fewer <con> elements than specified");
7707  }
7708  break;
7709 
7710  case 756:
7711 
7712  {
7713  if (osresult->setDualValue(parserData->solutionIdx, parserData->kounter,
7714  osglData->idx, osglData->name, parserData->tempVal ) == false)
7715  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setDualValue failed");
7716  parserData->kounter++;
7717 }
7718  break;
7719 
7720  case 757:
7721 
7722  {
7723  if (parserData->kounter >= osglData->numberOfCon)
7724  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <con> elements than specified");
7725  osglData->idxPresent = false;
7726  osglData->namePresent = false;
7727  osglData->name = "";
7728 }
7729  break;
7730 
7731  case 765:
7732 
7733  {
7734  osresult->optimization->solution[parserData->solutionIdx]->constraints->basisStatus = new BasisStatus();
7735 }
7736  break;
7737 
7738  case 772:
7739 
7740  {
7741  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_constraints, ENUM_BASIS_STATUS_basic, osglData->osglIntArray, osglData->numberOfEl) != true)
7742  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set slacks basic failed");
7743  delete[] osglData->osglIntArray;
7744  osglData->osglIntArray = NULL;
7745  osglData->numberOfEl = 0;
7746 }
7747  break;
7748 
7749  case 774:
7750 
7751  {
7752  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_constraints, ENUM_BASIS_STATUS_atLower, osglData->osglIntArray, osglData->numberOfEl) != true)
7753  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set slacks atLower failed");
7754  delete[] osglData->osglIntArray;
7755  osglData->osglIntArray = NULL;
7756  osglData->numberOfEl = 0;
7757 }
7758  break;
7759 
7760  case 776:
7761 
7762  {
7763  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_constraints, ENUM_BASIS_STATUS_atUpper, osglData->osglIntArray, osglData->numberOfEl) != true)
7764  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set slacks atUpper failed");
7765  delete[] osglData->osglIntArray;
7766  osglData->osglIntArray = NULL;
7767  osglData->numberOfEl = 0;
7768 }
7769  break;
7770 
7771  case 778:
7772 
7773  {
7774  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_constraints, ENUM_BASIS_STATUS_atEquality, osglData->osglIntArray, osglData->numberOfEl) != true)
7775  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set slacks atEquality failed");
7776  delete[] osglData->osglIntArray;
7777  osglData->osglIntArray = NULL;
7778  osglData->numberOfEl = 0;
7779 }
7780  break;
7781 
7782  case 780:
7783 
7784  {
7785  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_constraints, ENUM_BASIS_STATUS_isFree, osglData->osglIntArray, osglData->numberOfEl) != true)
7786  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set slacks isFree failed");
7787  delete[] osglData->osglIntArray;
7788  osglData->osglIntArray = NULL;
7789  osglData->numberOfEl = 0;
7790 }
7791  break;
7792 
7793  case 782:
7794 
7795  {
7796  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_constraints, ENUM_BASIS_STATUS_superbasic, osglData->osglIntArray, osglData->numberOfEl) != true)
7797  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set variables superbasic failed");
7798  delete[] osglData->osglIntArray;
7799  osglData->osglIntArray = NULL;
7800  osglData->numberOfEl = 0;
7801 }
7802  break;
7803 
7804  case 784:
7805 
7806  {
7807  if (osresult->setBasisStatus(parserData->solutionIdx, ENUM_PROBLEM_COMPONENT_constraints, ENUM_BASIS_STATUS_unknown, osglData->osglIntArray, osglData->numberOfEl) != true)
7808  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set slacks unknown failed");
7809  delete[] osglData->osglIntArray;
7810  osglData->osglIntArray = NULL;
7811  osglData->numberOfEl = 0;
7812 }
7813  break;
7814 
7815  case 787:
7816 
7817  {
7818  parserData->iOther++;
7819  }
7820  break;
7821 
7822  case 788:
7823 
7824  {
7825  if (parserData->iOther >= parserData->numberOfOtherConstraintResults)
7826  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <otherConstraintResults> than specified");
7827  osglData->namePresent = false;
7828  osglData->typePresent = false;
7829  osglData->valuePresent = false;
7830  osglData->solverPresent = false;
7831  osglData->categoryPresent = false;
7832  osglData->descriptionPresent = false;
7833  osglData->numberOfConPresent = false;
7834  osglData->conTypePresent = false;
7835  osglData->name = "";
7836  osglData->type = "";
7837  osglData->value = "";
7838  osglData->solver = "";
7839  osglData->category = "";
7840  osglData->description = "";
7841  osglData->conType = "";
7842  osglData->numberOfEnumerationsPresent = false;
7843  osglData->enumTypePresent = false;
7844  osglData->enumType = "";
7845 }
7846  break;
7847 
7848  case 789:
7849 
7850  {
7851  if (!osglData->namePresent)
7852  osrlerror(NULL, NULL, parserData, osglData, osnlData, "other element requires name attribute");
7853  }
7854  break;
7855 
7856  case 792:
7857 
7858  {
7859  if (osresult->setOtherConstraintResultNumberOfCon(parserData->solutionIdx,
7860  parserData->iOther,
7861  osglData->numberOfCon) == false)
7862  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherConstraintResultNumberOfCon failed");
7863  parserData->kounter = 0;
7864  }
7865  break;
7866 
7867  case 793:
7868 
7869  {
7870  if (osresult->setOtherConstraintResultNumberOfEnumerations(parserData->solutionIdx,
7871  parserData->iOther,
7872  osglData->numberOfEnumerations) == false)
7873  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherConstraintResultNumberOfEnumerations failed");
7874  parserData->kounter = 0;
7875  }
7876  break;
7877 
7878  case 794:
7879 
7880  {
7881  if (osresult->setOtherConstraintResultValue(parserData->solutionIdx, parserData->iOther,
7882  osglData->value) == false)
7883  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherConstraintResultValue failed");
7884  }
7885  break;
7886 
7887  case 795:
7888 
7889  {
7890  if (osresult->setOtherConstraintResultSolver(parserData->solutionIdx, parserData->iOther,
7891  osglData->solver) == false)
7892  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherConstraintResultSolver failed");
7893  }
7894  break;
7895 
7896  case 796:
7897 
7898  {
7899  if (osresult->setOtherConstraintResultName(parserData->solutionIdx, parserData->iOther,
7900  osglData->name) == false)
7901  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherConstraintResultName failed");
7902  }
7903  break;
7904 
7905  case 797:
7906 
7907  {
7908  if (osresult->setOtherConstraintResultType(parserData->solutionIdx, parserData->iOther,
7909  osglData->type) == false)
7910  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherConstraintResultType failed");
7911  }
7912  break;
7913 
7914  case 798:
7915 
7916  {
7917  if (osresult->setOtherConstraintResultConType(parserData->solutionIdx, parserData->iOther,
7918  osglData->conType) == false)
7919  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherConstraintResultConType failed");
7920  }
7921  break;
7922 
7923  case 799:
7924 
7925  {
7926  if (osresult->setOtherConstraintResultEnumType(parserData->solutionIdx, parserData->iOther,
7927  osglData->enumType) == false)
7928  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherConstraintResultEnumType failed");
7929  }
7930  break;
7931 
7932  case 800:
7933 
7934  {
7935  if (osresult->setOtherConstraintResultDescription(parserData->solutionIdx, parserData->iOther,
7936  osglData->description) == false)
7937  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherConstraintResultDescription failed");
7938  }
7939  break;
7940 
7941  case 810:
7942 
7943  {
7944  if (!osglData->idxPresent)
7945  osrlerror(NULL, NULL, parserData, osglData, osnlData, "idx attribute not set");
7946  parserData->kounter++;
7947 }
7948  break;
7949 
7950  case 811:
7951 
7952  {
7953  if (parserData->kounter >= osglData->numberOfCon)
7954  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <con> elements than specified");
7955  osglData->idxPresent = false;
7956  osglData->namePresent = false;
7957  osglData->name = "" ;
7958 }
7959  break;
7960 
7961  case 814:
7962 
7963  {
7964  if (osresult->setOtherConstraintResultConIdx(parserData->solutionIdx, parserData->iOther, parserData->kounter, osglData->idx) == false)
7965  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherConstraintResultConIdx failed");
7966  }
7967  break;
7968 
7969  case 815:
7970 
7971  {
7972  if (osresult->setOtherConstraintResultConName(parserData->solutionIdx, parserData->iOther,
7973  parserData->kounter, osglData->name) == false)
7974  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherConstraintResultConName failed");
7975  }
7976  break;
7977 
7978  case 821:
7979 
7980  {
7981  if (osresult->setOtherConstraintResultCon(parserData->solutionIdx, parserData->iOther,
7982  parserData->kounter, parserData->tempStr) == false)
7983  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherConstraintResultCon failed");
7984  }
7985  break;
7986 
7987  case 824:
7988 
7989  {
7990  if (osresult->setOtherOptionOrResultEnumeration(parserData->solutionIdx, parserData->iOther,
7991  ENUM_PROBLEM_COMPONENT_constraints, parserData->kounter, osglData->value,
7992  osglData->description, osglData->osglIntArray, osglData->numberOfEl) != true)
7993  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set other constraint option failed");
7994  delete[] osglData->osglIntArray;
7995  osglData->osglIntArray = NULL;
7996  osglData->numberOfEl = 0;
7997  parserData->kounter++;
7998 }
7999  break;
8000 
8001  case 825:
8002 
8003  {
8004  osglData->numberOfElPresent = false;
8005  osglData->numberOfEl = 0;
8006  osglData->valuePresent = false;
8007  osglData->value = "";
8008  osglData->descriptionPresent = false;
8009  osglData->description = "";
8010 }
8011  break;
8012 
8013  case 826:
8014 
8015  {
8016  if(!osglData->namePresent)
8017  osrlerror(NULL, NULL, parserData, osglData, osnlData, "other element enumeration requires name attribute");
8018  }
8019  break;
8020 
8021  case 829:
8022 
8023  {
8024  osglData->osglCounter = 0;
8025  osglData->osglIntArray = new int[osglData->numberOfEl];
8026  }
8027  break;
8028 
8029  case 839:
8030 
8031  {
8032  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming
8033  = new MatrixProgrammingSolution();
8034 }
8035  break;
8036 
8037  case 841:
8038 
8039  {
8040  parserData->numberOfOtherMatrixProgrammingResults = parserData->tempInt;
8041  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming
8042  ->numberOfOtherMatrixProgrammingResults = parserData->tempInt;
8043 }
8044  break;
8045 
8046  case 847:
8047 
8048  {
8049  if (osglData->matrixCounter < osglData->numberOfMatrixVar)
8050  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData,
8051  "actual number of matrixVar less than number attribute");
8052  }
8053  break;
8054 
8055  case 848:
8056 
8057  {
8058  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming->matrixVariables
8059  = new MatrixVariableSolution();
8060 }
8061  break;
8062 
8063  case 849:
8064 
8065  {
8066  parserData->numberOfOtherMatrixVariableResults = parserData->tempInt;
8067  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming->matrixVariables
8068  ->numberOfOtherMatrixVariableResults = parserData->tempInt;
8069  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming->matrixVariables
8070  ->other = new OtherMatrixVariableResult*[parserData->tempInt];
8071  for (int i=0; i < parserData->tempInt; i++)
8072  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming->matrixVariables
8073  ->other[i] = NULL;
8074  parserData->iOther = 0;
8075 }
8076  break;
8077 
8078  case 857:
8079 
8080  {
8081  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming->matrixVariables->values
8082  = new MatrixVariableValues();
8083  osglData->numberOfMatrixVarPresent = false;
8084 }
8085  break;
8086 
8087  case 858:
8088 
8089  {
8090  osglData->numberOfMatrixVar = parserData->tempInt;
8091  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming
8092  ->matrixVariables->values->numberOfMatrixVar = parserData->tempInt;
8093 
8094  osglData->matrixWithMatrixVarIdx = new OSMatrixWithMatrixVarIdx*[parserData->tempInt];
8095  for (int i=0; i < parserData->tempInt; i++)
8096  osglData->matrixWithMatrixVarIdx[i] = NULL;
8097  osglData->matrixCounter = 0;
8098 }
8099  break;
8100 
8101  case 863:
8102 
8103  {
8104  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming
8105  ->matrixVariables->values->matrixVar = osglData->matrixWithMatrixVarIdx;
8106 }
8107  break;
8108 
8109  case 868:
8110 
8111  {
8112  parserData->iOther++;
8113  }
8114  break;
8115 
8116  case 869:
8117 
8118  {
8119  if (parserData->iOther >= parserData->numberOfOtherMatrixVariableResults)
8120  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <otherMatrixVariableResults> than specified");
8121  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming->matrixVariables
8122  ->other[parserData->iOther] = new OtherMatrixVariableResult();
8123 
8124  osglData->namePresent = false;
8125  osglData->typePresent = false;
8126  osglData->valuePresent = false;
8127  osglData->solverPresent = false;
8128  osglData->categoryPresent = false;
8129  osglData->descriptionPresent = false;
8130  osglData->name = "";
8131  osglData->type = "";
8132  osglData->value = "";
8133  osglData->solver = "";
8134  osglData->category = "";
8135  osglData->description = "";
8136  osglData->numberOfMatrixVarPresent = false;
8137  osglData->numberOfEnumerationsPresent = false;
8138  osglData->matrixVarTypePresent = false;
8139  osglData->enumTypePresent = false;
8140  osglData->matrixVarType = "";
8141  osglData->enumType = "";
8142 
8143  osglData->matrixCounter = 0;
8144 }
8145  break;
8146 
8147  case 870:
8148 
8149  {
8150  if(!osglData->namePresent)
8151  osrlerror(NULL, NULL, parserData, osglData, osnlData,
8152  "<other> element requires name attribute");
8153  }
8154  break;
8155 
8156  case 873:
8157 
8158  {
8159  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming->matrixVariables
8160  ->other[parserData->iOther]->numberOfMatrixVar = osglData->numberOfMatrixVar;
8161 
8163  for (int i=0; i < parserData->tempInt; i++)
8164  osglData->matrixWithMatrixVarIdx[i] = NULL;
8165  osglData->matrixCounter = 0;
8166  }
8167  break;
8168 
8169  case 874:
8170 
8171  {
8172  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming->matrixVariables
8173  ->other[parserData->iOther]->numberOfEnumerations = osglData->numberOfEnumerations;
8174  parserData->kounter = 0;
8175  }
8176  break;
8177 
8178  case 875:
8179 
8180  {
8181  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming->matrixVariables
8182  ->other[parserData->iOther]->value = osglData->value;
8183  }
8184  break;
8185 
8186  case 876:
8187 
8188  {
8189  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming->matrixVariables
8190  ->other[parserData->iOther]->solver = osglData->solver;
8191  }
8192  break;
8193 
8194  case 877:
8195 
8196  {
8197  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming->matrixVariables
8198  ->other[parserData->iOther]->name = osglData->name;
8199  }
8200  break;
8201 
8202  case 878:
8203 
8204  {
8205  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming->matrixVariables
8206  ->other[parserData->iOther]->type = osglData->type;
8207  }
8208  break;
8209 
8210  case 879:
8211 
8212  {
8213  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming->matrixVariables
8214  ->other[parserData->iOther]->matrixType = osglData->matrixVarType;
8215  }
8216  break;
8217 
8218  case 880:
8219 
8220  {
8221  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming->matrixVariables
8222  ->other[parserData->iOther]->enumType = osglData->enumType;
8223  }
8224  break;
8225 
8226  case 881:
8227 
8228  {
8229  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming->matrixVariables
8230  ->other[parserData->iOther]->description = osglData->description;
8231  }
8232  break;
8233 
8234  case 888:
8235 
8236  {
8237  osresult->optimization->solution[parserData->solutionIdx]->matrixProgramming->matrixVariables
8238  ->other[parserData->iOther]->matrixVar = osglData->matrixWithMatrixVarIdx;
8239  }
8240  break;
8241 
8242  case 893:
8243 
8244  {
8245  if (osresult->setOtherOptionOrResultEnumeration(parserData->solutionIdx, parserData->iOther,
8246  ENUM_PROBLEM_COMPONENT_variables, parserData->kounter, osglData->value,
8247  osglData->description, osglData->osglIntArray, osglData->numberOfEl) != true)
8248  osrlerror(NULL, NULL, parserData, osglData, osnlData, "set other variable option failed");
8249  delete[] osglData->osglIntArray;
8250  osglData->osglIntArray = NULL;
8251  osglData->numberOfEl = 0;
8252  parserData->kounter++;
8253 }
8254  break;
8255 
8256  case 894:
8257 
8258  {
8259  osglData->numberOfElPresent = false;
8260  osglData->numberOfEl = 0;
8261  osglData->valuePresent = false;
8262  osglData->value = "";
8263  osglData->descriptionPresent = false;
8264  osglData->description = "";
8265 }
8266  break;
8267 
8268  case 895:
8269 
8270  {
8271  if(!osglData->namePresent)
8272  osrlerror(NULL, NULL, parserData, osglData, osnlData, "other element enumeration requires name attribute");
8273  }
8274  break;
8275 
8276  case 898:
8277 
8278  {
8279  osglData->osglCounter = 0;
8280  osglData->osglIntArray = new int[osglData->numberOfEl];
8281  }
8282  break;
8283 
8284  case 908:
8285 
8286  {
8287  parserData->numberOf = 0;
8288 }
8289  break;
8290 
8291  case 911:
8292 
8293  {
8294  parserData->numberOf = 0;
8295 }
8296  break;
8297 
8298  case 912:
8299 
8300  {
8301  if (osresult->setNumberOfOtherSolutionResults(parserData->solutionIdx, parserData->tempInt) == false)
8302  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setNumberOfOtherSolutionResults failed");
8303  parserData->numberOf = parserData->tempInt;
8304  parserData->iOther = 0;
8305 }
8306  break;
8307 
8308  case 913:
8309 
8310  {
8311  if (parserData->numberOf > 0)
8312  osrlerror(NULL, NULL, parserData, osglData, osnlData, "expected at least one <otherSolutionResult> element");
8313  }
8314  break;
8315 
8316  case 914:
8317 
8318  {
8319  if (parserData->iOther != parserData->numberOf)
8320  osrlerror(NULL, NULL, parserData, osglData, osnlData, "fewer <otherSolutionResult> elements than specified");
8321  }
8322  break;
8323 
8324  case 921:
8325 
8326  {
8327  parserData->iOther++;
8328 }
8329  break;
8330 
8331  case 922:
8332 
8333  {
8334  if (parserData->iOther >= parserData->numberOf)
8335  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <otherSolutionResult> elements than specified");
8336  osglData->numberOfItemsPresent = false;
8337  osglData->namePresent = false;
8338  osglData->valuePresent = false;
8339  osglData->categoryPresent = false;
8340  osglData->descriptionPresent = false;
8341  osglData->category = "";
8342  osglData->description = "";
8343  osglData->numberOfItems = 0;
8344 }
8345  break;
8346 
8347  case 923:
8348 
8349  {
8350  if (!osglData->namePresent)
8351  osrlerror (NULL, NULL, parserData, osglData, osnlData, "<otherSolutionResult> element must have name attribute");
8352  //if (!parserData->numberOfItemsPresent)
8353  // osrlerror (NULL, NULL, parserData, osglData, osnlData, "<otherSolutionResult> element must have numberOfItems attribute");
8354 }
8355  break;
8356 
8357  case 926:
8358 
8359  {
8360  if (osresult->setOtherSolutionResultName(parserData->solutionIdx, parserData->iOther,
8361  osglData->name) == false)
8362  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherSolutionResultName failed");
8363  }
8364  break;
8365 
8366  case 927:
8367 
8368  {
8369  if (osresult->setOtherSolutionResultValue(parserData->solutionIdx, parserData->iOther,
8370  osglData->value) == false)
8371  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherSolutionResultValuee failed");
8372  }
8373  break;
8374 
8375  case 928:
8376 
8377  {
8378  if (osresult->setOtherSolutionResultCategory(parserData->solutionIdx, parserData->iOther,
8379  osglData->category) == false)
8380  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherSolutionResultCategory failed");
8381  }
8382  break;
8383 
8384  case 929:
8385 
8386  {
8387  if (osresult->setOtherSolutionResultDescription(parserData->solutionIdx, parserData->iOther,
8388  osglData->description) == false)
8389  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherSolutionResultDescription failed");
8390  }
8391  break;
8392 
8393  case 930:
8394 
8395  {
8396  if (osresult->setOtherSolutionResultNumberOfItems(parserData->solutionIdx,
8397  parserData->iOther,
8398  osglData->numberOfItems) == false)
8399  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherSolutionResultNumberOfItems failed");
8400  parserData->kounter = 0;
8401  }
8402  break;
8403 
8404  case 931:
8405 
8406  {
8407  if (osglData->numberOfItems > 0)
8408  osrlerror(NULL, NULL, parserData, osglData, osnlData, "expected at least one <item> element");
8409  }
8410  break;
8411 
8412  case 932:
8413 
8414  {
8415  if (parserData->kounter != osglData->numberOfItems)
8416  osrlerror(NULL, NULL, parserData, osglData, osnlData, "fewer <item> elements than specified");
8417  }
8418  break;
8419 
8420  case 939:
8421 
8422  {
8423  parserData->kounter++;
8424 }
8425  break;
8426 
8427  case 940:
8428 
8429  {
8430  if (parserData->kounter >= osglData->numberOfItems)
8431  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <item> elements than specified");
8432  }
8433  break;
8434 
8435  case 945:
8436 
8437  {
8438  if (parserData->kounter >= osglData->numberOfItems)
8439  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <item> elements than specified");
8440  parserData->itemContent = (yyvsp[(1) - (1)].sval); free((yyvsp[(1) - (1)].sval));
8441  if (osresult->setOtherSolutionResultItem(parserData->solutionIdx, parserData->iOther,
8442  parserData->kounter, parserData->itemContent)
8443  == false)
8444  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setOtherSolutionResultItem failed");
8445 }
8446  break;
8447 
8448  case 948:
8449 
8450  {
8451  parserData->numberOf = 0;
8452 }
8453  break;
8454 
8455  case 949:
8456 
8457  {
8458  if (osresult->setNumberOfSolverOutputs(parserData->tempInt) == false)
8459  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setNumberOfSolverOutputs failed");
8460  parserData->numberOf = parserData->tempInt;
8461  parserData->iOther = 0;
8462 }
8463  break;
8464 
8465  case 950:
8466 
8467  {
8468  if (parserData->numberOf > 0)
8469  osrlerror(NULL, NULL, parserData, osglData, osnlData, "expected at least one <solverOutput> element");
8470  }
8471  break;
8472 
8473  case 951:
8474 
8475  {
8476  if (parserData->iOther != parserData->numberOf)
8477  osrlerror(NULL, NULL, parserData, osglData, osnlData, "fewer <solverOutput> elements than specified");
8478  }
8479  break;
8480 
8481  case 958:
8482 
8483  {
8484  parserData->iOther++;
8485 }
8486  break;
8487 
8488  case 959:
8489 
8490  {
8491  if (parserData->iOther >= parserData->numberOf)
8492  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <solverOutput> elements than specified");
8493  osglData->numberOfItemsPresent = false;
8494  osglData->namePresent = false;
8495  osglData->categoryPresent = false;
8496  osglData->descriptionPresent = false;
8497  osglData->category = "";
8498  osglData->description = "";
8499 }
8500  break;
8501 
8502  case 960:
8503 
8504  {
8505  if (!osglData->namePresent)
8506  osrlerror (NULL, NULL, parserData, osglData, osnlData, "<solverOutput> element must have name attribute");
8507  if (!osglData->numberOfItemsPresent)
8508  osrlerror (NULL, NULL, parserData, osglData, osnlData, "<solverOutput> element must have numberOfItems attribute");
8509 }
8510  break;
8511 
8512  case 963:
8513 
8514  {
8515  if (osresult->setSolverOutputName(parserData->iOther, osglData->name) == false)
8516  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSolverOutputName failed");
8517  }
8518  break;
8519 
8520  case 964:
8521 
8522  {
8523  if (osresult->setSolverOutputCategory(parserData->iOther, osglData->category) == false)
8524  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSolverOutputCategory failed");
8525  }
8526  break;
8527 
8528  case 965:
8529 
8530  {
8531  if (osresult->setSolverOutputDescription(parserData->iOther, osglData->description) == false)
8532  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSolverOutputDescription failed");
8533  }
8534  break;
8535 
8536  case 966:
8537 
8538  {
8539  if (osresult->setSolverOutputNumberOfItems(parserData->iOther, osglData->numberOfItems) == false)
8540  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSolverOutputNumberOfItems failed");
8541  parserData->kounter = 0;
8542  }
8543  break;
8544 
8545  case 967:
8546 
8547  {
8548  if (osglData->numberOfItems > 0)
8549  osrlerror(NULL, NULL, parserData, osglData, osnlData, "expected at least one <item> element");
8550  }
8551  break;
8552 
8553  case 968:
8554 
8555  {
8556  if (parserData->kounter != osglData->numberOfItems)
8557  osrlerror(NULL, NULL, parserData, osglData, osnlData, "fewer <item> elements than specified");
8558  }
8559  break;
8560 
8561  case 975:
8562 
8563  {
8564  parserData->kounter++;
8565 }
8566  break;
8567 
8568  case 976:
8569 
8570  {
8571  if (parserData->kounter >= osglData->numberOfItems)
8572  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <item> elements than specified");
8573  }
8574  break;
8575 
8576  case 981:
8577 
8578  {
8579  if (parserData->kounter >= osglData->numberOfItems)
8580  osrlerror(NULL, NULL, parserData, osglData, osnlData, "more <item> elements than specified");
8581  parserData->itemContent = (yyvsp[(1) - (1)].sval); free((yyvsp[(1) - (1)].sval));
8582  if (osresult->setSolverOutputItem(parserData->iOther, parserData->kounter,
8583  parserData->itemContent) == false)
8584  osrlerror(NULL, NULL, parserData, osglData, osnlData, "setSolverOutputItem failed");
8585 }
8586  break;
8587 
8588  case 982:
8589 
8590  {
8591  if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "number of other constraint results cannot be negative");
8592  parserData->tempInt = (yyvsp[(3) - (4)].ival);
8593 }
8594  break;
8595 
8596  case 983:
8597 
8598  {
8599  if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "number of other matrix programming results cannot be negative");
8600  parserData->tempInt = (yyvsp[(3) - (4)].ival);
8601 }
8602  break;
8603 
8604  case 984:
8605 
8606  {
8607  if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "number of other matrix variable results cannot be negative");
8608  parserData->tempInt = (yyvsp[(3) - (4)].ival);
8609 }
8610  break;
8611 
8612  case 985:
8613 
8614  {
8615  if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "number of other objective results cannot be negative");
8616  parserData->tempInt = (yyvsp[(3) - (4)].ival);
8617 }
8618  break;
8619 
8620  case 986:
8621 
8622  {
8623  if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "number of other results cannot be negative");
8624  parserData->tempInt = (yyvsp[(3) - (4)].ival);
8625 }
8626  break;
8627 
8628  case 987:
8629 
8630  {
8631  if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "number of other solution results cannot be negative");
8632  parserData->tempInt = (yyvsp[(3) - (4)].ival);
8633 }
8634  break;
8635 
8636  case 988:
8637 
8638  {
8639  if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "number of other variable results cannot be negative");
8640  parserData->tempInt = (yyvsp[(3) - (4)].ival);
8641 }
8642  break;
8643 
8644  case 989:
8645 
8646  {
8647  if (parserData->numberAttributePresent)
8648  osrlerror(NULL, NULL, parserData, osglData, osnlData, "numberOfSolutions attribute previously set");
8649  if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "number of solutions cannot be negative");
8650  parserData->numberAttributePresent = true;
8651  parserData->tempInt = (yyvsp[(3) - (4)].ival);
8652 }
8653  break;
8654 
8655  case 990:
8656 
8657  {
8658  if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "number of other solver outputs cannot be negative");
8659  parserData->tempInt = (yyvsp[(3) - (4)].ival);
8660 }
8661  break;
8662 
8663  case 991:
8664 
8665  {
8666  if (parserData->numberAttributePresent )
8667  osrlerror(NULL, NULL, parserData, osglData, osnlData, "only one numberOfSubstatuses attribute allowed");
8668  parserData->numberAttributePresent = true;
8669  if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "number of <substatus> elements cannot be negative");
8670  parserData->tempInt = (yyvsp[(3) - (4)].ival);
8671 }
8672  break;
8673 
8674  case 992:
8675 
8676  {
8677  parserData->tempInt = (yyvsp[(3) - (4)].ival);
8678 }
8679  break;
8680 
8681  case 993:
8682 
8683  {parserData->tempVal = (yyvsp[(1) - (1)].ival);}
8684  break;
8685 
8686  case 994:
8687 
8688  {parserData->tempVal = (yyvsp[(1) - (1)].dval);}
8689  break;
8690 
8691  case 995:
8692 
8693  { parserData->tempStr = (yyvsp[(1) - (1)].sval); free((yyvsp[(1) - (1)].sval)); }
8694  break;
8695 
8696  case 996:
8697 
8698  { parserData->tempStr = os_dtoa_format((yyvsp[(1) - (1)].ival)); }
8699  break;
8700 
8701  case 997:
8702 
8703  { parserData->tempStr = os_dtoa_format((yyvsp[(1) - (1)].dval)); }
8704  break;
8705 
8706  case 1006:
8707 
8708  {
8709  osglData->fileName = "";
8710  osglData->source = "";
8711  osglData->description = "";
8712  osglData->fileCreator = "";
8713  osglData->licence = "";
8714  osglData->fileNamePresent = false;
8715  osglData->sourcePresent = false;
8716  osglData->descriptionPresent = false;
8717  osglData->fileCreatorPresent = false;
8718  osglData->licencePresent = false;
8719 }
8720  break;
8721 
8722  case 1019:
8723 
8724  {
8725  if (osglData->fileNamePresent == true)
8726  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "Repeated header information: file name");
8727  else
8728  osglData->fileNamePresent = true;
8729 }
8730  break;
8731 
8732  case 1024:
8733 
8734  {
8735  osglData->fileName = (yyvsp[(2) - (3)].sval);
8736  free((yyvsp[(2) - (3)].sval));
8737 }
8738  break;
8739 
8740  case 1025:
8741 
8742  {
8743  if (osglData->sourcePresent == true)
8744  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "Repeated header information: source");
8745  else
8746  osglData->sourcePresent = true;
8747 }
8748  break;
8749 
8750  case 1030:
8751 
8752  {
8753  osglData->source = (yyvsp[(2) - (3)].sval);
8754  free((yyvsp[(2) - (3)].sval));
8755 }
8756  break;
8757 
8758  case 1031:
8759 
8760  {
8761  if (osglData->descriptionPresent == true)
8762  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "Repeated header information: description");
8763  else
8764  osglData->descriptionPresent = true;
8765 }
8766  break;
8767 
8768  case 1036:
8769 
8770  {
8771  osglData->description = (yyvsp[(2) - (3)].sval);
8772  free((yyvsp[(2) - (3)].sval));
8773 }
8774  break;
8775 
8776  case 1037:
8777 
8778  {
8779  if (osglData->fileCreatorPresent == true)
8780  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "Repeated header information: file creator");
8781  else
8782  osglData->fileCreatorPresent = true;
8783 }
8784  break;
8785 
8786  case 1042:
8787 
8788  {
8789  osglData->fileCreator = (yyvsp[(2) - (3)].sval);
8790  free((yyvsp[(2) - (3)].sval));
8791 }
8792  break;
8793 
8794  case 1043:
8795 
8796  {
8797  if (osglData->licencePresent == true)
8798  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "Repeated header information: licence");
8799  else
8800  osglData->licencePresent = true;
8801 }
8802  break;
8803 
8804  case 1048:
8805 
8806  {
8807  osglData->licence = (yyvsp[(2) - (3)].sval);
8808  free((yyvsp[(2) - (3)].sval));
8809 }
8810  break;
8811 
8812  case 1049:
8813 
8814  {
8815  if (osglData->osglCounter < osglData->numberOfEl)
8816  {
8817  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "fewer data elements than specified");
8818  parserData->ignoreDataAfterErrors = true;
8819  }
8820  }
8821  break;
8822 
8823  case 1054:
8824 
8825  {
8826  osglData->multPresent = false;
8827  osglData->incrPresent = false;
8828  osglData->mult = 1;
8829  osglData->incr = 0;
8830 }
8831  break;
8832 
8833  case 1060:
8834 
8835  {
8836  if (osglData->osglCounter + osglData->mult > osglData->numberOfEl)
8837  {
8838  if (!parserData->suppressFurtherErrorMessages)
8839  {
8840  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more data elements than specified");
8841  parserData->suppressFurtherErrorMessages = true;
8842  parserData->ignoreDataAfterErrors = true;
8843  }
8844  }
8845  else
8846  for (int i=0; i<osglData->mult; i++)
8847  osglData->osglIntArray[osglData->osglCounter++] = (yyvsp[(2) - (3)].ival) + i*osglData->incr;
8848 }
8849  break;
8850 
8851  case 1066:
8852 
8853  {
8854  char* b64string = (yyvsp[(2) - (3)].sval);
8855  if( b64string == NULL)
8856  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "base 64 data expected");
8857  if (osglData->base64Size != sizeof(int))
8858  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "base 64 encoded with a size of int different than on this machine");
8859 
8860  std::string base64decodeddata = Base64::decodeb64( b64string );
8861  int base64decodeddatalength = base64decodeddata.length();
8862  int *intvec = NULL;
8863  if ( osglData->numberOfEl != (base64decodeddatalength/osglData->base64Size) )
8864  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "base 64 data length does not match numberOfEl");
8865  else
8866  {
8867  intvec = (int*)&base64decodeddata[0];
8868  for(int i = 0; i < (base64decodeddatalength/osglData->base64Size); i++)
8869  {
8870  osglData->osglIntArray[i] = *(intvec++);
8871  }
8872  }
8873  //delete[] b64string;
8874  free((yyvsp[(2) - (3)].sval));
8875 }
8876  break;
8877 
8878  case 1067:
8879 
8880  {
8881  if (osglData->osglCounter < osglData->numberOfEl)
8882  {
8883  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "fewer data elements than specified");
8884  parserData->ignoreDataAfterErrors = true;
8885  }
8886  }
8887  break;
8888 
8889  case 1072:
8890 
8891  {
8892  osglData->multPresent = false;
8893  osglData->incrPresent = false;
8894  osglData->mult = 1;
8895 }
8896  break;
8897 
8898  case 1075:
8899 
8900  {
8901  if (osglData->osglCounter + osglData->mult > osglData->numberOfEl)
8902  {
8903  if (!parserData->suppressFurtherErrorMessages)
8904  {
8905  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more data elements than specified");
8906  parserData->suppressFurtherErrorMessages = true;
8907  parserData->ignoreDataAfterErrors = true;
8908  }
8909  }
8910  else
8911  for (int i=0; i<osglData->mult; i++)
8912  osglData->osglDblArray[osglData->osglCounter++] = parserData->tempVal;
8913 }
8914  break;
8915 
8916  case 1081:
8917 
8918  {
8919  char* b64string = (yyvsp[(2) - (3)].sval);
8920  if( b64string == NULL)
8921  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "base 64 data expected");
8922  if (osglData->base64Size != sizeof(int))
8923  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "base 64 encoded with a size of int different than on this machine");
8924 
8925  std::string base64decodeddata = Base64::decodeb64( b64string );
8926  int base64decodeddatalength = base64decodeddata.length();
8927  double *dblvec = NULL;
8928  if ( osglData->numberOfEl != (base64decodeddatalength/osglData->base64Size) )
8929  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "base 64 data length does not match numberOfEl");
8930  else
8931  {
8932  dblvec = (double*)&base64decodeddata[0];
8933  for(int i = 0; i < (base64decodeddatalength/osglData->base64Size); i++)
8934  {
8935  osglData->osglDblArray[i] = *(dblvec++);
8936  }
8937  }
8938  //delete[] b64string;
8939  free((yyvsp[(2) - (3)].sval));
8940 }
8941  break;
8942 
8943  case 1083:
8944 
8945  {
8946  osglData->numberOfElPresent = false;
8947 }
8948  break;
8949 
8950  case 1090:
8951 
8952  {
8953  osglData->numberOfElPresent = false;
8954 }
8955  break;
8956 
8957  case 1097:
8958 
8959  {
8960  osglData->numberOfElPresent = false;
8961 }
8962  break;
8963 
8964  case 1104:
8965 
8966  {
8967  osglData->numberOfElPresent = false;
8968 }
8969  break;
8970 
8971  case 1111:
8972 
8973  {
8974  osglData->numberOfElPresent = false;
8975 }
8976  break;
8977 
8978  case 1118:
8979 
8980  {
8981  osglData->numberOfElPresent = false;
8982 }
8983  break;
8984 
8985  case 1125:
8986 
8987  {
8988  osglData->numberOfElPresent = false;
8989 }
8990  break;
8991 
8992  case 1131:
8993 
8994  {
8995  osglData->osglCounter = 0;
8996  if (osglData->numberOfEl > 0)
8997  osglData->osglIntArray = new int[osglData->numberOfEl];
8998 }
8999  break;
9000 
9001  case 1132:
9002 
9003  {
9004 // IMPORTANT -- HERE IS WHERE WE CREATE THE CONSTRUCTOR LISTS
9005  osglData->matrixWithMatrixVarIdx[osglData->matrixCounter] =
9007  ->createConstructorTreeFromPrefix(osglData->mtxConstructorVec);
9008  osglData->matrixWithMatrixVarIdx[osglData->matrixCounter]->idx = osglData->matrixCounter;
9009  osglData->matrixWithMatrixVarIdx[osglData->matrixCounter]->matrixVarIdx
9010  = osglData->matrixVarIdx;
9011  osglData->matrixCounter++;
9012 }
9013  break;
9014 
9015  case 1133:
9016 
9017  {
9018  if (osglData->matrixCounter >= osglData->numberOfMatrixVar)
9019  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more matrices than specified");
9020  osglData->symmetryPresent = false;
9021  osglData->typePresent = false;
9022  osglData->numberOfRowsPresent = false;
9023  osglData->numberOfColumnsPresent = false;
9024  osglData->namePresent = false;
9025  osglData->matrixVarIdxPresent = false;
9026 
9027  osglData->mtxConstructorVec.clear();
9028  osglData->mtxBlocksVec.clear();
9029  osglData->mtxBlkVec.clear();
9030  osglData->nBlocksVec.clear();
9031 
9036  osglData->tempC = new OSMatrixWithMatrixVarIdx();
9037  osglData->mtxConstructorVec.push_back((OSMatrixWithMatrixVarIdx*)osglData->tempC);
9038  osglData->mtxBlkVec.push_back((OSMatrixWithMatrixVarIdx*)osglData->tempC);
9039 }
9040  break;
9041 
9042  case 1134:
9043 
9044  {
9045  if (osglData->numberOfRowsPresent == false)
9046  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "mandatory attribute numberOfRows is missing");
9047  else
9048  ((OSMatrix*)osglData->tempC)->numberOfRows = osglData->numberOfRows;
9049  if (osglData->numberOfColumnsPresent == false)
9050  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "mandatory attribute numberOfColumns is missing");
9051  else
9052  ((OSMatrix*)osglData->tempC)->numberOfColumns = osglData->numberOfColumns;
9053  if (osglData->matrixVarIdxPresent == false)
9054  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "mandatory attribute matrixVarIdx is missing");
9055  else
9056  ((OSMatrixWithMatrixVarIdx*)osglData->tempC)->matrixVarIdx = osglData->matrixVarIdx;
9057  if (osglData->symmetryPresent == true)
9058  ((OSMatrix*)osglData->tempC)->symmetry = (ENUM_MATRIX_SYMMETRY)returnMatrixSymmetry(osglData->symmetry);
9059  if (osglData->namePresent == true)
9060  ((OSMatrix*)osglData->tempC)->name = osglData->name;
9061  if (osglData->typePresent == true)
9062  ((OSMatrix*)osglData->tempC)->matrixType = (ENUM_MATRIX_TYPE)returnMatrixType(osglData->type);
9063 }
9064  break;
9065 
9066  case 1146:
9067 
9068  {
9069  osglData->mtxBlkVec.back()->m_mChildren =
9070  new MatrixNode*[osglData->mtxBlkVec.back()->inumberOfChildren];
9071  osglData->mtxBlkVec.pop_back();
9072 }
9073  break;
9074 
9075  case 1149:
9076 
9077  {
9078  osglData->mtxBlkVec.back()->inumberOfChildren++;
9079 }
9080  break;
9081 
9082  case 1150:
9083 
9084  {
9085  osglData->tempC = new BaseMatrix();
9086  osglData->mtxConstructorVec.push_back((BaseMatrix*)osglData->tempC);
9087 
9088  osglData->baseMatrixIdxPresent = false;
9089  osglData->targetMatrixFirstRowPresent = false;
9090  osglData->targetMatrixFirstColPresent = false;
9091  osglData->baseMatrixStartRowPresent = false;
9092  osglData->baseMatrixStartColPresent = false;
9093  osglData->baseMatrixEndRowPresent = false;
9094  osglData->baseMatrixEndColPresent = false;
9095  osglData->baseTransposePresent = false;
9096  osglData->scalarMultiplierPresent = false;
9097  osglData->baseMatrixEndRow = -1;
9098  osglData->baseMatrixEndCol = -1;
9099 }
9100  break;
9101 
9102  case 1151:
9103 
9104  {
9105  if (osglData->baseMatrixIdxPresent == false)
9106  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "mandatory attribute baseMatrixIdx is missing");
9107  else
9108  {
9109  ((BaseMatrix*)osglData->tempC)->baseMatrixIdx = osglData->baseMatrixIdx;
9110  ((BaseMatrix*)osglData->tempC)->baseMatrix = (OSMatrix*)osglData->matrix[osglData->baseMatrixIdx];
9111  }
9112  if (osglData->targetMatrixFirstRowPresent == true)
9113  ((BaseMatrix*)osglData->tempC)->targetMatrixFirstRow = osglData->targetMatrixFirstRow;
9114  if (osglData->targetMatrixFirstColPresent == true)
9115  ((BaseMatrix*)osglData->tempC)->targetMatrixFirstCol = osglData->targetMatrixFirstCol;
9116  if (osglData->baseMatrixStartRowPresent == true)
9117  ((BaseMatrix*)osglData->tempC)->baseMatrixStartRow = osglData->baseMatrixStartRow;
9118  if (osglData->baseMatrixStartColPresent == true)
9119  ((BaseMatrix*)osglData->tempC)->baseMatrixStartCol = osglData->baseMatrixStartCol;
9120  if (osglData->baseMatrixEndRowPresent == true)
9121  ((BaseMatrix*)osglData->tempC)->baseMatrixEndRow = osglData->baseMatrixEndRow;
9122  if (osglData->baseMatrixEndColPresent == true)
9123  ((BaseMatrix*)osglData->tempC)->baseMatrixEndCol = osglData->baseMatrixEndCol;
9124  if (osglData->baseTransposePresent == true)
9125  ((BaseMatrix*)osglData->tempC)->baseTranspose = osglData->baseTranspose;
9126  if (osglData->scalarMultiplierPresent == true)
9127  ((BaseMatrix*)osglData->tempC)->scalarMultiplier = osglData->scalarMultiplier;
9128 }
9129  break;
9130 
9131  case 1166:
9132 
9133  {
9134  osglData->mtxBlkVec.back()->inumberOfChildren++;
9135 }
9136  break;
9137 
9138  case 1176:
9139 
9140  {
9141  osglData->tempC = new ConstantMatrixElements();
9142  osglData->mtxConstructorVec.push_back(osglData->tempC);
9143  osglData->numberOfValuesPresent = false;
9144  osglData->rowMajorPresent = false;
9145  osglData->rowMajor = false;
9146 }
9147  break;
9148 
9149  case 1177:
9150 
9151  {
9152  if (osglData->numberOfValuesPresent == false)
9153  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "<constantElements>: numberOfValues attribute missing");
9154 }
9155  break;
9156 
9157  case 1180:
9158 
9159  {
9160  ((ConstantMatrixElements*)osglData->tempC)->numberOfValues = osglData->numberOfValues;
9161  if (osglData->numberOfValues > 0)
9162  ((MatrixType*)osglData->mtxBlkVec.back())->matrixType = ENUM_MATRIX_TYPE_constant;
9163  }
9164  break;
9165 
9166  case 1181:
9167 
9168  {
9169  ((ConstantMatrixElements*)osglData->tempC)->rowMajor = osglData->rowMajor;
9170  }
9171  break;
9172 
9173  case 1185:
9174 
9175  {
9176  ((MatrixElements*)osglData->tempC)->start = new IntVector();
9177  ((MatrixElements*)osglData->tempC)->start->numberOfEl = osglData->numberOfEl;
9178  ((MatrixElements*)osglData->tempC)->start->el = osglData->osglIntArray;
9179  osglData->osglIntArray = NULL; // to facilitate garbage collection without a segfault
9180  parserData->suppressFurtherErrorMessages = false;
9181  parserData->ignoreDataAfterErrors = false;
9182 }
9183  break;
9184 
9185  case 1186:
9186 
9187  {
9188  if (osglData->rowMajor == false)
9189  osglData->numberOfEl = ((MatrixType*)osglData->mtxBlkVec.back())->numberOfColumns + 1;
9190  else
9191  osglData->numberOfEl = ((MatrixType*)osglData->mtxBlkVec.back())->numberOfRows + 1;
9192  osglData->osglIntArray = new int[osglData->numberOfEl];
9193  osglData->osglCounter = 0;
9194 }
9195  break;
9196 
9197  case 1192:
9198 
9199  {
9200  ((MatrixElements*)osglData->tempC)->index = new IntVector();
9201  ((MatrixElements*)osglData->tempC)->index->numberOfEl
9202  = ((MatrixElements*)osglData->tempC)->numberOfValues;
9203  ((MatrixElements*)osglData->tempC)->index->el = osglData->osglIntArray;
9204  osglData->osglIntArray = NULL; // to facilitate garbage collection without a segfault
9205  parserData->suppressFurtherErrorMessages = false;
9206  parserData->ignoreDataAfterErrors = false;
9207 }
9208  break;
9209 
9210  case 1193:
9211 
9212  {
9213  osglData->numberOfEl = ((MatrixElements*)osglData->tempC)->numberOfValues;
9214  osglData->osglIntArray = new int[osglData->numberOfEl];
9215  osglData->osglCounter = 0;
9216 }
9217  break;
9218 
9219  case 1199:
9220 
9221  {
9222  ((ConstantMatrixElements*)osglData->tempC)->value = new ConstantMatrixValues();
9223  ((ConstantMatrixElements*)osglData->tempC)->value->numberOfEl = osglData->numberOfEl;
9224  ((ConstantMatrixElements*)osglData->tempC)->value->el = osglData->osglDblArray;
9225  osglData->osglDblArray = NULL; // to facilitate garbage collection without a segfault
9226  parserData->suppressFurtherErrorMessages = false;
9227  parserData->ignoreDataAfterErrors = false;
9228 }
9229  break;
9230 
9231  case 1200:
9232 
9233  {
9234  osglData->numberOfEl = ((ConstantMatrixElements*)osglData->tempC)->numberOfValues;
9235  osglData->osglDblArray = new double[osglData->numberOfEl];
9236  osglData->osglCounter = 0;
9237 }
9238  break;
9239 
9240  case 1207:
9241 
9242  {
9243  osglData->tempC = new VarReferenceMatrixElements();
9244  osglData->mtxConstructorVec.push_back(osglData->tempC);
9245  osglData->numberOfValuesPresent = false;
9246  osglData->rowMajorPresent = false;
9247  osglData->rowMajor = false;
9248 }
9249  break;
9250 
9251  case 1208:
9252 
9253  {
9254  if (osglData->numberOfValuesPresent == false)
9255  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "<varReferenceElements>: numberOfValues attribute missing");
9256 }
9257  break;
9258 
9259  case 1211:
9260 
9261  {
9262  ((VarReferenceMatrixElements*)osglData->tempC)->numberOfValues = osglData->numberOfValues;
9263  if (osglData->numberOfValues > 0)
9264  ((MatrixType*)osglData->mtxBlkVec.back())->matrixType = ENUM_MATRIX_TYPE_varReference;
9265  }
9266  break;
9267 
9268  case 1212:
9269 
9270  {
9271  ((VarReferenceMatrixElements*)osglData->tempC)->rowMajor = osglData->rowMajor;
9272  }
9273  break;
9274 
9275  case 1216:
9276 
9277  {
9278  ((VarReferenceMatrixElements*)osglData->tempC)->value = new VarReferenceMatrixValues();
9279  ((VarReferenceMatrixElements*)osglData->tempC)->value->numberOfEl = osglData->numberOfEl;
9280  ((VarReferenceMatrixElements*)osglData->tempC)->value->el = osglData->osglIntArray;
9281  osglData->osglIntArray = NULL; // to facilitate garbage collection without a segfault
9282  parserData->suppressFurtherErrorMessages = false;
9283  parserData->ignoreDataAfterErrors = false;
9284 }
9285  break;
9286 
9287  case 1217:
9288 
9289  {
9290  osglData->numberOfEl = ((VarReferenceMatrixElements*)osglData->tempC)->numberOfValues;
9291  osglData->osglIntArray = new int[osglData->numberOfEl];
9292  osglData->osglCounter = 0;
9293 }
9294  break;
9295 
9296  case 1224:
9297 
9298  {
9299  osglData->tempC = new LinearMatrixElements();
9300  osglData->mtxConstructorVec.push_back(osglData->tempC);
9301  osglData->numberOfValuesPresent = false;
9302  osglData->rowMajorPresent = false;
9303  osglData->rowMajor = false;
9304 }
9305  break;
9306 
9307  case 1225:
9308 
9309  {
9310  if (osglData->numberOfValuesPresent == false)
9311  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "<linearElements>: numberOfValues attribute missing");
9312 }
9313  break;
9314 
9315  case 1228:
9316 
9317  {
9318  ((LinearMatrixElements*)osglData->tempC)->numberOfValues = osglData->numberOfValues;
9319  if (osglData->numberOfValues > 0)
9320  ((MatrixType*)osglData->mtxBlkVec.back())->matrixType = ENUM_MATRIX_TYPE_linear;
9321  }
9322  break;
9323 
9324  case 1229:
9325 
9326  {
9327  ((LinearMatrixElements*)osglData->tempC)->rowMajor = osglData->rowMajor;
9328  }
9329  break;
9330 
9331  case 1233:
9332 
9333  {
9334  if (osglData->numberOfValues > 0)
9335  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "expected <value> element");
9336  }
9337  break;
9338 
9339  case 1234:
9340 
9341  {
9342  if (osglData->numberOfValues > osglData->nonzeroCounter)
9343  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "too few <el> elements");
9344  else if (osglData->numberOfValues < osglData->nonzeroCounter)
9345  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "too many <el> elements");
9346  ((LinearMatrixElements*)osglData->tempC)->value->numberOfEl = osglData->numberOfEl;
9347  parserData->suppressFurtherErrorMessages = false;
9348  parserData->ignoreDataAfterErrors = false;
9349  }
9350  break;
9351 
9352  case 1235:
9353 
9354  {
9355  osglData->numberOfValues = ((LinearMatrixElements*)osglData->tempC)->numberOfValues;
9356  osglData->nonzeroCounter = 0;
9357  ((LinearMatrixElements*)osglData->tempC)->value = new LinearMatrixValues();
9358  ((LinearMatrixElements*)osglData->tempC)->value->numberOfEl
9359  = ((LinearMatrixElements*)osglData->tempC)->numberOfValues;
9360  ((LinearMatrixElements*)osglData->tempC)->value->el
9361  = new LinearMatrixElement*[((LinearMatrixElements*)osglData->tempC)->numberOfValues];
9362  for (int i=0; i < ((LinearMatrixElements*)osglData->tempC)->numberOfValues; i++)
9363  ((LinearMatrixElements*)osglData->tempC)->value->el[i] = new LinearMatrixElement();
9364  osglData->osglCounter = 0;
9365  osglData->numberOfVarIdxPresent = false;
9366 }
9367  break;
9368 
9369  case 1243:
9370 
9371  {
9372  osglData->nonzeroCounter++;
9373  if (osglData->nonzeroCounter > osglData->numberOfValues)
9374  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "linear matrix elements: too many nonzeros");
9375 }
9376  break;
9377 
9378  case 1244:
9379 
9380  {
9381  osglData->numberOfVarIdxPresent = false;
9382  osglData->constantPresent = false;
9383  osglData->constant = 0.0;
9384 }
9385  break;
9386 
9387  case 1245:
9388 
9389  {
9390  if (!osglData->numberOfVarIdxPresent)
9391  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "numberOfVarIdx attribute missing");
9392  ((LinearMatrixElements*)osglData->tempC)->value->el[osglData->nonzeroCounter]->numberOfVarIdx
9393  = osglData->numberOfVarIdx;
9394  ((LinearMatrixElements*)osglData->tempC)->value->el[osglData->nonzeroCounter]->varIdx
9395  = new LinearMatrixElementTerm*[osglData->numberOfVarIdx];
9396  ((LinearMatrixElements*)osglData->tempC)->value->el[osglData->nonzeroCounter]->constant
9397  = osglData->constant;
9398  osglData->osglCounter = 0;
9399 }
9400  break;
9401 
9402  case 1257:
9403 
9404  {
9405  osglData->coefPresent = false;
9406  osglData->coef = 1.0;
9407  ((LinearMatrixElements*)osglData->tempC)->value->el[osglData->nonzeroCounter]->varIdx[osglData->osglCounter]
9408  = new LinearMatrixElementTerm();
9409 }
9410  break;
9411 
9412  case 1259:
9413 
9414  {
9415  ((LinearMatrixElements*)osglData->tempC)->value->el[osglData->nonzeroCounter]->varIdx[osglData->osglCounter]->coef = osglData->coef;
9416 }
9417  break;
9418 
9419  case 1260:
9420 
9421  {
9422  ((LinearMatrixElements*)osglData->tempC)->value->el[osglData->nonzeroCounter]->varIdx[osglData->osglCounter]->idx = (yyvsp[(2) - (3)].ival);
9423  osglData->osglCounter++;
9424 }
9425  break;
9426 
9427  case 1262:
9428 
9429  {
9430  osglData->tempC = new GeneralMatrixElements();
9431  osglData->mtxConstructorVec.push_back(osglData->tempC);
9432  osglData->numberOfValuesPresent = false;
9433  osglData->rowMajorPresent = false;
9434  osglData->rowMajor = false;
9435 }
9436  break;
9437 
9438  case 1263:
9439 
9440  {
9441  if (osglData->numberOfValuesPresent == false)
9442  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "<generalElements>: numberOfValues attribute missing");
9443 }
9444  break;
9445 
9446  case 1266:
9447 
9448  {
9449  ((GeneralMatrixElements*)osglData->tempC)->numberOfValues = osglData->numberOfValues;
9450  if (osglData->numberOfValues > 0)
9451  ((MatrixType*)osglData->mtxBlkVec.back())->matrixType = ENUM_MATRIX_TYPE_general;
9452  }
9453  break;
9454 
9455  case 1267:
9456 
9457  {
9458  ((GeneralMatrixElements*)osglData->tempC)->rowMajor = osglData->rowMajor;
9459  }
9460  break;
9461 
9462  case 1273:
9463 
9464  {
9465  osglData->nonzeroCounter = 0;
9466  osglData->numberOfValues = ((GeneralMatrixElements*)osglData->tempC)->numberOfValues;
9467 
9468  ((GeneralMatrixElements*)osglData->tempC)->value = new GeneralMatrixValues();
9469  ((GeneralMatrixElements*)osglData->tempC)->value->numberOfEl
9470  = osglData->numberOfValues;
9471  ((GeneralMatrixElements*)osglData->tempC)->value->el
9472  = new ScalarExpressionTree*[osglData->numberOfValues];
9473 
9474  for (int i=0; i<osglData->numberOfValues; i++)
9475  ((GeneralMatrixElements*)osglData->tempC)->value->el[i] = new ScalarExpressionTree();
9476 }
9477  break;
9478 
9479  case 1281:
9480 
9481  {
9482  if (osglData->nonzeroCounter >= osglData->numberOfValues)
9483  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of <el> terms greater than expected");
9484  // clear the vectors of pointers
9485  osnlData->nlNodeVec.clear();
9486  osnlData->sumVec.clear();
9487  osnlData->allDiffVec.clear();
9488  osnlData->maxVec.clear();
9489  osnlData->minVec.clear();
9490  osnlData->productVec.clear();
9491  osnlData->matrixSumVec.clear();
9492  osnlData->matrixProductVec.clear();
9493  }
9494  break;
9495 
9496  case 1285:
9497 
9498  {
9499  // IMPORTANT -- HERE IS WHERE WE CREATE THE EXPRESSION TREE
9500 
9501  ((GeneralMatrixElements*)osglData->tempC)->value->el[osglData->nonzeroCounter]->m_treeRoot =
9502  ((OSnLNode*)osnlData->nlNodeVec[ 0])->createExpressionTreeFromPrefix( osnlData->nlNodeVec);
9503  osglData->nonzeroCounter++;
9504  }
9505  break;
9506 
9507  case 1287:
9508 
9509  {
9510  osglData->tempC = new ObjReferenceMatrixElements();
9511  osglData->mtxConstructorVec.push_back(osglData->tempC);
9512  osglData->numberOfValuesPresent = false;
9513  osglData->rowMajorPresent = false;
9514  osglData->rowMajor = false;
9515 }
9516  break;
9517 
9518  case 1288:
9519 
9520  {
9521  if (osglData->numberOfValuesPresent == false)
9522  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "<objReferenceElements>: numberOfValues attribute missing");
9523 }
9524  break;
9525 
9526  case 1291:
9527 
9528  {
9529  ((ObjReferenceMatrixElements*)osglData->tempC)->numberOfValues = osglData->numberOfValues;
9530  if (osglData->numberOfValues > 0)
9531  ((MatrixType*)osglData->mtxBlkVec.back())->matrixType = ENUM_MATRIX_TYPE_objReference;
9532  }
9533  break;
9534 
9535  case 1292:
9536 
9537  {
9538  ((ObjReferenceMatrixElements*)osglData->tempC)->rowMajor = osglData->rowMajor;
9539  }
9540  break;
9541 
9542  case 1296:
9543 
9544  {
9545  ((ObjReferenceMatrixElements*)osglData->tempC)->value = new ObjReferenceMatrixValues();
9546  ((ObjReferenceMatrixElements*)osglData->tempC)->value->numberOfEl = osglData->numberOfEl;
9547  ((ObjReferenceMatrixElements*)osglData->tempC)->value->el = osglData->osglIntArray;
9548  osglData->osglIntArray = NULL; // to facilitate garbage collection without a segfault
9549  parserData->suppressFurtherErrorMessages = false;
9550  parserData->ignoreDataAfterErrors = false;
9551 }
9552  break;
9553 
9554  case 1297:
9555 
9556  {
9557  osglData->numberOfEl = ((ObjReferenceMatrixElements*)osglData->tempC)->numberOfValues;
9558  osglData->osglIntArray = new int[osglData->numberOfEl];
9559  osglData->osglCounter = 0;
9560 }
9561  break;
9562 
9563  case 1304:
9564 
9565  {
9566  osglData->tempC = new ConReferenceMatrixElements();
9567  osglData->mtxConstructorVec.push_back(osglData->tempC);
9568  osglData->numberOfValuesPresent = false;
9569  osglData->rowMajorPresent = false;
9570  osglData->rowMajor = false;
9571 }
9572  break;
9573 
9574  case 1305:
9575 
9576  {
9577  if (osglData->numberOfValuesPresent == false)
9578  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "<conReferenceElements>: numberOfValues attribute missing");
9579 }
9580  break;
9581 
9582  case 1308:
9583 
9584  {
9585  ((ConReferenceMatrixElements*)osglData->tempC)->numberOfValues = osglData->numberOfValues;
9586  if (osglData->numberOfValues > 0)
9587  ((MatrixType*)osglData->mtxBlkVec.back())->matrixType = ENUM_MATRIX_TYPE_conReference;
9588  }
9589  break;
9590 
9591  case 1309:
9592 
9593  {
9594  ((ConReferenceMatrixElements*)osglData->tempC)->rowMajor = osglData->rowMajor;
9595  }
9596  break;
9597 
9598  case 1313:
9599 
9600  {
9601  if (osglData->numberOfValues > 0)
9602  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "expected <value> element");
9603  }
9604  break;
9605 
9606  case 1314:
9607 
9608  {
9609  if (osglData->numberOfValues > osglData->nonzeroCounter)
9610  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "too few <el> elements");
9611  else if (osglData->numberOfValues < osglData->nonzeroCounter)
9612  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "too many <el> elements");
9613  ((ConReferenceMatrixElements*)osglData->tempC)->value->numberOfEl = osglData->numberOfEl;
9614  parserData->suppressFurtherErrorMessages = false;
9615  parserData->ignoreDataAfterErrors = false;
9616  }
9617  break;
9618 
9619  case 1315:
9620 
9621  {
9622  osglData->numberOfValues = ((ConReferenceMatrixElements*)osglData->tempC)->numberOfValues;
9623  osglData->nonzeroCounter = 0;
9624 
9625  ((ConReferenceMatrixElements*)osglData->tempC)->value = new ConReferenceMatrixValues();
9626  ((ConReferenceMatrixElements*)osglData->tempC)->value->numberOfEl
9627  = osglData->numberOfValues;
9628  ((ConReferenceMatrixElements*)osglData->tempC)->value->el
9629  = new ConReferenceMatrixElement*[osglData->numberOfValues];
9630 
9631  for (int i=0; i<osglData->numberOfValues; i++)
9632  ((ConReferenceMatrixElements*)osglData->tempC)->value->el[i] = new ConReferenceMatrixElement();
9633 }
9634  break;
9635 
9636  case 1322:
9637 
9638  {
9639 // osglData->nonzeroCounter++;
9640 // if (osglData->nonzeroCounter > osglData->osglNumberOfNonzeros)
9641 // parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "conReference matrix elements: too many nonzeros");
9642 }
9643  break;
9644 
9645  case 1323:
9646 
9647  {
9648  if (osglData->nonzeroCounter >= osglData->numberOfValues)
9649  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of <el> terms greater than expected");
9650  osglData->valueTypePresent = false;
9651  osglData->multPresent = false;
9652  osglData->incrPresent = false;
9653  osglData->mult = 1;
9654  osglData->incr = 0;
9655  osglData->valueType = ""; //ENUM_CONREFERENCE_VALUETYPE_value;
9656  }
9657  break;
9658 
9659  case 1329:
9660 
9661  {
9662  if (osglData->nonzeroCounter + osglData->mult > osglData->numberOfEl)
9663  {
9664  if (!parserData->suppressFurtherErrorMessages)
9665  {
9666  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more data elements than specified");
9667  parserData->suppressFurtherErrorMessages = true;
9668  parserData->ignoreDataAfterErrors = true;
9669  }
9670  }
9671  else
9672  {
9673  if (osglData->valueType == "")
9674  osglData->valueType = "value";
9675  if (returnConReferenceValueType(osglData->valueType) <= 0)
9676  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData,
9677  "valueType must be one of \"value\", \"status\", \"surplus\", \"shortage\"");
9678  else
9679  {
9680  for (int i=0; i<osglData->mult; i++)
9681  {
9682  ((ConReferenceMatrixElements*)osglData->tempC)->value->el[osglData->nonzeroCounter + i]->conReference
9683  = (yyvsp[(2) - (3)].ival) + i*osglData->incr;
9684  ((ConReferenceMatrixElements*)osglData->tempC)->value->el[osglData->nonzeroCounter + i]->valueType
9686  }
9687  }
9688  osglData->nonzeroCounter += osglData->mult;
9689  }
9690 }
9691  break;
9692 
9693  case 1331:
9694 
9695  {
9696  osglData->tempC = new MatrixTransformation();
9697  osglData->mtxConstructorVec.push_back((MatrixTransformation*)osglData->tempC);
9698 
9699  // clear the vectors of pointers
9700  osnlData->nlNodeVec.clear();
9701  osnlData->sumVec.clear();
9702  osnlData->allDiffVec.clear();
9703  osnlData->maxVec.clear();
9704  osnlData->minVec.clear();
9705  osnlData->productVec.clear();
9706  osnlData->matrixSumVec.clear();
9707  osnlData->matrixProductVec.clear();
9708 
9709  osglData->shapePresent = false;
9710 }
9711  break;
9712 
9713  case 1333:
9714 
9715  {
9716  if (returnNlExprShape(osglData->shape) > 0)
9717  ((MatrixTransformation*)osglData->tempC)->shape
9719  else
9720  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData,
9721  "unknown shape specified in matrix transformation");
9722 }
9723  break;
9724 
9725  case 1334:
9726 
9727  {
9728  // IMPORTANT -- HERE IS WHERE WE CREATE THE EXPRESSION TREE
9729  ((MatrixTransformation*)osglData->tempC)->transformation =
9730  ((OSnLMNode*)osnlData->nlNodeVec[ 0])->createExpressionTreeFromPrefix( osnlData->nlNodeVec);
9731 }
9732  break;
9733 
9734  case 1335:
9735 
9736  {
9737  // clean up temporary arrays without deleting the information
9738  osglData->rowOffsets.back() = NULL;
9739  osglData->colOffsets.back() = NULL;
9740  osglData->osglIntArray = NULL;
9741  osglData->rowOffsets.pop_back();
9742  osglData->colOffsets.pop_back();
9743 }
9744  break;
9745 
9746  case 1336:
9747 
9748  {
9749  osglData->tempC = new MatrixBlocks();
9750  osglData->mtxConstructorVec.push_back((MatrixBlocks*)osglData->tempC);
9751  osglData->mtxBlocksVec.push_back((MatrixBlocks*)osglData->tempC);
9752  osglData->numberOfBlocksPresent = false;
9753 }
9754  break;
9755 
9756  case 1337:
9757 
9758  {
9759  osglData->nBlocksVec.push_back(osglData->numberOfBlocks);
9760  ((MatrixBlocks*)osglData->tempC)->inumberOfChildren = 0;
9761 }
9762  break;
9763 
9764  case 1339:
9765 
9766  {
9767  if ( ((MatrixBlocks*)osglData->mtxBlocksVec.back())->inumberOfChildren !=
9768  osglData->nBlocksVec.back())
9769  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData,
9770  "Number of blocks does not agree with attribute value numberOfBlocks");
9771 
9772  ((MatrixBlocks*)osglData->mtxBlocksVec.back())->m_mChildren
9773  = new MatrixNode*[((MatrixBlocks*)osglData->mtxBlocksVec.back())->inumberOfChildren];
9774  osglData->mtxBlocksVec.pop_back();
9775  osglData->nBlocksVec.pop_back();
9776 }
9777  break;
9778 
9779  case 1340:
9780 
9781  {
9782  if (osglData->osglCounter != osglData->numberOfEl)
9783  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of colOffsets does not match numberOfEl");
9784  ((MatrixBlocks*)osglData->tempC)->colOffset = new IntVector();
9785  ((MatrixBlocks*)osglData->tempC)->colOffset->numberOfEl = osglData->numberOfEl;
9786  ((MatrixBlocks*)osglData->tempC)->colOffset->el = osglData->osglIntArray;
9787  osglData->colOffsets.push_back(osglData->osglIntArray);
9788  parserData->suppressFurtherErrorMessages = false;
9789  parserData->ignoreDataAfterErrors = false;
9790 }
9791  break;
9792 
9793  case 1341:
9794 
9795  {
9796  osglData->numberOfEl = 0;
9797  osglData->numberOfElPresent = false;
9798 }
9799  break;
9800 
9801  case 1342:
9802 
9803  {
9804  osglData->osglCounter = 0;
9805  osglData->osglIntArray = new int[osglData->numberOfEl];
9806 }
9807  break;
9808 
9809  case 1348:
9810 
9811  {
9812  ((MatrixBlocks*)osglData->tempC)->rowOffset = new IntVector();
9813  ((MatrixBlocks*)osglData->tempC)->rowOffset->numberOfEl = osglData->numberOfEl;
9814  ((MatrixBlocks*)osglData->tempC)->rowOffset->el = osglData->osglIntArray;
9815  osglData->rowOffsets.push_back(osglData->osglIntArray);
9816  parserData->suppressFurtherErrorMessages = false;
9817  parserData->ignoreDataAfterErrors = false;
9818 }
9819  break;
9820 
9821  case 1349:
9822 
9823  {
9824  osglData->numberOfEl = 0;
9825  osglData->numberOfElPresent = false;
9826 }
9827  break;
9828 
9829  case 1350:
9830 
9831  {
9832  osglData->osglCounter = 0;
9833  osglData->osglIntArray = new int[osglData->numberOfEl];
9834 }
9835  break;
9836 
9837  case 1357:
9838 
9839  {
9840  ((MatrixBlocks*)osglData->mtxBlocksVec.back())->inumberOfChildren++;
9841 }
9842  break;
9843 
9844  case 1358:
9845 
9846  {
9847  osglData->mtxBlkVec.pop_back();
9848 }
9849  break;
9850 
9851  case 1359:
9852 
9853  {
9854  osglData->tempC = new MatrixBlock();
9855  osglData->mtxConstructorVec.push_back((MatrixBlock*)osglData->tempC);
9856  osglData->mtxBlkVec.push_back(osglData->tempC);
9857 
9858  osglData->symmetryPresent = false;
9859  osglData->typePresent = false;
9860  osglData->blockRowIdxPresent = false;
9861  osglData->blockColIdxPresent = false;
9862 }
9863  break;
9864 
9865  case 1365:
9866 
9867  {
9868  if (verifyMatrixSymmetry(osglData->symmetry) == false)
9869  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "symmetry type not recognized");
9870  parserData->errorText = NULL;
9871  ((MatrixBlock*)osglData->tempC)->symmetry
9873  }
9874  break;
9875 
9876  case 1366:
9877 
9878  {
9879  ((MatrixBlock*)osglData->tempC)->type
9880  = (ENUM_MATRIX_TYPE)returnMatrixType(osglData->type);
9881  }
9882  break;
9883 
9884  case 1370:
9885 
9886  {
9887  osglData->mtxBlkVec.back()->m_mChildren =
9888  new MatrixNode*[osglData->mtxBlkVec.back()->inumberOfChildren];
9889 }
9890  break;
9891 
9892  case 1372:
9893 
9894  {
9895  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
9896  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
9897  if (osglData->numberOfBlocksPresent)
9898  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "numberOfBlocks attribute previously set");
9899  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of <blocks> cannot be negative");
9900  osglData->numberOfBlocksPresent = true;
9901  osglData->numberOfBlocks = (yyvsp[(3) - (4)].ival);
9902 }
9903  break;
9904 
9905  case 1373:
9906 
9907  {
9908  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
9909  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
9910  if (osglData->numberOfColumnsPresent)
9911  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "numberOfColumns attribute previously set");
9912  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of <blocks> cannot be negative");
9913  osglData->numberOfColumnsPresent = true;
9914  osglData->numberOfColumns = (yyvsp[(3) - (4)].ival);
9915 }
9916  break;
9917 
9918  case 1374:
9919 
9920  {
9921  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
9922  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
9923  if (osglData->numberOfConPresent)
9924  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "numberOfCon attribute previously set");
9925  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of <con> cannot be negative");
9926  osglData->numberOfConPresent = true;
9927  osglData->numberOfCon = (yyvsp[(3) - (4)].ival);
9928 }
9929  break;
9930 
9931  case 1375:
9932 
9933  {
9934  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
9935  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
9936  if (osglData->numberOfConstraintsPresent)
9937  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "numberOfConstraints attribute previously set");
9938  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of constraints cannot be negative");
9939  osglData->numberOfConstraintsPresent = true;
9940  osglData->numberOfConstraints = (yyvsp[(3) - (4)].ival);
9941 }
9942  break;
9943 
9944  case 1376:
9945 
9946  {
9947  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
9948  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
9949  if (osglData->numberOfElPresent)
9950  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "numberOfEl attribute previously set");
9951  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of <el> cannot be negative");
9952  osglData->numberOfElPresent = true;
9953  osglData->numberOfEl = (yyvsp[(3) - (4)].ival);
9954 }
9955  break;
9956 
9957  case 1377:
9958 
9959  {
9960  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
9961  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
9962  if (osglData->numberOfEnumerationsPresent)
9963  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "numberOfEnumerations attribute previously set");
9964  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of <enumerations> cannot be negative");
9965  osglData->numberOfEnumerationsPresent = true;
9966  osglData->numberOfEnumerations = (yyvsp[(3) - (4)].ival);
9967 }
9968  break;
9969 
9970  case 1378:
9971 
9972  {
9973  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
9974  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
9975  if (osglData->numberOfItemsPresent)
9976  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "numberOfItems attribute previously set");
9977  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of <items> cannot be negative");
9978  osglData->numberOfItemsPresent = true;
9979  osglData->numberOfItems = (yyvsp[(3) - (4)].ival);
9980 }
9981  break;
9982 
9983  case 1379:
9984 
9985  {
9986  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
9987  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
9988  if (osglData->numberOfMatrixVarPresent)
9989  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "numberOfMatrixVar attribute previously set");
9990  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of <matrixVar> cannot be negative");
9991  osglData->numberOfMatrixVarPresent = true;
9992  osglData->numberOfMatrixVar = (yyvsp[(3) - (4)].ival);
9993 }
9994  break;
9995 
9996  case 1380:
9997 
9998  {
9999  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10000  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10001  if (osglData->numberOfObjPresent)
10002  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "numberOfObj attribute previously set");
10003  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of <obj> cannot be negative");
10004  osglData->numberOfObjPresent = true;
10005  osglData->numberOfObj = (yyvsp[(3) - (4)].ival);
10006 }
10007  break;
10008 
10009  case 1381:
10010 
10011  {
10012  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10013  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10014  if (osglData->numberOfObjectivesPresent)
10015  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "numberOfObjectives attribute previously set");
10016  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of objectives cannot be negative");
10017  osglData->numberOfObjectivesPresent = true;
10018  osglData->numberOfObjectives = (yyvsp[(3) - (4)].ival);
10019 }
10020  break;
10021 
10022  case 1382:
10023 
10024  {
10025  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10026  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10027  if (osglData->numberOfRowsPresent)
10028  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "numberOfRows attribute previously set");
10029  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of <rows> cannot be negative");
10030  osglData->numberOfRowsPresent = true;
10031  osglData->numberOfRows = (yyvsp[(3) - (4)].ival);
10032 }
10033  break;
10034 
10035  case 1383:
10036 
10037  {
10038  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10039  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10040  if (osglData->numberOfValuesPresent)
10041  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "numberOfValues attribute previously set");
10042  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of <values> cannot be negative");
10043  osglData->numberOfValuesPresent = true;
10044  osglData->numberOfValues = (yyvsp[(3) - (4)].ival);
10045 }
10046  break;
10047 
10048  case 1384:
10049 
10050  {
10051  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10052  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10053  if (osglData->numberOfVarPresent)
10054  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "numberOfVar attribute previously set");
10055  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of <var> cannot be negative");
10056  osglData->numberOfVarPresent = true;
10057  osglData->numberOfVar = (yyvsp[(3) - (4)].ival);
10058 }
10059  break;
10060 
10061  case 1385:
10062 
10063  {
10064  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10065  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10066  if (osglData->numberOfVarIdxPresent)
10067  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "numberOfVarIdx attribute previously set");
10068  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of <varIdx> cannot be negative");
10069  osglData->numberOfVarIdxPresent = true;
10070  osglData->numberOfVarIdx = (yyvsp[(3) - (4)].ival);
10071 }
10072  break;
10073 
10074  case 1386:
10075 
10076  {
10077  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10078  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10079  if (osglData->numberOfVariablesPresent)
10080  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "numberOfVariables attribute previously set");
10081  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "number of variables cannot be negative");
10082  osglData->numberOfVariablesPresent = true;
10083  osglData->numberOfVariables = (yyvsp[(3) - (4)].ival);
10084 }
10085  break;
10086 
10087  case 1387:
10088 
10089  {
10090  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10091  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10092  if (osglData->base64SizePresent)
10093  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "base64Size attribute previously set");
10094  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "base64Size cannot be negative");
10095  osglData->base64SizePresent = true;
10096  osglData->base64Size = (yyvsp[(3) - (4)].ival);
10097 }
10098  break;
10099 
10100  case 1388:
10101 
10102  {
10103  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10104  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10105  if (osglData->baseMatrixIdxPresent == true)
10106  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one baseMatrixIdx attribute in <baseMatrix> element");
10107  if ((yyvsp[(3) - (4)].ival) < 0)
10108  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "baseMatrix idx cannot be negative");
10109  if ((yyvsp[(3) - (4)].ival) > osglData->matrixCounter)
10110  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "baseMatrix idx exceeds number of matrices so far");
10111  osglData->baseMatrixIdxPresent = true;
10112  osglData->baseMatrixIdx = (yyvsp[(3) - (4)].ival);
10113 }
10114  break;
10115 
10116  case 1389:
10117 
10118  {
10119  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10120  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData,
10121  "start and end quotes are not the same");
10122  if (osglData->baseMatrixStartRowPresent == true)
10123  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData,
10124  "more than one baseMatrixStartRow attribute in <baseMatrix> element");
10125  if ((yyvsp[(3) - (4)].ival) < 0)
10126  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData,
10127  "baseMatrix first row cannot be negative");
10128  osglData->baseMatrixStartRowPresent = true;
10129  osglData->baseMatrixStartRow = (yyvsp[(3) - (4)].ival);
10130 }
10131  break;
10132 
10133  case 1390:
10134 
10135  {
10136  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10137  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData,
10138  "start and end quotes are not the same");
10139  if (osglData->baseMatrixStartColPresent == true)
10140  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData,
10141  "more than one baseMatrixStartCol attribute in <baseMatrix> element");
10142  if ((yyvsp[(3) - (4)].ival) < 0)
10143  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData,
10144  "baseMatrix first column cannot be negative");
10145  osglData->baseMatrixStartColPresent = true;
10146  osglData->baseMatrixStartCol = (yyvsp[(3) - (4)].ival);
10147 }
10148  break;
10149 
10150  case 1391:
10151 
10152  {
10153  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10154  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10155  if (osglData->baseMatrixEndRowPresent == true)
10156  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one baseMatrixEndRow attribute in <baseMatrix> element");
10157  if ((yyvsp[(3) - (4)].ival) < 0)
10158  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "baseMatrix end row cannot be negative");
10159  osglData->baseMatrixEndRowPresent = true;
10160  osglData->baseMatrixEndRow = (yyvsp[(3) - (4)].ival);
10161 }
10162  break;
10163 
10164  case 1392:
10165 
10166  {
10167  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10168  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10169  if (osglData->baseMatrixEndColPresent == true)
10170  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one baseMatrixEndCol attribute in <baseMatrix> element");
10171  if ((yyvsp[(3) - (4)].ival) < 0)
10172  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "baseMatrix end col cannot be negative");
10173  osglData->baseMatrixEndColPresent = true;
10174  osglData->baseMatrixEndCol = (yyvsp[(3) - (4)].ival);
10175 }
10176  break;
10177 
10178  case 1393:
10179 
10180  {
10181  if (osglData->blockRowIdxPresent)
10182  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "blockRowIdx attribute previously set");
10183  else
10184  {
10185  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "blockRowIdx cannot be negative");
10186  osglData->blockRowIdxPresent = true;
10187  osglData->blockRowIdx = (yyvsp[(3) - (4)].ival);
10188  ((MatrixBlock*)osglData->tempC)->blockRowIdx = (yyvsp[(3) - (4)].ival);
10189  }
10190 
10191  // compute the size of the block
10192  ((MatrixBlock*)osglData->tempC)->numberOfRows
10193  = osglData->rowOffsets.back()[osglData->blockRowIdx+1]
10194  - osglData->rowOffsets.back()[osglData->blockRowIdx];
10195 }
10196  break;
10197 
10198  case 1394:
10199 
10200  {
10201  if (osglData->blockColIdxPresent)
10202  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "blockColIdx attribute previously set");
10203  else
10204  {
10205  if ((yyvsp[(3) - (4)].ival) < 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "blockColIdx cannot be negative");
10206  osglData->blockColIdxPresent = true;
10207  osglData->blockColIdx = (yyvsp[(3) - (4)].ival);
10208  ((MatrixBlock*)osglData->tempC)->blockColIdx = (yyvsp[(3) - (4)].ival);
10209  }
10210 
10211  // compute the size of the block
10212  ((MatrixBlock*)osglData->tempC)->numberOfColumns
10213  = osglData->colOffsets.back()[osglData->blockColIdx+1]
10214  - osglData->colOffsets.back()[osglData->blockColIdx];
10215 }
10216  break;
10217 
10218  case 1395:
10219 
10220  {
10221  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10222  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10223  if (osglData->coefPresent == true)
10224  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "linear matrix elements: duplicate coef");
10225  else
10226  {
10227  osglData->coef = parserData->tempVal;
10228  osglData->coefPresent = true;
10229  }
10230 }
10231  break;
10232 
10233  case 1396:
10234 
10235  {
10236  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10237  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10238  if (osglData->constantPresent == true)
10239  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "linear matrix elements: duplicate constant");
10240  else
10241  {
10242  osglData->constant = parserData->tempVal;
10243  osglData->constantPresent = true;
10244  }
10245 }
10246  break;
10247 
10248  case 1397:
10249 
10250  {
10251  if (osglData->idxPresent == true)
10252  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one idx attribute");
10253  osglData->idxPresent = true;
10254  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10255  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10256  osglData->idx = (yyvsp[(3) - (4)].ival);
10257  }
10258  break;
10259 
10260  case 1398:
10261 
10262  {
10263  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10264  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10265  if (osglData->incrPresent)
10266  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "only one incr attribute allowed");
10267  osglData->incrPresent = true;
10268  osglData->incr = (yyvsp[(3) - (4)].ival);
10269 }
10270  break;
10271 
10272  case 1399:
10273 
10274  {
10275  if (osglData->matrixVarIdxPresent == true)
10276  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one matrixVarIdx attribute in <matrixVar> element");
10277  osglData->matrixVarIdxPresent = true;
10278  if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, parserData, osglData, osnlData, "<matrixVarIdx> cannot be negative");
10279  osglData->matrixVarIdx = (yyvsp[(3) - (4)].ival);
10280 }
10281  break;
10282 
10283  case 1400:
10284 
10285  {
10286  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10287  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10288  if (osglData->multPresent)
10289  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "only one mult attribute allowed");
10290  if ((yyvsp[(3) - (4)].ival) <= 0) parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "mult must be positive");
10291  osglData->multPresent = true;
10292  osglData->mult = (yyvsp[(3) - (4)].ival);
10293 }
10294  break;
10295 
10296  case 1401:
10297 
10298  {
10299  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10300  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10301  if (osglData->scalarMultiplierPresent == true)
10302  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one scalar multiplier attribute in <baseMatrix> element");
10303  osglData->scalarMultiplierPresent = true;
10304  osglData->scalarMultiplier = parserData->tempVal;
10305 }
10306  break;
10307 
10308  case 1402:
10309 
10310  {
10311  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10312  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10313  if (osglData->targetMatrixFirstRowPresent == true)
10314  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one targetMatrixFirstRow attribute in <baseMatrix> element");
10315  if ((yyvsp[(3) - (4)].ival) < 0)
10316  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "targetMatrix first row cannot be negative");
10317  osglData->targetMatrixFirstRowPresent = true;
10318  osglData->targetMatrixFirstRow = (yyvsp[(3) - (4)].ival);
10319 }
10320  break;
10321 
10322  case 1403:
10323 
10324  {
10325  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
10326  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10327  if (osglData->targetMatrixFirstColPresent == true)
10328  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one targetMatrixFirstCol attribute in <baseMatrix> element");
10329  if ((yyvsp[(3) - (4)].ival) < 0)
10330  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "targetMatrix first col cannot be negative");
10331  osglData->targetMatrixFirstColPresent = true;
10332  osglData->targetMatrixFirstCol = (yyvsp[(3) - (4)].ival);
10333 }
10334  break;
10335 
10336  case 1406:
10337 
10338  {
10339  if (osglData->baseTransposePresent == true)
10340  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData,
10341  "more than one baseTranspose attribute in <baseMatrix> element");
10342  else
10343  osglData->baseTranspose = true;
10344  osglData->baseTransposePresent = true;
10345 }
10346  break;
10347 
10348  case 1407:
10349 
10350  {
10351  if (osglData->baseTransposePresent == true)
10352  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData,
10353  "more than one baseTranspose attribute in <baseMatrix> element");
10354  else
10355  {
10356  if (strcmp((yyvsp[(2) - (3)].sval),"false") == 0) osglData->baseTranspose = false;
10357  else if (strcmp((yyvsp[(2) - (3)].sval),"true" ) == 0) osglData->baseTranspose = true;
10358  else parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData,
10359  "baseTranspose attribute in <baseMatrix> element must be \"true\" or \"false\"");
10360  }
10361  osglData->baseTransposePresent = true;
10362  free((yyvsp[(2) - (3)].sval));
10363 }
10364  break;
10365 
10366  case 1410:
10367 
10368  {
10369  if (osglData->categoryPresent == true)
10370  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one category attribute");
10371  osglData->categoryPresent = true;
10372 }
10373  break;
10374 
10375  case 1411:
10376 
10377  {
10378  if (osglData->categoryPresent == true)
10379  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one category attribute");
10380  osglData->categoryPresent = true;
10381  osglData->category = (yyvsp[(2) - (3)].sval);
10382  free((yyvsp[(2) - (3)].sval));
10383 }
10384  break;
10385 
10386  case 1414:
10387 
10388  {
10389  if (osglData->conTypePresent == true)
10390  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one conType attribute");
10391  osglData->conTypePresent = true;
10392 }
10393  break;
10394 
10395  case 1415:
10396 
10397  {
10398  if (osglData->conTypePresent == true)
10399  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one conType attribute");
10400  osglData->conTypePresent = true;
10401  osglData->conType = (yyvsp[(2) - (3)].sval);
10402  free((yyvsp[(2) - (3)].sval));
10403 }
10404  break;
10405 
10406  case 1418:
10407 
10408  {
10409  if (osglData->descriptionPresent == true)
10410  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one description attribute");
10411  osglData->descriptionPresent = true;
10412 }
10413  break;
10414 
10415  case 1419:
10416 
10417  {
10418  if (osglData->descriptionPresent == true)
10419  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one description attribute");
10420  osglData->descriptionPresent = true;
10421  osglData->description = (yyvsp[(2) - (3)].sval);
10422  free((yyvsp[(2) - (3)].sval));
10423 }
10424  break;
10425 
10426  case 1422:
10427 
10428  {
10429  if (osglData->enumTypePresent == true)
10430  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one enumType attribute");
10431  osglData->enumTypePresent = true;
10432 }
10433  break;
10434 
10435  case 1423:
10436 
10437  {
10438  if (osglData->enumTypePresent == true)
10439  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one enumType attribute");
10440  osglData->enumTypePresent = true;
10441  osglData->enumType = (yyvsp[(2) - (3)].sval);
10442  free((yyvsp[(2) - (3)].sval));
10443 }
10444  break;
10445 
10446  case 1426:
10447 
10448  {
10449  if (osglData->matrixVarTypePresent == true)
10450  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one matrixVarType attribute");
10451  osglData->matrixVarTypePresent = true;
10452 }
10453  break;
10454 
10455  case 1427:
10456 
10457  {
10458  if (osglData->matrixVarTypePresent == true)
10459  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one matrixVarType attribute");
10460  osglData->matrixVarTypePresent = true;
10461  osglData->matrixVarType = (yyvsp[(2) - (3)].sval);
10462  free((yyvsp[(2) - (3)].sval));
10463 }
10464  break;
10465 
10466  case 1430:
10467 
10468  {
10469  if (osglData->namePresent == true)
10470  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one name attribute");
10471  osglData->namePresent = true;
10472 }
10473  break;
10474 
10475  case 1431:
10476 
10477  {
10478  if (osglData->namePresent == true)
10479  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one name attribute");
10480  osglData->namePresent = true;
10481  osglData->name = (yyvsp[(2) - (3)].sval);
10482  free((yyvsp[(2) - (3)].sval));
10483 }
10484  break;
10485 
10486  case 1434:
10487 
10488  {
10489  if (osglData->objTypePresent == true)
10490  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one objType attribute");
10491  osglData->objTypePresent = true;
10492 }
10493  break;
10494 
10495  case 1435:
10496 
10497  {
10498  if (osglData->objTypePresent == true)
10499  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one objType attribute");
10500  osglData->objTypePresent = true;
10501  osglData->objType = (yyvsp[(2) - (3)].sval);
10502  free((yyvsp[(2) - (3)].sval));
10503 }
10504  break;
10505 
10506  case 1438:
10507 
10508  {
10509  if (osglData->rowMajorPresent)
10510  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "rowMajor attribute encountered more than once");
10511  else
10512  osglData->rowMajor = true;
10513  osglData->rowMajorPresent = true;
10514 }
10515  break;
10516 
10517  case 1439:
10518 
10519  {
10520  if (osglData->rowMajorPresent)
10521  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "rowMajor attribute encountered more than once");
10522  else
10523  {
10524  if (strcmp((yyvsp[(2) - (3)].sval),"false") == 0) osglData->rowMajor = false;
10525  else if (strcmp((yyvsp[(2) - (3)].sval),"true" ) == 0) osglData->rowMajor = true;
10526  else parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "rowMajor attribute must be \"true\" or \"false\"");
10527  }
10528  osglData->rowMajorPresent = true;
10529  free((yyvsp[(2) - (3)].sval));
10530 }
10531  break;
10532 
10533  case 1442:
10534 
10535  {
10536  if (osglData->shapePresent == true)
10537  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one shape attribute");
10538  osglData->shapePresent = true;
10539 }
10540  break;
10541 
10542  case 1443:
10543 
10544  {
10545  if (osglData->shapePresent == true)
10546  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one shape attribute");
10547  osglData->shapePresent = true;
10548  osglData->shape = (yyvsp[(2) - (3)].sval);
10549  free((yyvsp[(2) - (3)].sval));
10550 }
10551  break;
10552 
10553  case 1446:
10554 
10555  {
10556  if (osglData->solverPresent == true)
10557  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one solver attribute");
10558  osglData->solverPresent = true;
10559 }
10560  break;
10561 
10562  case 1447:
10563 
10564  {
10565  if (osglData->solverPresent == true)
10566  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one solver attribute");
10567  osglData->solverPresent = true;
10568  osglData->solver = (yyvsp[(2) - (3)].sval);
10569  free((yyvsp[(2) - (3)].sval));
10570 }
10571  break;
10572 
10573  case 1450:
10574 
10575  {
10576  if (osglData->symmetryPresent == true)
10577  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one symmetry attribute in <matrix> element");
10578  osglData->symmetryPresent = true;
10579 }
10580  break;
10581 
10582  case 1451:
10583 
10584  {
10585  if (osglData->symmetryPresent == true)
10586  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one symmetry attribute in <matrix> element");
10587  osglData->symmetryPresent = true;
10588  osglData->symmetry = (yyvsp[(2) - (3)].sval);
10589  free((yyvsp[(2) - (3)].sval));
10590 }
10591  break;
10592 
10593  case 1454:
10594 
10595  {
10596  if (osglData->typePresent == true)
10597  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one type attribute");
10598  osglData->typePresent = true;
10599 }
10600  break;
10601 
10602  case 1455:
10603 
10604  {
10605  if (osglData->typePresent == true)
10606  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one type attribute");
10607  osglData->typePresent = true;
10608  osglData->type = (yyvsp[(2) - (3)].sval);
10609  free((yyvsp[(2) - (3)].sval));
10610 }
10611  break;
10612 
10613  case 1458:
10614 
10615  {
10616  if (osglData->unitPresent == true)
10617  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one unit attribute");
10618  osglData->unitPresent = true;
10619 }
10620  break;
10621 
10622  case 1459:
10623 
10624  {
10625  if (osglData->unitPresent == true)
10626  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one unit attribute");
10627  osglData->unitPresent = true;
10628  osglData->unit = (yyvsp[(2) - (3)].sval);
10629  free((yyvsp[(2) - (3)].sval));
10630 }
10631  break;
10632 
10633  case 1462:
10634 
10635  {
10636  if (osglData->valuePresent == true)
10637  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one value attribute");
10638  osglData->valuePresent = true;
10639  osglData->value = "";
10640 }
10641  break;
10642 
10643  case 1463:
10644 
10645  {
10646  if (osglData->valuePresent == true)
10647  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one value attribute");
10648  osglData->valuePresent = true;
10649  osglData->value = (yyvsp[(2) - (3)].sval);
10650  free((yyvsp[(2) - (3)].sval));
10651 }
10652  break;
10653 
10654  case 1466:
10655 
10656  {
10657  if (osglData->valueTypePresent == true)
10658  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one valueType attribute");
10659  osglData->valueTypePresent = true;
10660 }
10661  break;
10662 
10663  case 1467:
10664 
10665  {
10666  if (osglData->valueTypePresent == true)
10667  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one valueType attribute");
10668  osglData->valueTypePresent = true;
10669  osglData->valueType = (yyvsp[(2) - (3)].sval);
10670  free((yyvsp[(2) - (3)].sval));
10671 }
10672  break;
10673 
10674  case 1470:
10675 
10676  {
10677  if (osglData->varTypePresent == true)
10678  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one varType attribute");
10679  osglData->varTypePresent = true;
10680 }
10681  break;
10682 
10683  case 1471:
10684 
10685  {
10686  if (osglData->varTypePresent == true)
10687  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "more than one varType attribute");
10688  osglData->varTypePresent = true;
10689  osglData->varType = (yyvsp[(2) - (3)].sval);
10690  free((yyvsp[(2) - (3)].sval));
10691 }
10692  break;
10693 
10694  case 1499:
10695 
10696  { osnlData->nlNodePoint = new OSnLNodeE();
10697  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);}
10698  break;
10699 
10700  case 1503:
10701 
10702  { osnlData->nlNodePoint = new OSnLNodePI();
10703  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);}
10704  break;
10705 
10706  case 1507:
10707 
10708  {
10709  osnlData->nlNodePoint = new OSnLNodeTimes();
10710  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10711 }
10712  break;
10713 
10714  case 1509:
10715 
10716  {
10717  osnlData->nlNodePoint = new OSnLNodePlus();
10718  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10719 }
10720  break;
10721 
10722  case 1511:
10723 
10724  {
10725  osnlData->nlNodePoint = new OSnLNodeMinus();
10726  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10727 }
10728  break;
10729 
10730  case 1513:
10731 
10732  {
10733  osnlData->nlNodePoint = new OSnLNodeNegate();
10734  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10735 }
10736  break;
10737 
10738  case 1515:
10739 
10740  {
10741  osnlData->nlNodePoint = new OSnLNodeDivide();
10742  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10743 }
10744  break;
10745 
10746  case 1517:
10747 
10748  {
10749  osnlData->nlNodePoint = new OSnLNodePower();
10750  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10751 }
10752  break;
10753 
10754  case 1519:
10755 
10756  {
10757  osnlData->nlNodePoint = new OSnLNodeLn();
10758  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10759 }
10760  break;
10761 
10762  case 1521:
10763 
10764  {
10765  osnlData->nlNodePoint = new OSnLNodeSqrt();
10766  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10767 }
10768  break;
10769 
10770  case 1523:
10771 
10772  {
10773  osnlData->nlNodePoint = new OSnLNodeSquare();
10774  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10775 }
10776  break;
10777 
10778  case 1525:
10779 
10780  {
10781  osnlData->nlNodePoint = new OSnLNodeCos();
10782  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10783 }
10784  break;
10785 
10786  case 1527:
10787 
10788  {
10789  osnlData->nlNodePoint = new OSnLNodeSin();
10790  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10791 }
10792  break;
10793 
10794  case 1529:
10795 
10796  {
10797  osnlData->nlNodePoint = new OSnLNodeExp();
10798  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10799 }
10800  break;
10801 
10802  case 1532:
10803 
10804  {
10805  osnlData->nlNodePoint = new OSnLNodeAbs();
10806  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10807 }
10808  break;
10809 
10810  case 1533:
10811 
10812  {
10813 #ifdef OSINSTANCE_AVAILABLE
10815 #endif
10816 }
10817  break;
10818 
10819  case 1534:
10820 
10821  {
10822  osnlData->nlNodePoint = new OSnLNodeErf();
10823  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10824 }
10825  break;
10826 
10827  case 1535:
10828 
10829  {
10830 }
10831  break;
10832 
10833  case 1536:
10834 
10835  {
10836  osnlData->nlNodePoint = new OSnLNodeIf();
10837  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10838 }
10839  break;
10840 
10841  case 1537:
10842 
10843  {
10844 #ifdef OSINSTANCE_AVAILABLE
10846 #endif
10847 }
10848  break;
10849 
10850  case 1538:
10851 
10852  {
10853  osnlData->nlNodePoint = new OSnLNodeMatrixDeterminant();
10854  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10855 }
10856  break;
10857 
10858  case 1540:
10859 
10860  {
10861  osnlData->nlNodePoint = new OSnLNodeMatrixTrace();
10862  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10863 }
10864  break;
10865 
10866  case 1542:
10867 
10868  {
10869  osnlData->nlNodePoint = new OSnLNodeMatrixToScalar();
10870  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10871 }
10872  break;
10873 
10874  case 1544:
10875 
10876  {
10877  osglData->valuePresent = false;
10878  osglData->typePresent = false;
10879  osnlData->numberidattON = false;
10880 }
10881  break;
10882 
10883  case 1545:
10884 
10885  {
10886  osnlData->nlNodeNumberPoint = new OSnLNodeNumber();
10887  osnlData->nlNodeVec.push_back( osnlData->nlNodeNumberPoint);
10888 }
10889  break;
10890 
10891  case 1550:
10892 
10893  {
10894  osnlData->nlNodeNumberPoint->type = osglData->type;
10895  }
10896  break;
10897 
10898  case 1551:
10899 
10900  {
10901  osnlData->nlNodeNumberPoint->value = atof(osglData->value.c_str());
10902  }
10903  break;
10904 
10905  case 1553:
10906 
10907  {
10908  if (osnlData->numberidattON) parserData->parser_errors +=
10909  addErrorMsg( NULL, osresult, parserData, osglData, osnlData,"too many number id attributes");
10910  osnlData->numberidattON = true;
10911  osnlData->nlNodeNumberPoint->id = (yyvsp[(2) - (2)].sval);
10912  free((yyvsp[(2) - (2)].sval));
10913 }
10914  break;
10915 
10916  case 1555:
10917 
10918  {
10919  osnlData->nlNodeVariablePoint = new OSnLNodeVariable();
10920  osnlData->nlNodeVec.push_back( osnlData->nlNodeVariablePoint);
10921 }
10922  break;
10923 
10924  case 1556:
10925 
10926  {osnlData->variablecoefattON = false; osnlData->variableidxattON = false;}
10927  break;
10928 
10929  case 1559:
10930 
10931  {
10932  osnlData->nlNodeVariablePoint->inumberOfChildren = 1;
10933  osnlData->nlNodeVariablePoint->m_mChildren = new OSnLNode*[ 1];
10934  }
10935  break;
10936 
10937  case 1563:
10938 
10939  {
10940  if (osnlData->variablecoefattON) parserData->parser_errors +=
10941  addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "too many variable coef attributes");
10942  osnlData->variablecoefattON = true;
10943  }
10944  break;
10945 
10946  case 1564:
10947 
10948  {
10949  if (osnlData->variableidxattON) parserData->parser_errors +=
10950  addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "too many variable idx attributes");
10951  osnlData->variableidxattON = true;
10952  }
10953  break;
10954 
10955  case 1565:
10956 
10957  {
10958  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) ) parserData->parser_errors +=
10959  addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10960  osnlData->nlNodeVariablePoint->coef = parserData->tempVal;
10961 }
10962  break;
10963 
10964  case 1566:
10965 
10966  {
10967  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) ) parserData->parser_errors +=
10968  addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
10969  osnlData->nlNodeVariablePoint->idx = (yyvsp[(3) - (4)].ival);
10970 }
10971  break;
10972 
10973  case 1567:
10974 
10975  {
10976  osnlData->nlNodePoint = new OSnLNodeSum();
10977  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
10978  osnlData->sumVec.push_back( osnlData->nlNodePoint);
10979 }
10980  break;
10981 
10982  case 1568:
10983 
10984  {
10985  ((OSnLNode*)osnlData->sumVec.back())->m_mChildren
10986  = new OSnLNode*[ ((OSnLNode*)osnlData->sumVec.back())->inumberOfChildren];
10987  osnlData->sumVec.pop_back();
10988 }
10989  break;
10990 
10991  case 1570:
10992 
10993  { ((OSnLNode*)osnlData->sumVec.back())->inumberOfChildren++; }
10994  break;
10995 
10996  case 1571:
10997 
10998  {
10999  osnlData->nlNodePoint = new OSnLNodeAllDiff ();
11000  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11001  osnlData->allDiffVec.push_back( osnlData->nlNodePoint);
11002 }
11003  break;
11004 
11005  case 1572:
11006 
11007  {
11008  ((OSnLNode*)osnlData->allDiffVec.back())->m_mChildren
11009  = new OSnLNode*[ ((OSnLNode*)osnlData->allDiffVec.back())->inumberOfChildren];
11010  osnlData->allDiffVec.pop_back();
11011 #ifdef OSINSTANCE_AVAILABLE
11013 #endif
11014 }
11015  break;
11016 
11017  case 1574:
11018 
11019  { ((OSnLNode*)osnlData->allDiffVec.back())->inumberOfChildren++; }
11020  break;
11021 
11022  case 1575:
11023 
11024  {
11025  osnlData->nlNodePoint = new OSnLNodeMax();
11026  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11027  osnlData->maxVec.push_back( osnlData->nlNodePoint);
11028 }
11029  break;
11030 
11031  case 1576:
11032 
11033  {
11034  osnlData->maxVec.back()->m_mChildren = new OSnLNode*[ osnlData->maxVec.back()->inumberOfChildren];
11035  osnlData->maxVec.pop_back();
11036 #ifdef OSINSTANCE_AVAILABLE
11038 #endif
11039 }
11040  break;
11041 
11042  case 1578:
11043 
11044  { osnlData->maxVec.back()->inumberOfChildren++; }
11045  break;
11046 
11047  case 1579:
11048 
11049  {
11050  osnlData->nlNodePoint = new OSnLNodeMin();
11051  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11052  osnlData->minVec.push_back( osnlData->nlNodePoint);
11053 }
11054  break;
11055 
11056  case 1580:
11057 
11058  {
11059  osnlData->minVec.back()->m_mChildren = new OSnLNode*[ osnlData->minVec.back()->inumberOfChildren];
11060  osnlData->minVec.pop_back();
11061 #ifdef OSINSTANCE_AVAILABLE
11063 #endif
11064 }
11065  break;
11066 
11067  case 1582:
11068 
11069  { osnlData->minVec.back()->inumberOfChildren++; }
11070  break;
11071 
11072  case 1583:
11073 
11074  {
11075  osnlData->nlNodePoint = new OSnLNodeProduct();
11076  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11077  osnlData->productVec.push_back( osnlData->nlNodePoint);
11078 }
11079  break;
11080 
11081  case 1584:
11082 
11083  {
11084  osnlData->productVec.back()->m_mChildren = new OSnLNode*[ osnlData->productVec.back()->inumberOfChildren];
11085  osnlData->productVec.pop_back();
11086 }
11087  break;
11088 
11089  case 1586:
11090 
11091  { osnlData->productVec.back()->inumberOfChildren++; }
11092  break;
11093 
11094  case 1606:
11095 
11096  {
11097  osnlData->matrixidxattON = false;
11098 }
11099  break;
11100 
11101  case 1607:
11102 
11103  {
11104  osnlData->nlMNodeMatrixRef = new OSnLMNodeMatrixReference();
11105  osnlData->nlNodeVec.push_back(osnlData->nlMNodeMatrixRef);
11106 }
11107  break;
11108 
11109  case 1610:
11110 
11111  {
11112  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
11113  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
11114  osnlData->nlMNodeMatrixRef->idx = (yyvsp[(3) - (4)].ival);
11115 }
11116  break;
11117 
11118  case 1611:
11119 
11120  {
11121  osnlData->matrixidxattON = false;
11122 }
11123  break;
11124 
11125  case 1612:
11126 
11127  {
11128  osnlData->nlMNodeMatrixVar = new OSnLMNodeMatrixVar();
11129  osnlData->nlNodeVec.push_back(osnlData->nlMNodeMatrixVar);
11130 }
11131  break;
11132 
11133  case 1615:
11134 
11135  {
11136  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
11137  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
11138  osnlData->nlMNodeMatrixVar->idx = (yyvsp[(3) - (4)].ival);
11139 }
11140  break;
11141 
11142  case 1616:
11143 
11144  {
11145  osnlData->matrixidxattON = false;
11146 }
11147  break;
11148 
11149  case 1617:
11150 
11151  {
11152  osnlData->nlMNodeMatrixObj = new OSnLMNodeMatrixObj();
11153  osnlData->nlNodeVec.push_back(osnlData->nlMNodeMatrixObj);
11154 }
11155  break;
11156 
11157  case 1620:
11158 
11159  {
11160  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
11161  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
11162  osnlData->nlMNodeMatrixObj->idx = (yyvsp[(3) - (4)].ival);
11163 }
11164  break;
11165 
11166  case 1621:
11167 
11168  {
11169  osnlData->matrixidxattON = false;
11170 }
11171  break;
11172 
11173  case 1622:
11174 
11175  {
11176  osnlData->nlMNodeMatrixCon = new OSnLMNodeMatrixCon();
11177  osnlData->nlNodeVec.push_back(osnlData->nlMNodeMatrixCon);
11178 }
11179  break;
11180 
11181  case 1625:
11182 
11183  {
11184  if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
11185  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "start and end quotes are not the same");
11186  osnlData->nlMNodeMatrixCon->idx = (yyvsp[(3) - (4)].ival);
11187 }
11188  break;
11189 
11190  case 1627:
11191 
11192  {
11193  osnlData->nlNodePoint = new OSnLMNodeMatrixDiagonal();
11194  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11195 }
11196  break;
11197 
11198  case 1630:
11199 
11200  {
11201  osnlData->nlNodePoint = new OSnLMNodeMatrixDotTimes();
11202  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11203 }
11204  break;
11205 
11206  case 1633:
11207 
11208  {
11209  osnlData->nlNodePoint = new OSnLMNodeIdentityMatrix();
11210  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11211 }
11212  break;
11213 
11214  case 1636:
11215 
11216  {
11217  osnlData->nlNodePoint = new OSnLMNodeMatrixInverse();
11218  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11219 }
11220  break;
11221 
11222  case 1639:
11223 
11224  {
11225  osnlData->nlNodePoint = new OSnLMNodeMatrixLowerTriangle();
11226  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11227 }
11228  break;
11229 
11230  case 1641:
11231 
11232  {
11233  ((OSnLMNodeMatrixLowerTriangle*)osnlData->nlNodeVec.back())->includeDiagonal = osnlData->includeDiagonalAttribute;
11234 }
11235  break;
11236 
11237  case 1644:
11238 
11239  {
11240  osnlData->nlNodePoint = new OSnLMNodeMatrixUpperTriangle();
11241  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11242 }
11243  break;
11244 
11245  case 1646:
11246 
11247  {
11248  ((OSnLMNodeMatrixUpperTriangle*)osnlData->nlNodeVec.back())->includeDiagonal = osnlData->includeDiagonalAttribute;
11249 }
11250  break;
11251 
11252  case 1648:
11253 
11254  {
11255  if (strcmp((yyvsp[(2) - (3)].sval),"false") == 0) osnlData->includeDiagonalAttribute = false;
11256  else if (strcmp((yyvsp[(2) - (3)].sval),"true" ) == 0) osnlData->includeDiagonalAttribute = true;
11257  else parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "osnlData->includeDiagonal attribute must be \"true\" or \"false\"");
11258  free((yyvsp[(2) - (3)].sval));
11259 }
11260  break;
11261 
11262  case 1650:
11263 
11264  {
11265  parserData->parser_errors += addErrorMsg( NULL, osresult, parserData, osglData, osnlData, "matrix merge not yet implemented");
11266 }
11267  break;
11268 
11269  case 1654:
11270 
11271  {
11272  osnlData->nlNodePoint = new OSnLMNodeMatrixMinus();
11273  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11274 }
11275  break;
11276 
11277  case 1657:
11278 
11279  {
11280  osnlData->nlNodePoint = new OSnLMNodeMatrixNegate();
11281  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11282 }
11283  break;
11284 
11285  case 1660:
11286 
11287  {
11288  osnlData->nlNodePoint = new OSnLMNodeMatrixPlus();
11289  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11290 }
11291  break;
11292 
11293  case 1663:
11294 
11295  {
11296  osnlData->nlNodePoint = new OSnLMNodeMatrixTimes();
11297  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11298 }
11299  break;
11300 
11301  case 1665:
11302 
11303  {
11304  osnlData->nlNodePoint = new OSnLMNodeMatrixProduct();
11305  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11306  osnlData->matrixProductVec.push_back( osnlData->nlNodePoint);
11307 }
11308  break;
11309 
11310  case 1666:
11311 
11312  {
11313  osnlData->matrixProductVec.back()->m_mMatrixChildren = new OSnLMNode*[ osnlData->matrixProductVec.back()->inumberOfMatrixChildren];
11314  osnlData->matrixProductVec.pop_back();
11315 }
11316  break;
11317 
11318  case 1668:
11319 
11320  {
11321  osnlData->matrixProductVec.back()->inumberOfMatrixChildren++;
11322 }
11323  break;
11324 
11325  case 1670:
11326 
11327  {
11328  osnlData->nlNodePoint = new OSnLMNodeMatrixScalarTimes();
11329  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11330 }
11331  break;
11332 
11333  case 1673:
11334 
11335  {
11336  osnlData->nlNodePoint = new OSnLMNodeMatrixSubmatrixAt();
11337  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11338 }
11339  break;
11340 
11341  case 1676:
11342 
11343  {
11344  osnlData->nlNodePoint = new OSnLMNodeMatrixTranspose();
11345  osnlData->nlNodeVec.push_back( osnlData->nlNodePoint);
11346 }
11347  break;
11348 
11349 
11350 
11351  default: break;
11352  }
11353  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
11354 
11355  YYPOPSTACK (yylen);
11356  yylen = 0;
11357  YY_STACK_PRINT (yyss, yyssp);
11358 
11359  *++yyvsp = yyval;
11360  *++yylsp = yyloc;
11361 
11362  /* Now `shift' the result of the reduction. Determine what state
11363  that goes to, based on the state we popped back to and the rule
11364  number reduced by. */
11365 
11366  yyn = yyr1[yyn];
11367 
11368  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
11369  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
11370  yystate = yytable[yystate];
11371  else
11372  yystate = yydefgoto[yyn - YYNTOKENS];
11373 
11374  goto yynewstate;
11375 
11376 
11377 /*------------------------------------.
11378 | yyerrlab -- here on detecting error |
11379 `------------------------------------*/
11380 yyerrlab:
11381  /* If not already recovering from an error, report this error. */
11382  if (!yyerrstatus)
11383  {
11385 #if ! YYERROR_VERBOSE
11386  yyerror (&yylloc, osresult, parserData, osglData, osnlData, YY_("syntax error"));
11387 #else
11388  {
11389  YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
11390  if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
11391  {
11392  YYSIZE_T yyalloc = 2 * yysize;
11393  if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
11394  yyalloc = YYSTACK_ALLOC_MAXIMUM;
11395  if (yymsg != yymsgbuf)
11396  YYSTACK_FREE (yymsg);
11397  yymsg = (char *) YYSTACK_ALLOC (yyalloc);
11398  if (yymsg)
11399  yymsg_alloc = yyalloc;
11400  else
11401  {
11402  yymsg = yymsgbuf;
11403  yymsg_alloc = sizeof yymsgbuf;
11404  }
11405  }
11406 
11407  if (0 < yysize && yysize <= yymsg_alloc)
11408  {
11409  (void) yysyntax_error (yymsg, yystate, yychar);
11410  yyerror (&yylloc, osresult, parserData, osglData, osnlData, yymsg);
11411  }
11412  else
11413  {
11414  yyerror (&yylloc, osresult, parserData, osglData, osnlData, YY_("syntax error"));
11415  if (yysize != 0)
11416  goto yyexhaustedlab;
11417  }
11418  }
11419 #endif
11420  }
11421 
11422  yyerror_range[0] = yylloc;
11423 
11424  if (yyerrstatus == 3)
11425  {
11426  /* If just tried and failed to reuse lookahead token after an
11427  error, discard it. */
11428 
11429  if (yychar <= YYEOF)
11430  {
11431  /* Return failure if at end of input. */
11432  if (yychar == YYEOF)
11433  YYABORT;
11434  }
11435  else
11436  {
11437  yydestruct ("Error: discarding",
11438  yytoken, &yylval, &yylloc, osresult, parserData, osglData, osnlData);
11439  yychar = YYEMPTY;
11440  }
11441  }
11442 
11443  /* Else will try to reuse lookahead token after shifting the error
11444  token. */
11446 
11447 
11448 /*---------------------------------------------------.
11449 | yyerrorlab -- error raised explicitly by YYERROR. |
11450 `---------------------------------------------------*/
11451 yyerrorlab:
11452 
11453  /* Pacify compilers like GCC when the user code never invokes
11454  YYERROR and the label yyerrorlab therefore never appears in user
11455  code. */
11456  if (/*CONSTCOND*/ 0)
11457  goto yyerrorlab;
11458 
11459  yyerror_range[0] = yylsp[1-yylen];
11460  /* Do not reclaim the symbols of the rule which action triggered
11461  this YYERROR. */
11462  YYPOPSTACK (yylen);
11463  yylen = 0;
11464  YY_STACK_PRINT (yyss, yyssp);
11465  yystate = *yyssp;
11466  goto yyerrlab1;
11467 
11468 
11469 /*-------------------------------------------------------------.
11470 | yyerrlab1 -- common code for both syntax error and YYERROR. |
11471 `-------------------------------------------------------------*/
11472 yyerrlab1:
11473  yyerrstatus = 3; /* Each real token shifted decrements this. */
11474 
11475  for (;;)
11476  {
11477  yyn = yypact[yystate];
11478  if (yyn != YYPACT_NINF)
11479  {
11480  yyn += YYTERROR;
11481  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
11482  {
11483  yyn = yytable[yyn];
11484  if (0 < yyn)
11485  break;
11486  }
11487  }
11488 
11489  /* Pop the current state because it cannot handle the error token. */
11490  if (yyssp == yyss)
11491  YYABORT;
11492 
11493  yyerror_range[0] = *yylsp;
11494  yydestruct ("Error: popping",
11495  yystos[yystate], yyvsp, yylsp, osresult, parserData, osglData, osnlData);
11496  YYPOPSTACK (1);
11497  yystate = *yyssp;
11498  YY_STACK_PRINT (yyss, yyssp);
11499  }
11500 
11501  *++yyvsp = yylval;
11502 
11503  yyerror_range[1] = yylloc;
11504  /* Using YYLLOC is tempting, but would change the location of
11505  the lookahead. YYLOC is available though. */
11506  YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
11507  *++yylsp = yyloc;
11508 
11509  /* Shift the error token. */
11510  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
11511 
11512  yystate = yyn;
11513  goto yynewstate;
11514 
11515 
11516 /*-------------------------------------.
11517 | yyacceptlab -- YYACCEPT comes here. |
11518 `-------------------------------------*/
11519 yyacceptlab:
11520  yyresult = 0;
11521  goto yyreturn;
11522 
11523 /*-----------------------------------.
11524 | yyabortlab -- YYABORT comes here. |
11525 `-----------------------------------*/
11526 yyabortlab:
11527  yyresult = 1;
11528  goto yyreturn;
11529 
11530 #if !defined(yyoverflow) || YYERROR_VERBOSE
11531 /*-------------------------------------------------.
11532 | yyexhaustedlab -- memory exhaustion comes here. |
11533 `-------------------------------------------------*/
11535  yyerror (&yylloc, osresult, parserData, osglData, osnlData, YY_("memory exhausted"));
11536  yyresult = 2;
11537  /* Fall through. */
11538 #endif
11539 
11540 yyreturn:
11541  if (yychar != YYEMPTY)
11542  yydestruct ("Cleanup: discarding lookahead",
11543  yytoken, &yylval, &yylloc, osresult, parserData, osglData, osnlData);
11544  /* Do not reclaim the symbols of the rule which action triggered
11545  this YYABORT or YYACCEPT. */
11546  YYPOPSTACK (yylen);
11547  YY_STACK_PRINT (yyss, yyssp);
11548  while (yyssp != yyss)
11549  {
11550  yydestruct ("Cleanup: popping",
11551  yystos[*yyssp], yyvsp, yylsp, osresult, parserData, osglData, osnlData);
11552  YYPOPSTACK (1);
11553  }
11554 #ifndef yyoverflow
11555  if (yyss != yyssa)
11556  YYSTACK_FREE (yyss);
11557 #endif
11558 #if YYERROR_VERBOSE
11559  if (yymsg != yymsgbuf)
11560  YYSTACK_FREE (yymsg);
11561 #endif
11562  /* Make sure YYID is used. */
11563  return YYID (yyresult);
11564 }
11565 
11566 
11567 
11568 
11569 
11570 #if 0
11571 void osrlerror(YYLTYPE* mytype, OSResult *osresult, OSrLParserData* parserData, OSgLParserData* osglData, OSnLParserData *osnlData, std::string errormsg )
11572 {
11573  osrl_empty_vectors( parserData );
11574  osgl_empty_vectors( osglData );
11575  std::ostringstream outStr;
11576  std::string error = errormsg;
11577  error = "OSrL input is either invalid or not well-formed: " + error;
11578  outStr << error << std::endl;
11579  outStr << "Error occurred when reading: " << osrlget_text ( scanner ) << std::endl;
11580  outStr << "See line number: " << osrlget_lineno( scanner) << std::endl;
11581  error = outStr.str();
11582  //printf("THIS DID NOT GET DESTROYED: %s\n", parserData->errorText);
11583  //if( (parserData->errorText != NULL) && (strlen(parserData->errorText) > 0) ) free( parserData->errorText);
11584  //osrllex_destroy( scanner);
11585  throw ErrorClass( error);
11586 } //end osrlerror
11587 #endif
11588 
11589 std::string addErrorMsg(YYLTYPE* mytype, OSResult *osresult, OSrLParserData* parserData, OSgLParserData* osglData, OSnLParserData *osnlData, std::string errormsg )
11590 {
11591  std::ostringstream outStr;
11592  outStr << "At line number " << osrlget_lineno( scanner) << ": ";
11593  outStr << osrlget_text ( scanner ) << std::endl;
11594  outStr << errormsg << std::endl;
11595 
11596  return outStr.str();
11597 } //end addErrorMsg
11598 
11599 void osrlerror(YYLTYPE* mytype, OSResult *osresult, OSrLParserData* parserData, OSgLParserData* osglData, OSnLParserData *osnlData, std::string errormsg )
11600 {
11601  osrl_empty_vectors( parserData);
11602  osgl_empty_vectors( osglData);
11603  osnl_empty_vectors( osnlData);
11604  throw ErrorClass( errormsg);
11605 } //end osrlerror
11606 
11607 
11608 
11609 void yygetOSResult(const char *parsestring, OSResult *osresult, OSrLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData) throw(ErrorClass)
11610 {
11611  try
11612  {
11613  osrl_scan_string( parsestring, scanner);
11614  osrlset_lineno (1 , scanner );
11615  //
11616  // call the Bison parser
11617  //
11618  if( osrlparse( osresult, parserData, osglData, osnlData) != 0) {
11619  //osrllex_destroy(scanner);
11620  throw ErrorClass( "Error parsing the OSrL file");
11621  }
11622  }
11623  catch(const ErrorClass& eclass)
11624  {
11625  throw ErrorClass( eclass.errormsg);
11626  }
11627 } //end yygetOSResult
11628 
11629 
11631 {
11632 #if 0
11633  int k;
11634  int numOtherVarVec = parserData->otherVarVec.size();
11635 
11636  for (k = 0; k < numOtherVarVec; k++)
11637  {
11638  if ( (parserData->otherVarVec[k] != NULL) && (parserData->otherVarVec[k]->otherVarText != NULL) )
11639  delete[] parserData->otherVarVec[k]->otherVarText;
11640  if ( (parserData->otherVarVec[k] != NULL) && (parserData->otherVarVec[k]->otherVarIndex != NULL) )
11641  delete[] parserData->otherVarVec[k]->otherVarIndex;
11642 
11643  if ( parserData->otherVarVec[k] != NULL) delete parserData->otherVarVec[k];
11644  }
11645  parserData->otherVarVec.clear();
11646 
11647  int numDualVals = parserData->dualVals.size();
11648  for (k = 0; k < numDualVals; k++)
11649  {
11650  if (parserData->dualVals[k] != NULL )
11651  delete parserData->dualVals[k];
11652  }
11653  parserData->dualVals.clear();
11654 
11655 
11656  int numObjVals = parserData->objVals.size();
11657  for (k = 0; k < numObjVals; k++)
11658  {
11659  if (parserData->objVals[ k] != NULL )
11660  delete parserData->objVals[ k];
11661  }
11662  parserData->objVals.clear();
11663 
11664 
11665  int numPrimalVals = parserData->primalVals.size();
11666  for (k = 0; k < numPrimalVals; k++)
11667  {
11668  if (parserData->primalVals[ k] != NULL )
11669  delete parserData->primalVals[ k];
11670  }
11671  parserData->primalVals.clear();
11672 #endif
11673 }//end osrl_empty_vectors
11674 
11675 
#define SERVICEUTILIZATIONSTART
#define BASEMATRIXSTARTCOLATT
#define EMPTYMATRIXTYPEATT
The OSnLNodeErf Class.
Definition: OSnLNode.h:1162
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
The OSnLNodeTimes Class.
Definition: OSnLNode.h:617
bool targetMatrixFirstColPresent
int yyerrstatus
bool generalServiceURIPresent
bool targetMatrixFirstRowPresent
std::string matrixVarType
#define MATRICESEND
#define YYEMPTY
#define GENERALEND
#define ELEMENTSSTART
#define SYSTEMEND
#define ENUMTYPEATT
#define USEDCPUNUMBEREND
int idx
The index of the matrix.
Definition: OSnLNode.h:2466
#define NUMBEROFOTHERMATRIXVARIABLERESULTSATT
#define ABSSTART
#define YYSTACK_BYTES(N)
#define NUMBEROFTIMESATT
goto yysetstate
double coef
coef is an option coefficient on the variable, the default value is 1.0
Definition: OSnLNode.h:1485
#define YYID(n)
int numberOfOtherVariableResults
the number of types of variable results other than the value of the variable
std::string fileCreator
#define OTHERSOLVEROUTPUTSTART
#define yylval
#define YYNTOKENS
#define OTHERMATRIXPROGRAMMINGRESULTEND
#define INSTANCENAMEEND
The OSnLNodeSin Class.
Definition: OSnLNode.h:1012
char yymsgbuf[128]
#define OTHERSOLUTIONRESULTEND
#define SOLUTIONEND
#define FILEDESCRIPTIONSTART
#define FILECREATOREMPTY
std::string itemContent
Provide temporary storage for a single &lt;record&gt; contained in an OtherSolutionResult.
bool actualStartTimePresent
#define YYSTACK_ALLOC_MAXIMUM
#define INSTANCENAMESTART
OSMatrixWithMatrixVarIdx ** matrixWithMatrixVarIdx
There are also other variants of these ...
std::string licence
#define MATRIXOBJECTIVESSTART
#define yydebug
std::string name
#define TIMINGINFORMATIONSTART
a data structure to represent row reference elements in a MatrixType object Each nonzero element is o...
Definition: OSMatrix.h:1177
std::string unit
int tmpnlcount
tmpnlcount counts the number of nl nodes actually found.
#define OTHERSOLUTIONRESULTSTART
goto yyexhaustedlab
YYSTYPE * yyvsp
#define CONSTRAINTSEND
#define EMPTYCATEGORYATT
#define YYLEX
std::vector< OtherVariableResultStruct * > otherVarVec
store a vector of pointers to otherVarVec structures
#define EMPTYSOLVERATT
#define FILELICENCESTARTANDEND
#define SYMMETRYATT
#define YYFINAL
std::vector< MatrixNode * > mtxBlocksVec
#define AVAILABLEDISKSPACESTART
#define EMPTYROWMAJORATT
const char * yys
#define MATRIXNEGATEEND
#define SQUAREEND
#define MATRIXSUBMATRIXATSTART
unsigned short int yytype_uint16
#define ELEND
#define OTHERRESULTSSTART
std::string type
#define OTHERMATRIXVARIABLERESULTSTART
bool otherServiceResultsPresent
yytype_int16 * yyss
int matrixCounter
We also need to keep track locally of the number of matrices.
The OSnLNodeMatrixTrace Class.
Definition: OSnLNode.h:1662
#define YYLAST
bool numberOfMatrixVarPresent
#define MATRIXMINUSSTART
NonlinearExpressions * nonlinearExpressions
nonlinearExpressions is a pointer to a NonlinearExpressions object
Definition: OSInstance.h:2206
int * osglIntArray
data structure to process an IntVector and hold the data temporarily
#define ELSTART
#define IDXSTART
#define MATRIXTOSCALARSTART
#define AVAILABLEMEMORYEND
The OSnLNodeSqrt Class.
Definition: OSnLNode.h:864
#define DESCRIPTIONATT
#define YYMAXDEPTH
#define EMPTYVALUEATT
a data structure to represent the nonzeros in a generalMatrix element
Definition: OSMatrix.h:639
#define IDENTITYMATRIXEND
#define COEFATT
int iOther
a temporary counter to count other variable, objective and constraint results
#define NONZEROSSTART
#define CONREFERENCEELEMENTSEND
#define NUMBEROFSOLUTIONSATT
a data structure to represent the constant elements in a MatrixType object
Definition: OSMatrix.h:749
#define SYSTEMINFORMATIONSTART
double timeValue
the next few variables store a time measurement and associated attribute values
#define BASISSTATUSEND
#define MATRIXCONSTRAINTSSTART
unsigned char yytype_uint8
#define VARIDXSTART
The OSnLNodeIf Class.
Definition: OSnLNode.h:1212
#define MATRIXCONSTRAINTSEND
bool generalTimeStampPresent
#define BLOCKSEND
#define EMPTYMATRIXVARTYPEATT
#define NUMBEREND
std::vector< ExprNode * > minVec
the OSnLNodeMin node can have any number of children, including other children with an indeterminate ...
#define TIMESTAMPSTART
#define JOBEND
bool numberAttributePresent
a number of boolean vriables to track which of the attributes have been found in the present list...
#define FILELICENCEEND
ENUM_MATRIX_TYPE
An enum to track the many different types of values that a matrix can contain Note that these types a...
Definition: OSParameters.h:599
#define TIMESTAMPEND
#define UNKNOWNSTART
#define DIVIDESTART
The OSnLNodeMin Class.
Definition: OSnLNode.h:463
#define LINEARELEMENTSEND
#define MATRIXOBJIDXATT
std::vector< ExprNode * > allDiffVec
the OSnLNodeallDiff node can have any number of children, including other children with an indetermin...
unsigned int inumberOfChildren
inumberOfChildren is the number of OSnLNode child elements If this number is not fixed, e.g., for a sum node, it is temporarily set to 0
Definition: OSnLNode.h:74
int idx
idx is the index of the variable
Definition: OSnLNode.h:1488
#define BASEMATRIXSTART
std::string errormsg
errormsg is the error that is causing the exception to be thrown
Definition: OSErrorClass.h:42
The OSnLNodeLn Class.
Definition: OSnLNode.h:815
std::string parser_errors
used to accumulate error message so the parser does not die on the first error encountered ...
#define NUMBEROFOBJIDXATT
#define NUMBEROFVALUESATT
#define VARIABLEEND
unsigned int numberOfSolutions
number of result solutions
#define BLOCKCOLIDXATT
#define MATRIXDIAGONALSTART
#define UNKNOWNEND
YYLTYPE yyloc
#define SUBMITTIMESTART
to represent the nonzeros in a constantMatrix element
Definition: OSMatrix.h:501
#define ROWOFFSETEND
#define NUMBEROFROWSATT
bool jobUsedCPUNumberPresent
#define SCHEDULEDSTARTTIMEEND
#define MATRIXVARIDXATT
a data structure to represent an entry in a conReferenceMatrix element, which consists of a constrain...
Definition: OSMatrix.h:453
#define ENUMERATIONSTART
#define OPTIMIZATIONSOLUTIONSTATUSEND
#define MATRIXREFERENCEEND
a data structure to represent the linear expressions in a LinearMatrixElement object ...
Definition: OSMatrix.h:602
#define NUMBEROFCONATT
#define NUMBEROFMATRIXOBJATT
static const yytype_uint16 yystos[]
#define HEADERSTART
#define FILENAMEEND
a data structure to represent the nonzeroes of a matrix by transformation from other (previously defi...
Definition: OSMatrix.h:1358
#define MATRIXTERMSTART
#define BASEMATRIXSTARTROWATT
#define MATRIXPLUSEND
#define MATRIXMINUSEND
#define OTHERSOLUTIONRESULTSSTART
#define NUMBEROFELATT
The Result Class.
Definition: OSResult.h:2548
#define ENDTIMESTART
#define PISTART
union YYSTYPE YYSTYPE
#define NUMBEROFSOLVEROUTPUTSATT
YYSTYPE * yyvs
#define MATRIXVARSTART
#define MINEND
#define MATRIXEXPRESSIONSEND
#define TIMESERVICESTARTEDEND
goto yyerrlab
std::vector< int > nBlocksVec
#define ITEMTEXT
#define NUMBEROFOTHERCONSTRAINTRESULTSATT
int idx
The index of the matrixCon.
Definition: OSnLNode.h:2679
if(!yyg->yy_init)
#define SUBSTATUSEND
#define YYTABLE_NINF
#define MATRIXDETERMINANTSTART
std::string source
#define VARIABLESTART
#define ROWMAJORATT
#define OSRLEND
#define YYTERROR
bool jobUsedDiskSpacePresent
#define LNSTART
int returnNlExprShape(std::string shape)
Definition: OSParameters.h:839
std::string category
#define NUMBEROFMATRIXTERMSATT
#define OTHEREND
#define EXPEND
#define MATRIXMERGEEND
#define GENERALSUBSTATUSEND
static const yytype_uint16 yytable[]
The OSnLNodeCos Class.
Definition: OSnLNode.h:962
The ConstraintSolution Class.
Definition: OSResult.h:1860
std::vector< ExprNode * > maxVec
the OSnLNodeMax node can have any number of children, including other children with an indeterminate ...
#define NUMBEROFOTHERMATRIXOBJECTIVERESULTSATT
#define ISFREESTART
void osrlset_extra(OSrLParserData *parserData, void *yyscanner)
#define CURRENTJOBCOUNTSTART
a data structure to represent the nonzeroes of a matrix in a blockwise fashion. Each block can be giv...
Definition: OSMatrix.h:1449
bool numberOfObjectivesPresent
int idx
The index of the matrixObj.
Definition: OSnLNode.h:2608
#define NEGATEEND
static const yytype_int16 yypgoto[]
#define ESTART
#define EXPSTART
#define QUOTE
int osrllex_destroy(void *scanner)
a data structure to represent a MatrixBlock object (derived from MatrixType)
Definition: OSMatrix.h:2500
OSnLMNodeMatrixCon * nlMNodeMatrixCon
a pointer to an OSnLMNode object that is a matrixCon reference
goto yyreturn
#define POWEREND
#define TARGETMATRIXFIRSTCOLATT
#define AVAILABLECPUSPEEDSTART
#define DIVIDEEND
#define yyerror
int idx
The index of the matrixVar.
Definition: OSnLNode.h:2537
bool numberOfConstraintsPresent
#define LINEARELEMENTSSTART
The OSnLMNode Class for nonlinear expressions involving matrices.
Definition: OSnLNode.h:1760
#define YYABORT
a generic class from which we derive matrix constructors (BaseMatrix, MatrixElements, MatrixTransformation and MatrixBlocks) as well as matrix types (OSMatrix and MatrixBlock).
Definition: OSMatrix.h:50
#define MATRIXSTART
#define EMPTYMATRIXCONTYPEATT
#define MATRIXOBJECTIVESEND
#define OSRLATTRIBUTETEXT
#define EMPTYNAMEATT
#define SYSTEMSTART
#define FILEDESCRIPTIONSTARTANDEND
OSnLMNodeMatrixObj * nlMNodeMatrixObj
a pointer to an OSnLMNode object that is a matrixObj reference
#define MATRIXTIMESSTART
#define SYSTEMINFORMATIONEND
#define MESSAGEEND
this class extends OSMatrix for use, e.g., in the matrixVar section of OSoL and OSrL ...
Definition: OSMatrix.h:2336
#define VALUESTART
#define MATRIXINVERSEEND
The ServiceResult Class.
Definition: OSResult.h:415
#define TIMESTART
#define YY_(msgid)
#define COLOFFSETEND
void osgl_empty_vectors(OSgLParserData *osglData)
The in-memory representation of the &lt;matrixVariables&gt; element.
Definition: OSResult.h:1914
#define EMPTYSHAPEATT
#define SOLVERINVOKEDEND
#define VARIABLESEND
OSMatrix ** matrix
We need to hold an array of &lt;matrix&gt; elements temporarily.
#define BLOCKSTART
int yyn
#define NAMEATT
#define MATRIXDOTTIMESSTART
std::vector< ExprNode * > matrixSumVec
the OSnLMNodeMatrixSum node can have any number of children, including other children with an indeter...
#define MATRIXREFERENCESTART
#define STATUSSTART
OSnLParserData * osnlData
bool numberOfVarIdxPresent
#define EMPTYTYPEATT
static const yytype_uint16 yydefact[]
bool scalarMultiplierPresent
bool variablecoefattON
variablecoefattON is set to true if the coeff attribute has been parsed for an OSnLNodeVariable, an exception is thrown if there is more than one coeff attribute
#define SINSTART
#define TARGETMATRIXFIRSTROWATT
#define YYTRANSLATE(YYX)
goto yybackup
#define OBJTYPEATT
#define YYACCEPT
#define NUMBEROFOTHEROBJECTIVERESULTSATT
#define SQUARESTART
OSgLParserData * osglData
#define EMPTYVALUETYPEATT
a data structure to represent a MatrixType object (from which we derive OSMatrix and MatrixBlock) ...
Definition: OSMatrix.h:1889
bool serviceCurrentStatePresent
set service...Present to true if the corresponding element (child of the &lt;service&gt; element) has been ...
std::string addErrorMsg(YYLTYPE *mytype, OSInstance *osinstance, OSiLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData, std::string errormsg)
#define yynerrs
#define HEADEREND
#define YYPOPSTACK(N)
#define POWERSTART
std::string description
#define VALUESSTRINGEND
char * errorText
if the parser finds invalid text it is held here and we delete if the file was not valid ...
bool baseMatrixStartRowPresent
ENUM_MATRIX_SYMMETRY
Definition: OSParameters.h:735
OSiLParserData * parserData
goto yydefault
#define EMPTYTARGETOBJECTIVENAMEATT
static const yytype_uint8 yyr2[]
std::string id
later, e.g.
Definition: OSnLNode.h:1274
#define YYUSE(e)
bool numberOfEnumerationsPresent
#define BLOCKROWIDXATT
bool verifyMatrixSymmetry(std::string symmetry)
Definition: OSParameters.h:770
#define DUMMY
#define YYDPRINTF(Args)
OSnLNodeNumber * nlNodeNumberPoint
a pointer to an OSnLNode object that is a number
#define USEDDISKSPACEEND
#define GENERALELEMENTSEND
#define VALUESEND
struct yy_buffer_state * YY_BUFFER_STATE
#define CONSTART
const char * yysrc
#define AVAILABLECPUNUMBEREND
#define OPTIMIZATIONEND
bool numberOfBlocksPresent
Data elements for parsing number-valued attributes and elements.
#define GREATERTHAN
#define SINEND
void osrlset_lineno(int line_number, yyscan_t yyscanner)
Set the current line number.
bool otherJobResultsPresent
#define NLEND
#define MAXEND
#define yychar
int numberOfTimes
There could be more than one time measurement; numberOfTimes stores the number of them...
#define MATRIXPRODUCTSTART
#define yyparse
std::vector< int * > rowOffsets
Vectors to hold rowOffset and colOffset arrays in a place where they are easily accessible while the ...
bool suppressFurtherErrorMessages
#define FILEDESCRIPTIONEND
static const yytype_uint16 yytranslate[]
bool generalInstanceNamePresent
std::vector< int * > colOffsets
#define MATRIXTRANSPOSEEND
The OSnLNodeNumber Class.
Definition: OSnLNode.h:1262
#define TIMEEND
#define OBJEND
#define CONSTRAINTSSTART
YYLTYPE * yyls
#define GENERALSUBSTATUSSTART
MatrixNode * tempC
This matrix constructor is needed in order to properly push the constructor vector.
Used to hold part of the instance in memory.
#define MATRIXVARTYPEATT
#define MATRIXEND
std::vector< MatrixNode * > mtxConstructorVec
Several vectors to process the matrix nodes into the right order.
#define OTHERMATRIXPROGRAMMINGRESULTSTART
OSnLNodeVariable * nlNodeVariablePoint
a pointer to an OSnLNode object that is a variable
int numberOf
a temporary variable to hold the number of entries in a list
#define FILENAMESTARTANDEND
#define OBJREFERENCEELEMENTSEND
The next few nodes evaluate to a scalar even though one or more of its arguments are matrices...
Definition: OSnLNode.h:1612
#define OTHERMATRIXCONSTRAINTRESULTSTART
a data structure to represent a term in a linearMatrix element A term has the form c*x_{k}...
Definition: OSMatrix.h:373
A concrete class that is used to store a specific type of matrix values, references to variable index...
Definition: OSMatrix.h:563
#define VALUESSTRINGSTART
#define MATRIXSCALARTIMESEND
#define BASEMATRIXENDROWATT
#define MATRIXCONSTART
#define NONLINEAREXPRESSIONSSTART
to represent the nonzeros in an objReferenceMatrix element
Definition: OSMatrix.h:675
#define NUMBEROFVARIABLESATT
#define OTHERSOLUTIONRESULTSEND
#define INDEXSTART
The OSnLNodeNegate Class.
Definition: OSnLNode.h:566
char * osrlget_text(yyscan_t yyscanner)
Get the current token.
#define ATLOWERSTART
#define CONTYPEATT
#define VAREND
a data structure to represent objective reference elements in a MatrixType object Each nonzero elemen...
Definition: OSMatrix.h:1091
a data structure to represent a point of departure for constructing a matrix by modifying parts of a ...
Definition: OSMatrix.h:1536
static YYSIZE_T yysyntax_error(char *yyresult, int yystate, int yychar)
static const yytype_int16 yypact[]
#define SERVICEURISTART
#define GENERALSTATUSEND
#define NUMBEROFENUMERATIONSATT
The SystemResult Class.
Definition: OSResult.h:349
#define NUMBEROFOTHERRESULTSATT
bool numberOfColumnsPresent
std::vector< IndexValuePair * > objVals
#define USEDCPUSPEEDEND
#define MINUSEND
#define MATRIXPRODUCTEND
#define YYINITDEPTH
#define BASISSTATUSSTART
#define YYSIZE_T
#define CURRENTSTATEEND
#define DUALVALUESSTART
#define FILECREATORSTART
#define CATEGORYATT
#define SERVICENAMEEND
#define CONEND
#define FILENAMESTART
OSnLMNodeMatrixVar * nlMNodeMatrixVar
a pointer to an OSnLMNode object that is a matrixVar reference
#define ITEMEMPTY
#define VARSTART
#define ITEMSTARTANDEND
#define IDXATT
int osrlget_lineno(yyscan_t yyscanner)
Get the current line number.
The OSnLNodeSquare Class.
Definition: OSnLNode.h:912
#define YY_REDUCE_PRINT(Rule)
Nl ** nl
nl is pointer to an array of Nl object pointers
Definition: OSInstance.h:469
std::string value
#define OBJREFERENCEELEMENTSSTART
yytype_int16 yyss_alloc
#define MATRIXUPPERTRIANGLESTART
bool generalMessagePresent
#define MATRIXOBJSTART
#define TOTALJOBSSOFAREND
#define JOBIDEND
#define EXPRSTART
#define FILESOURCESTART
#define YYPACT_NINF
#define MATRIXCONIDXATT
#define MATRIXCONTYPEATT
The OSnLNodePlus Class.
Definition: OSnLNode.h:315
YYSIZE_T yystacksize
#define MATRIXPROGRAMMINGSTART
#define PLUSSTART
#define NUMBEROFMATRIXVARATT
#define INDEXEND
#define DUALVALUESEND
#define BASEMATRIXEND
#define MATRIXTRACESTART
#define OPTIMIZATIONSOLUTIONSTATUSSTART
bool generalSolverInvokedPresent
#define MATRIXLOWERTRIANGLESTART
YY_BUFFER_STATE osrl_scan_string(yyconst char *yy_str, yyscan_t yyscanner)
Setup the input buffer state to scan a string.
bool jobUsedCPUSpeedPresent
short int yytype_int8
#define VARTYPEATT
#define MATRIXVARIABLESSTART
#define NUMBEROFOTHERMATRIXPROGRAMMINGRESULTSATT
#define NUMBEROFSUBSTATUSESATT
a data structure to represent the nonzeros in a conReferenceMatrix element
Definition: OSMatrix.h:711
#define BLOCKEND
#define dval(x)
Definition: OSdtoa.cpp:363
bool bADMustReTape
is true if an AD Expression Tree has an expression that can change depending on the value of the inpu...
#define FILESOURCEEMPTY
bool baseTransposePresent
Data elements for parsing string-valued attributes and text elements.
#define SERVICEEND
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
#define VALUEEND
std::vector< MatrixNode * > mtxBlkVec
#define OBJECTIVESSTART
#define NUMBEROFOTHERMATRIXCONSTRAINTRESULTSATT
YYSTYPE yyvs_alloc
The OSnLNodeVariable Class.
Definition: OSnLNode.h:1478
ExprNode * nlNodePoint
These entities are used for parsing &lt;nonlinearExpressions&gt;
#define ITEMEND
#define ISFREEEND
The OSnLNodeAllDiff Class.
Definition: OSnLNode.h:1560
#define SUBSTATUSSTART
#define EMPTYOBJTYPEATT
#define MATRIXINVERSESTART
#define FILESOURCEEND
a data structure to represent the nonzero values in a generalMatrix element
Definition: OSMatrix.h:1005
The in-memory representation of the &lt;MatrixVariableSolution&gt; element.
Definition: OSResult.h:1992
#define TARGETOBJECTIVEIDXATT
#define EMPTYVARTYPEATT
#define CURRENTSTATESTART
return yylen
int osrllex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param, yyscan_t yyscanner)
bool jobTimingInformationPresent
#define ERFSTART
OSResult * osresult
#define FILECREATORSTARTANDEND
#define MATRIXMERGESTART
#define OPTIMIZATIONSTART
#define ABSEND
#define NUMBEROFOTHERSOLUTIONRESULTSATT
#define OBJSTART
OSnLMNodeMatrixReference * nlMNodeMatrixRef
a pointer to an OSnLMNode object that is a simple matrix reference
#define SOLVERATT
void fint fint * k
int numberOfOtherConstraintResults
the number of types of constraint results other than the value of the constraint
YYLTYPE yyerror_range[2]
The GeneralResult Class.
Definition: OSResult.h:266
#define ATLOWEREND
#define MATRICESSTART
short int yytype_int16
#define NUMBEROFBLOCKSATT
#define WEIGHTEDOBJECTIVESATT
#define MATRIXTERMEND
The OSnLNodeMax Class.
Definition: OSnLNode.h:414
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
#define TIMESERVICESTARTEDSTART
#define SERVICEURIEND
double value
value is the value of the number
Definition: OSnLNode.h:1266
#define VARIABLESSTART
void osnl_empty_vectors(OSnLParserData *osnlData)
The OSnLNodeDivide Class.
Definition: OSnLNode.h:668
int returnMatrixType(std::string type)
Definition: OSParameters.h:618
#define MINSTART
bool numberOfVariablesPresent
int yytoken
#define YYSTACK_FREE
int numberOfOtherObjectiveResults
the number of types of objective results other than the value of the objective
#define NUMBEROFEXPR
#define OTHERSTART
#define YYSIZE_MAXIMUM
#define SERVICESTART
#define OTHERMATRIXOBJECTIVERESULTSTART
#define NUMBEROFMATRIXCONATT
OSnLNode ** m_mChildren
m_mChildren holds all the operands, that is, nodes that the current node operates on...
Definition: OSnLNode.h:84
#define NEGATESTART
int returnMatrixSymmetry(std::string symmetry)
Definition: OSParameters.h:758
#define NUMBEROFNONLINEAREXPRESSIONS
#define VALUEATT
#define FILESOURCESTARTANDEND
#define MATRIXDIAGONALEND
#define MATRIXTYPEATT
double scalarMultiplier
static int
Definition: OSdtoa.cpp:2173
goto yynewstate
#define EMPTYSYMMETRYATT
#define EXPREND
#define OBJECTIVESEND
YYLTYPE yylsa[YYINITDEPTH]
#define MATRIXTOSCALAREND
#define PRODUCTSTART
std::string solver
#define IDATT
#define FILEDESCRIPTIONEMPTY
#define INTEGER
#define SUBMITTIMEEND
#define BLOCKSSTART
std::vector< IndexValuePair * > dualVals
#define ELEMENTTEXT
#define YYEOF
#define NLSTART
int idx
Definition: OSMatrix.h:2188
#define IDENTITYMATRIXSTART
#define SUPERBASICSTART
The OSnLNodeSum Class.
Definition: OSnLNode.h:365
int yytype
#define TIMINGINFORMATIONEND
#define MATRIXNEGATESTART
InstanceData * instanceData
A pointer to an InstanceData object.
Definition: OSInstance.h:2278
#define MATRIXCONEND
#define YY_STACK_PRINT(Bottom, Top)
#define SCALARMULTIPLIERATT
std::vector< ExprNode * > productVec
the OSnLNodeProduct node can have any number of children, including other children with an indetermin...
int returnConReferenceValueType(std::string valueType)
Definition: OSParameters.h:720
int yyresult
#define EMPTYENUMTYPEATT
The VariableSolution Class.
Definition: OSResult.h:1217
#define IFSTART
The OSnLNodePower Class.
Definition: OSnLNode.h:717
#define LNEND
#define OTHERMATRIXVARIABLERESULTEND
#define TRANSFORMATIONEND
int ivar
a temporary counter to count second-level objects
#define USEDMEMORYEND
an abstract class to help represent the elements in a MatrixType object From this we derive concrete ...
Definition: OSMatrix.h:248
return yyd
#define INCLUDEDIAGONALATT
#define NUMBERSTART
#define SUMSTART
an integer Vector data structure
Definition: OSGeneral.h:469
#define ENDOFELEMENT
#define TOTALJOBSSOFARSTART
#define OTHERMATRIXOBJECTIVERESULTEND
#define GENERALELEMENTSSTART
#define BASE64START
bool ignoreDataAfterErrors
two booleans to govern the behavior after an error has been encountered
#define MATRIXSUBMATRIXATEND
bool matrixidxattON
matrixidxattON is set to true if the idx attribute has been parsed for an OSnLNodeVariable, an exception is thrown if there is more than one idx attribute
static const yytype_uint16 yyr1[]
bool scheduledStartTimePresent
std::string fileName
data structure to process a GeneralFileHeader and hold the data temporarily
int osrllex_init(void **ptr_yy_globals)
bool otherSystemResultsPresent
#define EMPTYWEIGHTEDOBJECTIVESATT
a data structure to represent variable reference elements in a MatrixType object Each nonzero element...
Definition: OSMatrix.h:835
#define USEDDISKSPACESTART
#define yylloc
int numberOfOtherMatrixVariableResults
the number of types of matrix variable results other than the value of the matrix variable ...
The in-memory representation of the &lt;MatrixProgrammingSolution&gt; element.
Definition: OSResult.h:2075
#define MATRIXOBJEND
#define MATRIXTIMESEND
#define INDEXESEND
#define SOLVEROUTPUTSTART
bool systemAvailableCPUNumberPresent
double * osglDblArray
bool baseMatrixEndColPresent
bool otherGeneralResultsPresent
#define FILELICENCESTART
#define MATRIXEXPRESSIONSSTART
#define MATRIXDOTTIMESEND
#define STRINGVALUEDELEMENTSEND
#define FILELICENCEEMPTY
#define NUMBEROFOBJECTIVESATT
#define NUMBEROFVARATT
std::vector< ExprNode * > sumVec
the OSnLNodeSum node can have any number of children, including other children with an indeterminate ...
void osrlerror(YYLTYPE *type, OSResult *osresult, OSrLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData, std::string errormsg)
ENUM_NL_EXPR_SHAPE
Definition: OSParameters.h:830
The JobResult Class.
Definition: OSResult.h:659
#define ACTUALSTARTTIMESTART
bool baseMatrixEndRowPresent
#define BASE64END
#define VARREFERENCEELEMENTSSTART
int tempInt
a temporary variable to hold an integer value
#define AVAILABLECPUSPEEDEND
#define EMPTYMATRIXOBJTYPEATT
goto yyerrlab1
#define YY_LOCATION_PRINT(File, Loc)
static const char *const yytname[]
#define USEDCPUNUMBERSTART
#define CONSTANTELEMENTSSTART
int nonzeroCounter
Linear matrices need a counter to count the number of terms within each element.
#define DOUBLE
The OSnLNodeMatrixTrace Class.
Definition: OSnLNode.h:1712
#define COLOFFSETSTART
#define MATRIXPLUSSTART
yytype_int16 yyssa[YYINITDEPTH]
YYLTYPE * yylocationp
std::string os_dtoa_format(double x)
Definition: OSMathUtil.cpp:154
yytokentype
ScalarExpressionTree * osExpressionTree
osExpressionTree contains the root of the ScalarExpressionTree
Definition: OSInstance.h:430
goto yyreduce
#define MATRIXSCALARTIMESSTART
#define TRANSFORMATIONSTART
#define GENERALSTART
bool generalServiceNamePresent
The in-memory representation of the &lt;matrixVariables&gt; &lt;other&gt; element.
Definition: OSResult.h:1939
std::vector< IndexValuePair * > primalVals
int kounter
a temporary counter to count variables, number of attributes, etc.
YYLTYPE yyls_alloc
#define NUMBEROFCOLUMNSATT
#define JOBIDSTART
#define ELEMENTSEND
YYLTYPE * yylsp
#define OSRLSTART
#define OTHERRESULTSEND
#define EMPTYIDATT
bool timeServiceStartedPresent
#define SCHEDULEDSTARTTIMESTART
#define VARREFERENCEELEMENTSEND
#define OPTIMIZATIONSOLUTIONSUBSTATUSSTART
std::string conType
#define MATRIXLOWERTRIANGLEEND
static void
Definition: OSdtoa.cpp:1741
bool generalStatusPresent
set general...Present to true if the corresponding element (child of the &lt;general&gt; element) has been ...
#define MATRIXVARIABLESEND
#define STARTVECTOREND
#define CONSTANTELEMENTSEND
std::string valueType
The OSnLNodeProduct Class.
Definition: OSnLNode.h:766
#define TWOQUOTES
#define TARGETOBJECTIVENAMEATT
bool baseMatrixStartColPresent
#define TIMESEND
bool serviceUtilizationPresent
int yystate
#define VALUESSTART
#define SOLVERINVOKEDSTART
#define CONREFERENCEELEMENTSSTART
bool jobStatusPresent
set job...Present to true if the corresponding element (child of the &lt;job&gt; element) has been parsed ...
void yygetOSResult(const char *ch, OSResult *m_osresult, OSrLParserData *m_parserData, OSgLParserData *osglData, OSnLParserData *osnlData)
#define MAXSTART
#define MATRIXPROGRAMMINGEND
bool weightedObjAttributePresent
std::string objType
#define INCRATT
The OSnLNodeAbs Class.
Definition: OSnLNode.h:1112
#define MESSAGESTART
#define MATRIXOBJTYPEATT
std::string enumType
#define ENUMERATIONEND
a data structure to represent the nonzero values in a linearMatrix element
Definition: OSMatrix.h:917
#define NUMBEROFCONSTRAINTSATT
std::string symmetry
#define SQRTEND
#define PLUSEND
#define GENERALSTATUSSTART
#define CONSTANTATT
#define ATUPPEREND
#define OPTIMIZATIONSOLUTIONSUBSTATUSEND
bool systemAvailableMemoryPresent
bool systemInformationPresent
set system...Present to true if the corresponding element (child of the &lt;system&gt; element) has been pa...
#define IDXEND
YYSTYPE yyval
YYSIZE_T yymsg_alloc
int numberOfOtherMatrixProgrammingResults
the number of types of matrix programming results other than those associated with matrix variables...
bool variableidxattON
variableidxattON is set to true if the idx attribute has been parsed for an OSnLNodeVariable, an exception is thrown if there is more than one idx attribute
std::string type
in the C++ type is real
Definition: OSnLNode.h:1269
ENUM_CONREFERENCE_VALUETYPE
An enum to track the type of value contained in a reference to a constraint.
Definition: OSParameters.h:703
#define MATRIXDETERMINANTEND
#define SERVICENAMESTART
#define NONLINEAREXPRESSIONSEND
#define YYSTACK_ALLOC
#define ACTUALSTARTTIMEEND
static const yytype_int16 yydefgoto[]
static char *char * yydest
bool includeDiagonalAttribute
#define PRODUCTEND
unsigned int solutionIdx
an index of which solution we have found
#define MATRIXVAREND
#define EEND
#define UNITATT
#define BASICEND
OSInstance * osinstance
The OSnLNode Class for nonlinear expressions.
Definition: OSnLNode.h:179
static std::string decodeb64(char *b64bytes)
decode the data in base 64
Definition: OSBase64.cpp:87
The OSnLMNodeMatrixProduct Class.
Definition: OSnLNode.h:2755
#define ROWOFFSETSTART
#define BASEMATRIXIDXATT
#define NUMBEROFVARIDXATT
#define SQRTSTART
#define TIMESSTART
bool numberOfValuesPresent
#define INDEXESSTART
#define YYLLOC_DEFAULT(Current, Rhs, N)
#define SERVICEUTILIZATIONEND
struct YYLTYPE YYLTYPE
#define NUMBEROFCONIDXATT
#define FILENAMEEMPTY
#define BASETRANSPOSEATT
#define SUPERBASICEND
#define EMPTYUNITATT
#define AVAILABLECPUNUMBERSTART
#define ATTRIBUTETEXT
The OSgLParserData Class.
The OSnLNodeExp Class.
Definition: OSnLNode.h:1062
#define SOLUTIONSTART
#define BASICSTART
#define VARIDXEND
bool serviceCurrentJobCountPresent
#define COSSTART
#define STATUSEND
#define ALLDIFFEND
#define PIEND
#define EMPTYINCLUDEDIAGONALATT
#define EMPTYCONTYPEATT
yytype_int16 * yyssp
#define SUMEND
#define NONZEROSEND
#define ATUPPERSTART
used for throwing exceptions.
Definition: OSErrorClass.h:31
#define SHAPEATT
std::string varType
#define JOBSTART
#define ATEQUALITYEND
The OSnLParserData Class.
double tempVal
a temporary variable to hold an integer or double value
#define CURRENTJOBCOUNTEND
#define ALLDIFFSTART
#define FILECREATOREND
#define OTHERSOLVEROUTPUTEND
The OSnLNodeMinus Class.
Definition: OSnLNode.h:515
#define ERFEND
bool numberidattON
numberidattON is set to true if the id attribute has been parsed for an OSnLNodeNumber object...
The OSrLParserData Class.
#define NUMBEROFITEMSATT
#define MINUSSTART
static void const char * yymsg
#define MULTATT
std::string shape
#define ATEQUALITYSTART
#define OSRLSTARTEMPTY
#define NUMBEROFMATRICESATT
a data structure to represent a matrix object (derived from MatrixType)
Definition: OSMatrix.h:2185
#define ENDTIMEEND
The OSnLNodePI Class.
Definition: OSnLNode.h:1412
#define EMPTYBASETRANSPOSEATT
#define MATRIXUPPERTRIANGLEEND
std::string tempStr
a temporary variable to hold a string
#define AVAILABLEDISKSPACEEND
#define MATRIXTRACEEND
#define USEDCPUSPEEDSTART
a data structure to represent an LP basis on both input and output
Definition: OSGeneral.h:645
a data structure to represent an expression in a linearMatrix element A LinearMatrixElement is a (fin...
Definition: OSMatrix.h:411
#define TYPEATT
#define NUMBEROFOBJATT
void osrl_empty_vectors(OSrLParserData *parserData)
#define scanner
#define SOLVEROUTPUTEND
YYSTYPE * yyvaluep
static YYSIZE_T const char * yystr
bool systemAvailableCPUSpeedPresent
#define STRINGVALUEDELEMENTSSTART
bool serviceTotalJobsSoFarPresent
The ObjectiveSolution Class.
Definition: OSResult.h:1537
YYSTYPE yyvsa[YYINITDEPTH]
#define OTHERMATRIXCONSTRAINTRESULTEND
#define SIZEOFATT
std::vector< ExprNode * > matrixProductVec
the OSnLMNodeProduct node can have any number of children, including other children with an indetermi...
std::vector< ExprNode * > nlNodeVec
nlNodeVec holds a vector of pointers to OSnLNodes and OSnLMNodes In order to build the expression tre...
The OSnLNodeE Class.
Definition: OSnLNode.h:1346
#define USEDMEMORYSTART
#define EMPTYDESCRIPTIONATT
#define VALUETYPEATT
static const yytype_int16 yycheck[]
#define IFEND
#define BASEMATRIXENDCOLATT
#define ITEMSTART
#define AVAILABLEMEMORYSTART
bool systemAvailableDiskSpacePresent
#define STARTVECTORSTART
#define MATRIXTRANSPOSESTART
#define NUMBEROFOTHERVARIABLERESULTSATT
#define COSEND