49 #define YYBISON_VERSION "2.4.1"
52 #define YYSKELETON_NAME "yacc.c"
64 #define YYLSP_NEEDED 1
67 #define yyparse osilparse
69 #define yyerror osilerror
70 #define yylval osillval
71 #define yychar osilchar
72 #define yydebug osildebug
73 #define yynerrs osilnerrs
74 #define yylloc osillloc
85 #include "OSInstance.h"
89 #include "OSParameters.h"
97 #define OSINSTANCE_AVAILABLE
113 # error "don't have header file for time"
120 # ifdef HAVE_STRING_H
123 # error "don't have header file for string"
133 # error "don't have header file for stdio"
139 using std::ostringstream;
157 double atofmod1(
int* osillineno,
const char *ch1,
const char *ch2 );
158 int atoimod1(
int* osillineno,
const char *ch1,
const char *ch2);
174 char *
parseBase64(
const char **p,
int *dataSize,
int* osillineno);
176 #define ISWHITESPACE( char_) ((char_) == ' ' || \
177 (char_) == '\t' || (char_) == '\r')
179 #define ISDIGIT(_c) ((_c) >= '0' && (_c) <= '9')
181 #define GETATTRIBUTETEXT \
182 for(; ISWHITESPACE( *ch) || isnewline( *ch, osillineno); ch++ ) ; \
183 if( *ch != '=') { osilerror_wrapper( ch, osillineno, "found an attribute not defined"); return false;} \
185 for(; ISWHITESPACE( *ch) || isnewline( *ch, osillineno); ch++ ) ; \
188 for(; ISWHITESPACE( *ch) || isnewline( *ch, osillineno); ch++ ) ; \
190 for( ; *ch != '\"'; ch++); \
195 for(; ISWHITESPACE( *ch) || isnewline( *ch, osillineno); ch++ ) ; \
197 for( ; *ch != '\''; ch++); \
199 else { osilerror_wrapper( ch, osillineno,"missing quote on attribute"); return false;} \
202 attText = new char[numChar + 1]; \
203 for(ki = 0; ki < numChar; ki++) attText[ki] = *((*p)++); \
204 attText[ki] = '\0'; \
205 attTextEnd = &attText[ki];
207 #define GAIL printf("GAIL ANN HONDA\n")
213 printf("%c", ch[-2]); \
214 printf("%c", ch[-1]); \
215 printf("%c", ch[0]); \
216 printf("%c", ch[1]); \
217 printf("%c", ch[2]); \
218 printf("%c", ch[3]); \
219 printf("%c", ch[4]); \
220 printf("%c", ch[5]); \
221 printf("%c \n", ch[6]); \
232 #ifdef YYERROR_VERBOSE
233 # undef YYERROR_VERBOSE
234 # define YYERROR_VERBOSE 1
236 # define YYERROR_VERBOSE 1
240 #ifndef YYTOKEN_TABLE
241 # define YYTOKEN_TABLE 0
656 #define ATTRIBUTETEXT 258
657 #define ELEMENTTEXT 259
662 #define TWOQUOTES 264
663 #define ENDOFELEMENT 265
664 #define GREATERTHAN 266
665 #define EMPTYSEMIDEFINITENESSATT 267
666 #define SEMIDEFINITENESSATT 268
667 #define NUMBEROFQTERMSATT 269
668 #define NUMBEROFCONESATT 270
669 #define NUMBEROFSTAGESATT 271
670 #define IDXONEATT 272
671 #define IDXTWOATT 273
672 #define HORIZONATT 274
674 #define STARTIDXATT 276
675 #define MATRIXIDXATT 277
676 #define LBMATRIXIDXATT 278
677 #define LBCONEIDXATT 279
678 #define UBMATRIXIDXATT 280
679 #define UBCONEIDXATT 281
680 #define TEMPLATEMATRIXIDXATT 282
681 #define REFERENCEMATRIXIDXATT 283
682 #define VARREFERENCEMATRIXIDXATT 284
683 #define OBJREFERENCEMATRIXIDXATT 285
684 #define CONREFERENCEMATRIXIDXATT 286
685 #define ORDERCONEIDXATT 287
686 #define CONSTANTMATRIXIDXATT 288
687 #define NORMSCALEFACTORATT 289
688 #define DISTORTIONMATRIXIDXATT 290
689 #define AXISDIRECTIONATT 291
690 #define FIRSTAXISDIRECTIONATT 292
691 #define SECONDAXISDIRECTIONATT 293
693 #define INSTANCEDATAEND 295
694 #define INSTANCEDATASTARTEND 296
695 #define QUADRATICCOEFFICIENTSSTART 297
696 #define QUADRATICCOEFFICIENTSEND 298
697 #define QTERMSTART 299
699 #define CONESSTART 301
701 #define NONNEGATIVECONESTART 303
702 #define NONNEGATIVECONEEND 304
703 #define NONPOSITIVECONESTART 305
704 #define NONPOSITIVECONEEND 306
705 #define ORTHANTCONESTART 307
706 #define ORTHANTCONEEND 308
707 #define POLYHEDRALCONESTART 309
708 #define POLYHEDRALCONEEND 310
709 #define QUADRATICCONESTART 311
710 #define QUADRATICCONEEND 312
711 #define ROTATEDQUADRATICCONESTART 313
712 #define ROTATEDQUADRATICCONEEND 314
713 #define SEMIDEFINITECONESTART 315
714 #define SEMIDEFINITECONEEND 316
715 #define PRODUCTCONESTART 317
716 #define PRODUCTCONEEND 318
717 #define INTERSECTIONCONESTART 319
718 #define INTERSECTIONCONEEND 320
719 #define DUALCONESTART 321
720 #define DUALCONEEND 322
721 #define POLARCONESTART 323
722 #define POLARCONEEND 324
723 #define DIRECTIONSTART 325
724 #define DIRECTIONEND 326
725 #define FACTORSSTART 327
726 #define FACTORSEND 328
727 #define COMPONENTSSTART 329
728 #define COMPONENTSEND 330
729 #define TIMEDOMAINSTART 331
730 #define TIMEDOMAINEND 332
731 #define STAGESSTART 333
732 #define STAGESEND 334
733 #define STAGESTART 335
735 #define INTERVALSTART 337
736 #define INTERVALEND 338
737 #define HEADERSTART 339
738 #define HEADEREND 340
739 #define FILENAMESTART 341
740 #define FILENAMEEND 342
741 #define FILENAMEEMPTY 343
742 #define FILENAMESTARTANDEND 344
743 #define FILESOURCESTART 345
744 #define FILESOURCEEND 346
745 #define FILESOURCEEMPTY 347
746 #define FILESOURCESTARTANDEND 348
747 #define FILEDESCRIPTIONSTART 349
748 #define FILEDESCRIPTIONEND 350
749 #define FILEDESCRIPTIONEMPTY 351
750 #define FILEDESCRIPTIONSTARTANDEND 352
751 #define FILECREATORSTART 353
752 #define FILECREATOREND 354
753 #define FILECREATOREMPTY 355
754 #define FILECREATORSTARTANDEND 356
755 #define FILELICENCESTART 357
756 #define FILELICENCEEND 358
757 #define FILELICENCEEMPTY 359
758 #define FILELICENCESTARTANDEND 360
759 #define INDEXESSTART 361
760 #define INDEXESEND 362
761 #define VALUESSTART 363
762 #define VALUESEND 364
763 #define NONZEROSSTART 365
764 #define NONZEROSEND 366
767 #define ENUMERATIONSTART 369
768 #define ENUMERATIONEND 370
769 #define ITEMEMPTY 371
770 #define ITEMSTART 372
772 #define ITEMSTARTANDEND 374
773 #define BASE64START 375
774 #define BASE64END 376
775 #define NUMBEROFELATT 377
776 #define NUMBEROFENUMERATIONSATT 378
777 #define NUMBEROFITEMSATT 379
778 #define EMPTYCATEGORYATT 380
779 #define CATEGORYATT 381
780 #define EMPTYDESCRIPTIONATT 382
781 #define DESCRIPTIONATT 383
782 #define EMPTYSOLVERATT 384
783 #define SOLVERATT 385
784 #define EMPTYNAMEATT 386
786 #define EMPTYTYPEATT 388
788 #define EMPTYENUMTYPEATT 390
789 #define ENUMTYPEATT 391
790 #define EMPTYSHAPEATT 392
792 #define EMPTYUNITATT 394
794 #define EMPTYVALUEATT 396
796 #define EMPTYVALUETYPEATT 398
797 #define VALUETYPEATT 399
798 #define EMPTYCONTYPEATT 400
799 #define CONTYPEATT 401
800 #define EMPTYOBJTYPEATT 402
801 #define OBJTYPEATT 403
802 #define EMPTYVARTYPEATT 404
803 #define VARTYPEATT 405
804 #define EMPTYMATRIXCONTYPEATT 406
805 #define MATRIXCONTYPEATT 407
806 #define EMPTYMATRIXOBJTYPEATT 408
807 #define MATRIXOBJTYPEATT 409
808 #define EMPTYMATRIXVARTYPEATT 410
809 #define MATRIXVARTYPEATT 411
810 #define EMPTYMATRIXTYPEATT 412
811 #define MATRIXTYPEATT 413
812 #define EMPTYSYMMETRYATT 414
813 #define SYMMETRYATT 415
814 #define EMPTYROWMAJORATT 416
815 #define ROWMAJORATT 417
816 #define EMPTYBASETRANSPOSEATT 418
817 #define BASETRANSPOSEATT 419
818 #define NUMBEROFBLOCKSATT 420
819 #define NUMBEROFCOLUMNSATT 421
820 #define NUMBEROFROWSATT 422
821 #define NUMBEROFMATRICESATT 423
822 #define NUMBEROFVALUESATT 424
823 #define NUMBEROFCONSTRAINTSATT 425
824 #define NUMBEROFCONATT 426
825 #define NUMBEROFCONIDXATT 427
826 #define NUMBEROFOBJECTIVESATT 428
827 #define NUMBEROFOBJATT 429
828 #define NUMBEROFOBJIDXATT 430
829 #define NUMBEROFVARIABLESATT 431
830 #define NUMBEROFVARATT 432
831 #define NUMBEROFVARIDXATT 433
832 #define NUMBEROFMATRIXCONATT 434
833 #define NUMBEROFMATRIXOBJATT 435
834 #define NUMBEROFMATRIXVARATT 436
835 #define BASEMATRIXIDXATT 437
836 #define TARGETMATRIXFIRSTROWATT 438
837 #define TARGETMATRIXFIRSTCOLATT 439
838 #define BASEMATRIXSTARTROWATT 440
839 #define BASEMATRIXSTARTCOLATT 441
840 #define BASEMATRIXENDROWATT 442
841 #define BASEMATRIXENDCOLATT 443
842 #define SCALARMULTIPLIERATT 444
843 #define BLOCKROWIDXATT 445
844 #define BLOCKCOLIDXATT 446
845 #define MATRIXVARIDXATT 447
846 #define MATRIXOBJIDXATT 448
847 #define MATRIXCONIDXATT 449
851 #define SIZEOFATT 453
853 #define CONSTANTATT 455
854 #define MATRICESSTART 456
855 #define MATRICESEND 457
856 #define MATRIXSTART 458
857 #define MATRIXEND 459
858 #define BASEMATRIXEND 460
859 #define BASEMATRIXSTART 461
860 #define BLOCKSSTART 462
861 #define BLOCKSEND 463
862 #define BLOCKSTART 464
864 #define COLOFFSETSTART 466
865 #define COLOFFSETEND 467
866 #define ROWOFFSETSTART 468
867 #define ROWOFFSETEND 469
868 #define ELEMENTSSTART 470
869 #define ELEMENTSEND 471
870 #define CONSTANTELEMENTSSTART 472
871 #define CONSTANTELEMENTSEND 473
872 #define VARREFERENCEELEMENTSSTART 474
873 #define VARREFERENCEELEMENTSEND 475
874 #define LINEARELEMENTSSTART 476
875 #define LINEARELEMENTSEND 477
876 #define GENERALELEMENTSSTART 478
877 #define GENERALELEMENTSEND 479
878 #define CONREFERENCEELEMENTSSTART 480
879 #define CONREFERENCEELEMENTSEND 481
880 #define OBJREFERENCEELEMENTSSTART 482
881 #define OBJREFERENCEELEMENTSEND 483
882 #define STRINGVALUEDELEMENTSSTART 484
883 #define STRINGVALUEDELEMENTSEND 485
884 #define STARTVECTORSTART 486
885 #define STARTVECTOREND 487
886 #define INDEXSTART 488
888 #define VALUESTART 490
890 #define VARIDXSTART 492
891 #define VARIDXEND 493
892 #define TRANSFORMATIONSTART 494
893 #define TRANSFORMATIONEND 495
894 #define MATRIXPROGRAMMINGSTART 496
895 #define MATRIXPROGRAMMINGEND 497
896 #define MATRIXVARIABLESSTART 498
897 #define MATRIXVARIABLESEND 499
898 #define MATRIXVARSTART 500
899 #define MATRIXVAREND 501
900 #define MATRIXOBJECTIVESSTART 502
901 #define MATRIXOBJECTIVESEND 503
902 #define MATRIXOBJSTART 504
903 #define MATRIXOBJEND 505
904 #define MATRIXCONSTRAINTSSTART 506
905 #define MATRIXCONSTRAINTSEND 507
906 #define MATRIXCONSTART 508
907 #define MATRIXCONEND 509
910 #define CONSTRAINTSSTART 512
911 #define CONSTRAINTSEND 513
914 #define OBJECTIVESSTART 516
915 #define OBJECTIVESEND 517
918 #define VARIABLESSTART 520
919 #define VARIABLESEND 521
920 #define GENERALSTART 522
921 #define GENERALEND 523
922 #define SYSTEMSTART 524
923 #define SYSTEMEND 525
924 #define SERVICESTART 526
925 #define SERVICEEND 527
928 #define OPTIMIZATIONSTART 530
929 #define OPTIMIZATIONEND 531
930 #define ATEQUALITYSTART 532
931 #define ATEQUALITYEND 533
932 #define ATLOWERSTART 534
933 #define ATLOWEREND 535
934 #define ATUPPERSTART 536
935 #define ATUPPEREND 537
936 #define BASICSTART 538
938 #define ISFREESTART 540
939 #define ISFREEEND 541
940 #define SUPERBASICSTART 542
941 #define SUPERBASICEND 543
942 #define UNKNOWNSTART 544
943 #define UNKNOWNEND 545
944 #define SERVICEURISTART 546
945 #define SERVICEURIEND 547
946 #define SERVICENAMESTART 548
947 #define SERVICENAMEEND 549
948 #define INSTANCENAMESTART 550
949 #define INSTANCENAMEEND 551
950 #define JOBIDSTART 552
952 #define OTHERSTART 554
955 #define NONLINEAREXPRESSIONSSTART 557
956 #define NONLINEAREXPRESSIONSEND 558
957 #define NUMBEROFNONLINEAREXPRESSIONS 559
960 #define MATRIXEXPRESSIONSSTART 562
961 #define MATRIXEXPRESSIONSEND 563
962 #define NUMBEROFEXPR 564
963 #define EXPRSTART 565
965 #define NUMBEROFMATRIXTERMSATT 567
966 #define MATRIXTERMSTART 568
967 #define MATRIXTERMEND 569
968 #define POWERSTART 570
970 #define PLUSSTART 572
972 #define MINUSSTART 574
974 #define DIVIDESTART 576
975 #define DIVIDEEND 577
978 #define SQRTSTART 580
982 #define PRODUCTSTART 584
983 #define PRODUCTEND 585
986 #define NEGATESTART 588
987 #define NEGATEEND 589
990 #define SQUARESTART 592
991 #define SQUAREEND 593
996 #define VARIABLESTART 598
997 #define VARIABLEEND 599
1000 #define ERFSTART 602
1002 #define MAXSTART 604
1004 #define ALLDIFFSTART 606
1005 #define ALLDIFFEND 607
1006 #define MINSTART 608
1012 #define TIMESSTART 614
1013 #define TIMESEND 615
1014 #define NUMBERSTART 616
1015 #define NUMBEREND 617
1016 #define MATRIXDETERMINANTSTART 618
1017 #define MATRIXDETERMINANTEND 619
1018 #define MATRIXTRACESTART 620
1019 #define MATRIXTRACEEND 621
1020 #define MATRIXTOSCALARSTART 622
1021 #define MATRIXTOSCALAREND 623
1022 #define MATRIXDIAGONALSTART 624
1023 #define MATRIXDIAGONALEND 625
1024 #define MATRIXDOTTIMESSTART 626
1025 #define MATRIXDOTTIMESEND 627
1026 #define MATRIXLOWERTRIANGLESTART 628
1027 #define MATRIXLOWERTRIANGLEEND 629
1028 #define MATRIXUPPERTRIANGLESTART 630
1029 #define MATRIXUPPERTRIANGLEEND 631
1030 #define MATRIXMERGESTART 632
1031 #define MATRIXMERGEEND 633
1032 #define MATRIXMINUSSTART 634
1033 #define MATRIXMINUSEND 635
1034 #define MATRIXNEGATESTART 636
1035 #define MATRIXNEGATEEND 637
1036 #define MATRIXPLUSSTART 638
1037 #define MATRIXPLUSEND 639
1038 #define MATRIXTIMESSTART 640
1039 #define MATRIXTIMESEND 641
1040 #define MATRIXPRODUCTSTART 642
1041 #define MATRIXPRODUCTEND 643
1042 #define MATRIXSCALARTIMESSTART 644
1043 #define MATRIXSCALARTIMESEND 645
1044 #define MATRIXSUBMATRIXATSTART 646
1045 #define MATRIXSUBMATRIXATEND 647
1046 #define MATRIXTRANSPOSESTART 648
1047 #define MATRIXTRANSPOSEEND 649
1048 #define MATRIXREFERENCESTART 650
1049 #define MATRIXREFERENCEEND 651
1050 #define IDENTITYMATRIXSTART 652
1051 #define IDENTITYMATRIXEND 653
1052 #define MATRIXINVERSESTART 654
1053 #define MATRIXINVERSEEND 655
1054 #define EMPTYINCLUDEDIAGONALATT 656
1055 #define INCLUDEDIAGONALATT 657
1056 #define EMPTYIDATT 658
1062 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
1075 # define YYSTYPE_IS_TRIVIAL 1
1076 # define yystype YYSTYPE
1077 # define YYSTYPE_IS_DECLARED 1
1080 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
1088 # define yyltype YYLTYPE
1089 # define YYLTYPE_IS_DECLARED 1
1090 # define YYLTYPE_IS_TRIVIAL 1
1101 #define scanner parserData->scanner
1117 #elif (defined __STDC__ || defined __C99__FUNC__ \
1118 || defined __cplusplus || defined _MSC_VER)
1124 #ifdef YYTYPE_UINT16
1137 # ifdef __SIZE_TYPE__
1138 # define YYSIZE_T __SIZE_TYPE__
1139 # elif defined size_t
1140 # define YYSIZE_T size_t
1141 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
1142 || defined __cplusplus || defined _MSC_VER)
1143 # include <stddef.h>
1144 # define YYSIZE_T size_t
1146 # define YYSIZE_T unsigned int
1150 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
1155 # include <libintl.h>
1156 # define YY_(msgid) dgettext ("bison-runtime", msgid)
1160 # define YY_(msgid) msgid
1165 #if ! defined lint || defined __GNUC__
1166 # define YYUSE(e) ((void) (e))
1173 # define YYID(n) (n)
1175 #if (defined __STDC__ || defined __C99__FUNC__ \
1176 || defined __cplusplus || defined _MSC_VER)
1189 #if ! defined yyoverflow || YYERROR_VERBOSE
1193 # ifdef YYSTACK_USE_ALLOCA
1194 # if YYSTACK_USE_ALLOCA
1196 # define YYSTACK_ALLOC __builtin_alloca
1197 # elif defined __BUILTIN_VA_ARG_INCR
1198 # include <alloca.h>
1200 # define YYSTACK_ALLOC __alloca
1201 # elif defined _MSC_VER
1202 # include <malloc.h>
1203 # define alloca _alloca
1205 # define YYSTACK_ALLOC alloca
1206 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1207 || defined __cplusplus || defined _MSC_VER)
1208 # include <stdlib.h>
1210 # define _STDLIB_H 1
1217 # ifdef YYSTACK_ALLOC
1219 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
1220 # ifndef YYSTACK_ALLOC_MAXIMUM
1225 # define YYSTACK_ALLOC_MAXIMUM 4032
1228 # define YYSTACK_ALLOC YYMALLOC
1229 # define YYSTACK_FREE YYFREE
1230 # ifndef YYSTACK_ALLOC_MAXIMUM
1231 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1233 # if (defined __cplusplus && ! defined _STDLIB_H \
1234 && ! ((defined YYMALLOC || defined malloc) \
1235 && (defined YYFREE || defined free)))
1236 # include <stdlib.h>
1238 # define _STDLIB_H 1
1242 # define YYMALLOC malloc
1243 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1244 || defined __cplusplus || defined _MSC_VER)
1249 # define YYFREE free
1250 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1251 || defined __cplusplus || defined _MSC_VER)
1259 #if (! defined yyoverflow \
1260 && (! defined __cplusplus \
1261 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
1262 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1273 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1277 # define YYSTACK_BYTES(N) \
1278 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
1279 + 2 * YYSTACK_GAP_MAXIMUM)
1284 # if defined __GNUC__ && 1 < __GNUC__
1285 # define YYCOPY(To, From, Count) \
1286 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1288 # define YYCOPY(To, From, Count) \
1292 for (yyi = 0; yyi < (Count); yyi++) \
1293 (To)[yyi] = (From)[yyi]; \
1304 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1307 YYSIZE_T yynewbytes; \
1308 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1309 Stack = &yyptr->Stack_alloc; \
1310 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1311 yyptr += yynewbytes / sizeof (*yyptr); \
1323 #define YYNTOKENS 409
1327 #define YYNRULES 965
1329 #define YYNSTATES 1498
1332 #define YYUNDEFTOK 2
1333 #define YYMAXUTOK 659
1335 #define YYTRANSLATE(YYX) \
1336 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1341 0, 2, 2, 2, 2, 2, 2, 2, 2, 406,
1342 408, 2, 2, 407, 2, 2, 2, 2, 2, 2,
1343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1344 2, 2, 405, 2, 2, 2, 2, 2, 2, 2,
1345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1349 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1352 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1353 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1354 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1355 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1356 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1357 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1358 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1359 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1360 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1361 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1362 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1363 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1364 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1365 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1366 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1367 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1368 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1369 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1370 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1371 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1372 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1373 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1374 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1375 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1376 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1377 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1378 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1379 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1380 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1381 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1382 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1383 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1384 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1385 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1386 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1387 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1388 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1389 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1390 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1391 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1392 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1393 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1394 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1395 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1396 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1397 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1398 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1399 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1400 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1401 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1402 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1403 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1404 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1405 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1406 395, 396, 397, 398, 399, 400, 401, 402, 403, 404
1412 static const yytype_uint16 yyprhs[] =
1414 0, 0, 3, 12, 14, 16, 18, 20, 21, 22,
1415 27, 29, 35, 36, 39, 43, 45, 47, 50, 51,
1416 54, 56, 58, 60, 62, 67, 72, 77, 82, 83,
1417 87, 89, 91, 93, 95, 97, 101, 102, 105, 106,
1418 110, 112, 114, 116, 118, 120, 124, 125, 128, 130,
1419 132, 134, 136, 138, 140, 142, 144, 146, 150, 152,
1420 154, 155, 158, 160, 162, 164, 166, 169, 173, 175,
1421 177, 178, 181, 183, 185, 187, 189, 192, 196, 198,
1422 200, 201, 204, 206, 208, 210, 212, 216, 218, 219,
1423 222, 226, 228, 230, 231, 234, 236, 238, 240, 243,
1424 245, 249, 251, 253, 254, 257, 259, 261, 263, 265,
1425 270, 272, 275, 279, 281, 283, 284, 287, 289, 291,
1426 293, 295, 297, 299, 301, 304, 308, 310, 312, 313,
1427 316, 318, 320, 322, 324, 326, 328, 330, 332, 335,
1428 339, 341, 343, 344, 347, 349, 351, 353, 355, 357,
1429 360, 364, 366, 368, 369, 372, 374, 376, 378, 382,
1430 386, 388, 390, 392, 394, 396, 400, 402, 404, 406,
1431 410, 412, 414, 415, 418, 420, 422, 424, 428, 432,
1432 434, 436, 438, 440, 442, 446, 448, 450, 452, 453,
1433 456, 458, 460, 462, 464, 471, 472, 476, 478, 480,
1434 482, 484, 486, 490, 492, 493, 496, 500, 502, 504,
1435 505, 508, 510, 512, 514, 516, 518, 520, 522, 524,
1436 526, 528, 530, 532, 535, 536, 540, 542, 544, 546,
1437 548, 550, 554, 556, 557, 560, 564, 566, 568, 569,
1438 572, 574, 576, 578, 580, 582, 584, 586, 588, 590,
1439 593, 594, 598, 600, 602, 604, 606, 608, 612, 614,
1440 615, 618, 622, 624, 626, 627, 630, 632, 634, 636,
1441 638, 640, 642, 644, 646, 648, 650, 653, 654, 657,
1442 659, 661, 663, 665, 668, 672, 676, 681, 683, 689,
1443 691, 694, 695, 700, 701, 705, 707, 711, 715, 716,
1444 720, 721, 724, 726, 728, 733, 738, 740, 744, 746,
1445 749, 751, 754, 755, 760, 765, 767, 770, 771, 775,
1446 776, 779, 781, 783, 788, 793, 795, 799, 801, 804,
1447 806, 809, 810, 815, 820, 822, 825, 826, 830, 831,
1448 834, 836, 838, 843, 845, 849, 851, 854, 856, 859,
1449 860, 865, 870, 872, 875, 876, 881, 883, 886, 887,
1450 890, 892, 894, 899, 904, 909, 914, 919, 924, 929,
1451 934, 939, 944, 949, 954, 959, 963, 968, 973, 978,
1452 983, 988, 993, 998, 1003, 1008, 1013, 1018, 1022, 1026,
1453 1029, 1030, 1033, 1035, 1037, 1039, 1041, 1043, 1045, 1046,
1454 1049, 1053, 1055, 1057, 1058, 1061, 1063, 1065, 1069, 1073,
1455 1075, 1077, 1080, 1082, 1086, 1088, 1090, 1091, 1094, 1098,
1456 1100, 1101, 1103, 1107, 1111, 1113, 1115, 1118, 1120, 1124,
1457 1128, 1130, 1132, 1133, 1136, 1138, 1140, 1142, 1144, 1146,
1458 1148, 1150, 1152, 1154, 1156, 1158, 1162, 1165, 1166, 1170,
1459 1172, 1174, 1175, 1178, 1180, 1182, 1184, 1186, 1188, 1190,
1460 1192, 1194, 1196, 1199, 1201, 1202, 1205, 1207, 1209, 1211,
1461 1213, 1215, 1217, 1219, 1221, 1226, 1228, 1230, 1231, 1234,
1462 1236, 1238, 1242, 1243, 1246, 1249, 1251, 1253, 1255, 1257,
1463 1261, 1263, 1266, 1268, 1270, 1272, 1274, 1278, 1280, 1283,
1464 1285, 1287, 1289, 1291, 1295, 1297, 1302, 1304, 1306, 1307,
1465 1310, 1312, 1314, 1318, 1319, 1322, 1325, 1327, 1329, 1331,
1466 1333, 1337, 1339, 1344, 1346, 1348, 1349, 1352, 1354, 1356,
1467 1360, 1361, 1364, 1365, 1368, 1370, 1372, 1374, 1376, 1380,
1468 1382, 1383, 1386, 1390, 1392, 1394, 1395, 1398, 1400, 1402,
1469 1404, 1406, 1408, 1412, 1413, 1416, 1420, 1422, 1423, 1425,
1470 1429, 1434, 1436, 1438, 1439, 1442, 1444, 1446, 1450, 1451,
1471 1454, 1455, 1458, 1460, 1462, 1464, 1466, 1470, 1471, 1474,
1472 1477, 1479, 1481, 1483, 1485, 1489, 1494, 1496, 1498, 1499,
1473 1502, 1504, 1506, 1510, 1511, 1514, 1517, 1519, 1521, 1523,
1474 1525, 1529, 1531, 1536, 1538, 1540, 1541, 1544, 1546, 1548,
1475 1552, 1553, 1556, 1557, 1560, 1562, 1564, 1566, 1568, 1572,
1476 1573, 1576, 1580, 1582, 1583, 1586, 1588, 1590, 1592, 1596,
1477 1602, 1604, 1605, 1607, 1609, 1613, 1615, 1617, 1623, 1625,
1478 1629, 1631, 1633, 1635, 1637, 1639, 1643, 1645, 1649, 1651,
1479 1653, 1655, 1657, 1659, 1663, 1665, 1666, 1669, 1673, 1675,
1480 1677, 1678, 1681, 1683, 1685, 1687, 1689, 1691, 1693, 1695,
1481 1699, 1702, 1707, 1712, 1717, 1722, 1727, 1732, 1737, 1742,
1482 1747, 1752, 1757, 1762, 1767, 1772, 1777, 1782, 1787, 1792,
1483 1797, 1802, 1807, 1812, 1814, 1816, 1818, 1822, 1824, 1826,
1484 1828, 1832, 1834, 1836, 1838, 1842, 1844, 1846, 1848, 1852,
1485 1854, 1856, 1858, 1862, 1864, 1866, 1868, 1872, 1874, 1876,
1486 1878, 1882, 1884, 1886, 1888, 1892, 1894, 1896, 1898, 1902,
1487 1903, 1908, 1910, 1916, 1917, 1920, 1926, 1928, 1930, 1931,
1488 1934, 1936, 1938, 1940, 1942, 1944, 1946, 1948, 1950, 1952,
1489 1954, 1956, 1958, 1960, 1962, 1964, 1966, 1968, 1970, 1972,
1490 1974, 1976, 1978, 1980, 1982, 1984, 1986, 1988, 1990, 1992,
1491 1993, 1997, 1999, 2002, 2003, 2007, 2009, 2012, 2013, 2019,
1492 2020, 2026, 2027, 2033, 2034, 2039, 2040, 2046, 2047, 2053,
1493 2054, 2059, 2060, 2065, 2066, 2071, 2072, 2077, 2078, 2083,
1494 2084, 2089, 2093, 2095, 2097, 2098, 2103, 2104, 2111, 2112,
1495 2117, 2118, 2123, 2124, 2129, 2133, 2135, 2137, 2140, 2141,
1496 2144, 2146, 2148, 2150, 2151, 2156, 2157, 2162, 2164, 2167,
1497 2168, 2173, 2174, 2177, 2179, 2181, 2186, 2191, 2192, 2197,
1498 2198, 2201, 2202, 2207, 2208, 2211, 2212, 2217, 2218, 2221,
1499 2222, 2227, 2228, 2231, 2232, 2237, 2238, 2241, 2243, 2245,
1500 2247, 2249, 2251, 2253, 2255, 2257, 2259, 2261, 2263, 2265,
1501 2267, 2269, 2271, 2273, 2275, 2277, 2279, 2283, 2285, 2287,
1502 2290, 2295, 2299, 2301, 2303, 2306, 2311, 2315, 2317, 2319,
1503 2322, 2327, 2331, 2333, 2335, 2338, 2343, 2346, 2348, 2351,
1504 2354, 2356, 2360, 2363, 2365, 2368, 2371, 2373, 2376, 2381,
1505 2383, 2384, 2386, 2389, 2394, 2396, 2397, 2399, 2402, 2406,
1506 2409, 2411, 2413, 2416, 2419, 2421, 2425, 2428, 2430, 2433,
1507 2436, 2438, 2442, 2445, 2447, 2451, 2452, 2457, 2458, 2461,
1508 2464, 2466, 2470, 2473, 2475, 2482, 2485, 2487, 2490, 2491,
1509 2495, 2497, 2499, 2504, 2506, 2508, 2510, 2514, 2515, 2518,
1510 2524, 2526, 2528, 2529, 2532, 2534
1514 static const yytype_int16 yyrhs[] =
1516 410, 0, -1, 414, 889, 427, 434, 524, 571, 411,
1517 412, -1, 41, -1, 40, -1, 413, -1, 39, -1,
1518 -1, -1, 415, 416, 417, 43, -1, 42, -1, 14,
1519 8, 6, 8, 11, -1, -1, 417, 418, -1, 419,
1520 421, 420, -1, 44, -1, 10, -1, 11, 45, -1,
1521 -1, 421, 422, -1, 423, -1, 424, -1, 425, -1,
1522 426, -1, 17, 8, 6, 8, -1, 18, 8, 6,
1523 8, -1, 199, 8, 650, 8, -1, 195, 8, 6,
1524 8, -1, -1, 428, 429, 430, -1, 201, -1, 628,
1525 -1, 431, -1, 432, -1, 10, -1, 11, 433, 202,
1526 -1, -1, 433, 676, -1, -1, 435, 436, 437, -1,
1527 46, -1, 629, -1, 438, -1, 439, -1, 10, -1,
1528 11, 440, 47, -1, -1, 440, 441, -1, 442, -1,
1529 448, -1, 454, -1, 469, -1, 476, -1, 482, -1,
1530 488, -1, 494, -1, 509, -1, 443, 444, 447, -1,
1531 48, -1, 445, -1, -1, 445, 446, -1, 843, -1,
1532 841, -1, 865, -1, 10, -1, 11, 49, -1, 449,
1533 450, 453, -1, 50, -1, 451, -1, -1, 451, 452,
1534 -1, 843, -1, 841, -1, 865, -1, 10, -1, 11,
1535 51, -1, 455, 456, 459, -1, 52, -1, 457, -1,
1536 -1, 457, 458, -1, 843, -1, 841, -1, 865, -1,
1537 10, -1, 11, 460, 468, -1, 461, -1, -1, 461,
1538 462, -1, 463, 464, 467, -1, 70, -1, 465, -1,
1539 -1, 465, 466, -1, 877, -1, 858, -1, 10, -1,
1540 11, 71, -1, 53, -1, 470, 471, 475, -1, 54,
1541 -1, 472, -1, -1, 472, 473, -1, 843, -1, 841,
1542 -1, 474, -1, 865, -1, 28, 8, 6, 8, -1,
1543 10, -1, 11, 55, -1, 477, 478, 481, -1, 56,
1544 -1, 479, -1, -1, 479, 480, -1, 843, -1, 841,
1545 -1, 865, -1, 634, -1, 633, -1, 635, -1, 10,
1546 -1, 11, 57, -1, 483, 484, 487, -1, 58, -1,
1547 485, -1, -1, 485, 486, -1, 843, -1, 841, -1,
1548 865, -1, 634, -1, 633, -1, 636, -1, 637, -1,
1549 10, -1, 11, 59, -1, 489, 490, 493, -1, 60,
1550 -1, 491, -1, -1, 491, 492, -1, 843, -1, 841,
1551 -1, 865, -1, 638, -1, 10, -1, 11, 61, -1,
1552 495, 496, 499, -1, 62, -1, 497, -1, -1, 497,
1553 498, -1, 843, -1, 841, -1, 865, -1, 11, 500,
1554 508, -1, 501, 502, 503, -1, 72, -1, 842, -1,
1555 504, -1, 505, -1, 10, -1, 11, 506, 507, -1,
1556 654, -1, 73, -1, 63, -1, 510, 511, 514, -1,
1557 64, -1, 512, -1, -1, 512, 513, -1, 843, -1,
1558 841, -1, 865, -1, 11, 515, 523, -1, 516, 517,
1559 518, -1, 74, -1, 842, -1, 519, -1, 520, -1,
1560 10, -1, 11, 521, 522, -1, 654, -1, 75, -1,
1561 65, -1, -1, 525, 526, -1, 241, -1, 527, -1,
1562 528, -1, 10, -1, 11, 529, 543, 557, 1036, 242,
1563 -1, -1, 530, 531, 532, -1, 243, -1, 630, -1,
1564 533, -1, 534, -1, 10, -1, 11, 536, 535, -1,
1565 244, -1, -1, 536, 537, -1, 538, 539, 542, -1,
1566 245, -1, 540, -1, -1, 540, 541, -1, 843, -1,
1567 841, -1, 643, -1, 644, -1, 640, -1, 647, -1,
1568 641, -1, 648, -1, 865, -1, 886, -1, 858, -1,
1569 10, -1, 11, 246, -1, -1, 544, 545, 546, -1,
1570 247, -1, 631, -1, 547, -1, 548, -1, 10, -1,
1571 11, 550, 549, -1, 248, -1, -1, 550, 551, -1,
1572 552, 553, 556, -1, 249, -1, 554, -1, -1, 554,
1573 555, -1, 843, -1, 841, -1, 643, -1, 645, -1,
1574 649, -1, 642, -1, 865, -1, 858, -1, 10, -1,
1575 11, 250, -1, -1, 558, 559, 560, -1, 251, -1,
1576 632, -1, 561, -1, 562, -1, 10, -1, 11, 564,
1577 563, -1, 252, -1, -1, 564, 565, -1, 566, 567,
1578 570, -1, 253, -1, 568, -1, -1, 568, 569, -1,
1579 843, -1, 841, -1, 643, -1, 646, -1, 640, -1,
1580 647, -1, 641, -1, 648, -1, 865, -1, 10, -1,
1581 11, 254, -1, -1, 572, 573, -1, 76, -1, 574,
1582 -1, 575, -1, 10, -1, 11, 77, -1, 11, 576,
1583 77, -1, 11, 620, 77, -1, 577, 578, 579, 79,
1584 -1, 78, -1, 16, 8, 6, 8, 11, -1, 580,
1585 -1, 579, 580, -1, -1, 581, 80, 582, 583, -1,
1586 -1, 132, 3, 8, -1, 10, -1, 11, 584, 81,
1587 -1, 585, 597, 609, -1, -1, 265, 586, 590, -1,
1588 -1, 586, 587, -1, 588, -1, 589, -1, 176, 8,
1589 6, 8, -1, 21, 8, 6, 8, -1, 591, -1,
1590 11, 592, 266, -1, 10, -1, 11, 266, -1, 593,
1591 -1, 592, 593, -1, -1, 594, 263, 595, 596, -1,
1592 195, 8, 6, 8, -1, 10, -1, 11, 264, -1,
1593 -1, 257, 598, 602, -1, -1, 598, 599, -1, 600,
1594 -1, 601, -1, 170, 8, 6, 8, -1, 21, 8,
1595 6, 8, -1, 603, -1, 11, 604, 258, -1, 10,
1596 -1, 11, 258, -1, 605, -1, 604, 605, -1, -1,
1597 606, 255, 607, 608, -1, 195, 8, 6, 8, -1,
1598 10, -1, 11, 256, -1, -1, 261, 610, 613, -1,
1599 -1, 610, 611, -1, 612, -1, 625, -1, 173, 8,
1600 6, 8, -1, 614, -1, 11, 615, 262, -1, 10,
1601 -1, 11, 262, -1, 616, -1, 615, 616, -1, -1,
1602 617, 259, 618, 619, -1, 195, 8, 6, 8, -1,
1603 10, -1, 11, 260, -1, -1, 621, 82, 623, 622,
1604 -1, 10, -1, 11, 83, -1, -1, 623, 624, -1,
1605 626, -1, 627, -1, 21, 8, 6, 8, -1, 19,
1606 8, 650, 8, -1, 20, 8, 650, 8, -1, 168,
1607 8, 6, 8, -1, 15, 8, 6, 8, -1, 181,
1608 8, 6, 8, -1, 180, 8, 6, 8, -1, 179,
1609 8, 6, 8, -1, 34, 8, 650, 8, -1, 35,
1610 8, 6, 8, -1, 36, 8, 6, 8, -1, 37,
1611 8, 6, 8, -1, 38, 8, 6, 8, -1, 13,
1612 3, 8, -1, 22, 8, 6, 8, -1, 23, 8,
1613 6, 8, -1, 25, 8, 6, 8, -1, 33, 8,
1614 6, 8, -1, 27, 8, 6, 8, -1, 29, 8,
1615 6, 8, -1, 30, 8, 6, 8, -1, 31, 8,
1616 6, 8, -1, 24, 8, 6, 8, -1, 26, 8,
1617 6, 8, -1, 32, 8, 6, 8, -1, 652, 6,
1618 652, -1, 652, 7, 652, -1, 652, 8, -1, -1,
1619 652, 653, -1, 405, -1, 406, -1, 407, -1, 408,
1620 -1, 655, -1, 662, -1, -1, 655, 656, -1, 657,
1621 658, 661, -1, 112, -1, 659, -1, -1, 659, 660,
1622 -1, 858, -1, 857, -1, 11, 6, 113, -1, 120,
1623 846, 663, -1, 664, -1, 665, -1, 11, 121, -1,
1624 10, -1, 11, 4, 121, -1, 667, -1, 672, -1,
1625 -1, 667, 668, -1, 669, 670, 671, -1, 112, -1,
1626 -1, 858, -1, 11, 650, 113, -1, 120, 846, 673,
1627 -1, 674, -1, 675, -1, 11, 121, -1, 10, -1,
1628 11, 4, 121, -1, 677, 678, 681, -1, 203, -1,
1629 679, -1, -1, 679, 680, -1, 874, -1, 843, -1,
1630 841, -1, 865, -1, 877, -1, 245, -1, 249, -1,
1631 253, -1, 682, -1, 683, -1, 10, -1, 11, 684,
1632 204, -1, 685, 691, -1, -1, 686, 687, 690, -1,
1633 206, -1, 688, -1, -1, 688, 689, -1, 847, -1,
1634 860, -1, 861, -1, 848, -1, 849, -1, 850, -1,
1635 851, -1, 862, -1, 859, -1, 11, 205, -1, 10,
1636 -1, -1, 691, 692, -1, 693, -1, 718, -1, 731,
1637 -1, 758, -1, 776, -1, 789, -1, 807, -1, 811,
1638 -1, 694, 695, 11, 698, -1, 217, -1, 696, -1,
1639 -1, 696, 697, -1, 844, -1, 868, -1, 700, 699,
1640 218, -1, -1, 706, 712, -1, 701, 702, -1, 231,
1641 -1, 703, -1, 704, -1, 10, -1, 11, 705, 232,
1642 -1, 654, -1, 707, 708, -1, 233, -1, 709, -1,
1643 710, -1, 10, -1, 11, 711, 234, -1, 654, -1,
1644 713, 714, -1, 235, -1, 715, -1, 716, -1, 10,
1645 -1, 11, 717, 236, -1, 666, -1, 719, 720, 11,
1646 723, -1, 219, -1, 721, -1, -1, 721, 722, -1,
1647 844, -1, 868, -1, 700, 724, 220, -1, -1, 706,
1648 725, -1, 726, 727, -1, 235, -1, 728, -1, 729,
1649 -1, 10, -1, 11, 730, 236, -1, 654, -1, 732,
1650 733, 11, 736, -1, 221, -1, 734, -1, -1, 734,
1651 735, -1, 844, -1, 868, -1, 700, 737, 222, -1,
1652 -1, 706, 738, -1, -1, 739, 740, -1, 235, -1,
1653 741, -1, 742, -1, 10, -1, 11, 743, 236, -1,
1654 744, -1, -1, 744, 745, -1, 746, 747, 750, -1,
1655 112, -1, 748, -1, -1, 748, 749, -1, 845, -1,
1656 855, -1, 751, -1, 752, -1, 10, -1, 11, 753,
1657 113, -1, -1, 753, 754, -1, 755, 756, 757, -1,
1658 237, -1, -1, 854, -1, 11, 6, 238, -1, 759,
1659 760, 11, 763, -1, 223, -1, 761, -1, -1, 761,
1660 762, -1, 844, -1, 868, -1, 700, 764, 224, -1,
1661 -1, 706, 765, -1, -1, 766, 767, -1, 235, -1,
1662 768, -1, 769, -1, 10, -1, 11, 770, 236, -1,
1663 -1, 770, 771, -1, 772, 773, -1, 112, -1, 774,
1664 -1, 775, -1, 10, -1, 11, 898, 113, -1, 777,
1665 778, 11, 781, -1, 227, -1, 779, -1, -1, 779,
1666 780, -1, 844, -1, 868, -1, 700, 782, 228, -1,
1667 -1, 706, 783, -1, 784, 785, -1, 235, -1, 786,
1668 -1, 787, -1, 10, -1, 11, 788, 236, -1, 654,
1669 -1, 790, 791, 11, 794, -1, 225, -1, 792, -1,
1670 -1, 792, 793, -1, 844, -1, 868, -1, 700, 795,
1671 226, -1, -1, 706, 796, -1, -1, 797, 798, -1,
1672 235, -1, 799, -1, 800, -1, 10, -1, 11, 801,
1673 236, -1, -1, 801, 802, -1, 803, 804, 806, -1,
1674 112, -1, -1, 804, 805, -1, 883, -1, 858, -1,
1675 857, -1, 11, 6, 113, -1, 808, 809, 11, 972,
1676 810, -1, 239, -1, -1, 871, -1, 240, -1, 812,
1677 813, 814, -1, 207, -1, 840, -1, 11, 816, 823,
1678 830, 815, -1, 208, -1, 817, 818, 819, -1, 211,
1679 -1, 842, -1, 820, -1, 821, -1, 10, -1, 11,
1680 822, 212, -1, 654, -1, 824, 825, 826, -1, 213,
1681 -1, 842, -1, 827, -1, 828, -1, 10, -1, 11,
1682 829, 214, -1, 654, -1, -1, 830, 831, -1, 832,
1683 833, 836, -1, 209, -1, 834, -1, -1, 834, 835,
1684 -1, 852, -1, 853, -1, 874, -1, 877, -1, 837,
1685 -1, 838, -1, 10, -1, 11, 839, 210, -1, 685,
1686 691, -1, 165, 8, 6, 8, -1, 166, 8, 6,
1687 8, -1, 122, 8, 6, 8, -1, 167, 8, 6,
1688 8, -1, 169, 8, 6, 8, -1, 178, 8, 6,
1689 8, -1, 198, 8, 6, 8, -1, 182, 8, 6,
1690 8, -1, 185, 8, 6, 8, -1, 186, 8, 6,
1691 8, -1, 187, 8, 6, 8, -1, 188, 8, 6,
1692 8, -1, 190, 651, 6, 651, -1, 191, 651, 6,
1693 651, -1, 199, 8, 650, 8, -1, 200, 8, 650,
1694 8, -1, 195, 8, 6, 8, -1, 196, 8, 6,
1695 8, -1, 197, 8, 6, 8, -1, 189, 8, 650,
1696 8, -1, 183, 8, 6, 8, -1, 184, 8, 6,
1697 8, -1, 863, -1, 864, -1, 163, -1, 164, 3,
1698 651, -1, 866, -1, 867, -1, 131, -1, 132, 3,
1699 8, -1, 869, -1, 870, -1, 161, -1, 162, 3,
1700 8, -1, 872, -1, 873, -1, 137, -1, 138, 3,
1701 8, -1, 875, -1, 876, -1, 159, -1, 160, 3,
1702 8, -1, 878, -1, 879, -1, 133, -1, 134, 3,
1703 8, -1, 881, -1, 882, -1, 141, -1, 142, 3,
1704 8, -1, 884, -1, 885, -1, 143, -1, 144, 3,
1705 8, -1, 887, -1, 888, -1, 149, -1, 150, 3,
1706 8, -1, -1, 890, 891, 892, 303, -1, 302, -1,
1707 304, 8, 6, 8, 11, -1, -1, 892, 893, -1,
1708 894, 895, 11, 898, 306, -1, 305, -1, 896, -1,
1709 -1, 896, 897, -1, 856, -1, 871, -1, 942, -1,
1710 949, -1, 905, -1, 907, -1, 957, -1, 909, -1,
1711 911, -1, 913, -1, 915, -1, 969, -1, 917, -1,
1712 919, -1, 921, -1, 925, -1, 923, -1, 927, -1,
1713 934, -1, 929, -1, 932, -1, 963, -1, 966, -1,
1714 899, -1, 902, -1, 960, -1, 936, -1, 938, -1,
1715 940, -1, -1, 355, 900, 901, -1, 10, -1, 11,
1716 356, -1, -1, 357, 903, 904, -1, 10, -1, 11,
1717 358, -1, -1, 359, 906, 898, 898, 360, -1, -1,
1718 317, 908, 898, 898, 318, -1, -1, 319, 910, 898,
1719 898, 320, -1, -1, 333, 912, 898, 334, -1, -1,
1720 321, 914, 898, 898, 322, -1, -1, 315, 916, 898,
1721 898, 316, -1, -1, 323, 918, 898, 324, -1, -1,
1722 325, 920, 898, 326, -1, -1, 337, 922, 898, 338,
1723 -1, -1, 339, 924, 898, 340, -1, -1, 341, 926,
1724 898, 342, -1, -1, 331, 928, 898, 332, -1, 930,
1725 898, 931, -1, 345, -1, 346, -1, -1, 347, 933,
1726 898, 348, -1, -1, 335, 935, 898, 898, 898, 336,
1727 -1, -1, 363, 937, 972, 364, -1, -1, 365, 939,
1728 972, 366, -1, -1, 367, 941, 972, 368, -1, 943,
1729 945, 944, -1, 361, -1, 10, -1, 11, 362, -1,
1730 -1, 945, 946, -1, 877, -1, 880, -1, 947, -1,
1731 -1, 404, 3, 948, 8, -1, -1, 343, 950, 953,
1732 951, -1, 10, -1, 11, 344, -1, -1, 11, 898,
1733 952, 344, -1, -1, 953, 954, -1, 955, -1, 956,
1734 -1, 199, 8, 650, 8, -1, 195, 8, 6, 8,
1735 -1, -1, 327, 958, 959, 328, -1, -1, 959, 898,
1736 -1, -1, 351, 961, 962, 352, -1, -1, 962, 898,
1737 -1, -1, 349, 964, 965, 350, -1, -1, 965, 898,
1738 -1, -1, 353, 967, 968, 354, -1, -1, 968, 898,
1739 -1, -1, 329, 970, 971, 330, -1, -1, 971, 898,
1740 -1, 973, -1, 976, -1, 980, -1, 984, -1, 988,
1741 -1, 991, -1, 997, -1, 1000, -1, 1004, -1, 1009,
1742 -1, 1012, -1, 1015, -1, 1018, -1, 1021, -1, 1024,
1743 -1, 1027, -1, 1030, -1, 1033, -1, 994, -1, 974,
1744 639, 975, -1, 395, -1, 10, -1, 11, 396, -1,
1745 195, 8, 6, 8, -1, 977, 979, 978, -1, 245,
1746 -1, 10, -1, 11, 246, -1, 195, 8, 6, 8,
1747 -1, 981, 983, 982, -1, 249, -1, 10, -1, 11,
1748 250, -1, 195, 8, 6, 8, -1, 985, 987, 986,
1749 -1, 253, -1, 10, -1, 11, 254, -1, 195, 8,
1750 6, 8, -1, 989, 990, -1, 369, -1, 972, 370,
1751 -1, 992, 993, -1, 371, -1, 972, 972, 372, -1,
1752 995, 996, -1, 397, -1, 898, 398, -1, 998, 999,
1753 -1, 399, -1, 972, 400, -1, 1001, 1002, 11, 1003,
1754 -1, 373, -1, -1, 1008, -1, 972, 374, -1, 1005,
1755 1006, 11, 1007, -1, 375, -1, -1, 1008, -1, 972,
1756 376, -1, 402, 3, 8, -1, 1010, 1011, -1, 377,
1757 -1, 10, -1, 11, 378, -1, 1013, 1014, -1, 379,
1758 -1, 972, 972, 380, -1, 1016, 1017, -1, 381, -1,
1759 972, 382, -1, 1019, 1020, -1, 383, -1, 972, 972,
1760 384, -1, 1022, 1023, -1, 385, -1, 972, 972, 386,
1761 -1, -1, 387, 1025, 1026, 388, -1, -1, 1026, 972,
1762 -1, 1028, 1029, -1, 389, -1, 898, 972, 390, -1,
1763 1031, 1032, -1, 391, -1, 898, 898, 898, 898, 972,
1764 392, -1, 1034, 1035, -1, 393, -1, 972, 394, -1,
1765 -1, 1037, 1038, 1040, -1, 307, -1, 1039, -1, 309,
1766 8, 6, 8, -1, 1041, -1, 1042, -1, 10, -1,
1767 11, 1043, 308, -1, -1, 1043, 1044, -1, 1045, 1046,
1768 11, 972, 311, -1, 310, -1, 1047, -1, -1, 1047,
1769 1048, -1, 856, -1, 871, -1
1773 static const yytype_uint16 yyrline[] =
1775 0, 426, 426, 429, 430, 432, 441, 442, 445, 446,
1776 450, 455, 465, 465, 467, 480, 486, 487, 490, 491,
1777 494, 497, 500, 503, 509, 516, 523, 531, 536, 536,
1778 544, 550, 562, 562, 564, 566, 573, 573, 576, 576,
1779 582, 588, 600, 600, 602, 604, 608, 608, 616, 617,
1780 618, 619, 620, 621, 623, 630, 631, 636, 638, 647,
1781 649, 649, 652, 657, 662, 667, 667, 669, 672, 681,
1782 683, 683, 686, 691, 696, 701, 701, 704, 706, 715,
1783 725, 725, 728, 733, 738, 744, 744, 750, 752, 752,
1784 754, 756, 763, 801, 802, 804, 804, 806, 806, 808,
1785 810, 812, 821, 823, 823, 826, 831, 836, 841, 846,
1786 857, 857, 861, 863, 875, 877, 877, 880, 885, 890,
1787 894, 899, 904, 911, 911, 913, 915, 928, 930, 930,
1788 933, 938, 943, 948, 953, 958, 963, 970, 970, 974,
1789 976, 986, 988, 988, 991, 996, 1001, 1005, 1012, 1012,
1790 1026, 1028, 1037, 1039, 1039, 1042, 1047, 1052, 1057, 1059,
1791 1061, 1067, 1073, 1073, 1075, 1077, 1079, 1081, 1095, 1098,
1792 1100, 1109, 1111, 1111, 1114, 1119, 1124, 1129, 1131, 1133,
1793 1139, 1145, 1145, 1147, 1149, 1151, 1153, 1167, 1176, 1176,
1794 1178, 1183, 1183, 1185, 1188, 1190, 1190, 1197, 1202, 1212,
1795 1212, 1214, 1216, 1218, 1220, 1220, 1222, 1227, 1243, 1291,
1796 1291, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302,
1797 1303, 1304, 1307, 1308, 1310, 1310, 1316, 1321, 1331, 1331,
1798 1333, 1335, 1337, 1339, 1339, 1341, 1346, 1359, 1392, 1392,
1799 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1405, 1406,
1800 1409, 1409, 1415, 1420, 1430, 1430, 1432, 1434, 1436, 1438,
1801 1438, 1440, 1445, 1460, 1499, 1499, 1502, 1503, 1504, 1505,
1802 1506, 1507, 1508, 1509, 1510, 1513, 1514, 1557, 1557, 1559,
1803 1561, 1561, 1563, 1564, 1567, 1568, 1571, 1622, 1624, 1638,
1804 1639, 1641, 1641, 1665, 1666, 1669, 1670, 1672, 1674, 1675,
1805 1679, 1680, 1682, 1683, 1685, 1704, 1715, 1722, 1727, 1728,
1806 1730, 1731, 1733, 1733, 1736, 1748, 1749, 1751, 1752, 1756,
1807 1757, 1759, 1760, 1762, 1781, 1792, 1799, 1804, 1805, 1807,
1808 1808, 1810, 1810, 1813, 1825, 1826, 1828, 1838, 1842, 1843,
1809 1845, 1846, 1848, 1867, 1874, 1879, 1880, 1882, 1883, 1885,
1810 1885, 1888, 1900, 1901, 1906, 1906, 1914, 1915, 1917, 1918,
1811 1920, 1924, 1930, 1941, 1946, 1961, 1972, 1983, 1991, 1999,
1812 2018, 2029, 2040, 2052, 2063, 2074, 2086, 2097, 2109, 2121,
1813 2133, 2145, 2157, 2169, 2181, 2193, 2205, 2232, 2233, 2240,
1814 2242, 2242, 2244, 2245, 2246, 2247, 2411, 2419, 2421, 2421,
1815 2423, 2425, 2434, 2436, 2436, 2438, 2438, 2440, 2456, 2459,
1816 2459, 2461, 2461, 2464, 2495, 2503, 2505, 2505, 2507, 2509,
1817 2517, 2517, 2519, 2535, 2537, 2537, 2539, 2539, 2541, 2818,
1818 2869, 2892, 2910, 2910, 2913, 2914, 2915, 2916, 2917, 2921,
1819 2979, 3037, 3096, 3096, 3098, 3100, 3140, 3142, 3142, 3147,
1820 3165, 3192, 3192, 3195, 3196, 3197, 3198, 3199, 3200, 3201,
1821 3202, 3203, 3206, 3206, 3208, 3208, 3213, 3213, 3213, 3213,
1822 3214, 3214, 3214, 3214, 3216, 3218, 3227, 3233, 3233, 3236,
1823 3242, 3248, 3250, 3250, 3256, 3266, 3276, 3276, 3278, 3280,
1824 3282, 3285, 3296, 3303, 3303, 3305, 3307, 3309, 3315, 3325,
1825 3332, 3332, 3334, 3336, 3338, 3341, 3343, 3352, 3358, 3358,
1826 3361, 3367, 3373, 3375, 3375, 3377, 3387, 3394, 3394, 3396,
1827 3398, 3400, 3402, 3404, 3413, 3419, 3419, 3422, 3428, 3434,
1828 3436, 3436, 3439, 3444, 3455, 3470, 3470, 3472, 3474, 3476,
1829 3478, 3478, 3480, 3487, 3494, 3507, 3507, 3510, 3511, 3513,
1830 3513, 3515, 3517, 3519, 3519, 3522, 3524, 3532, 3532, 3537,
1831 3544, 3546, 3555, 3561, 3561, 3564, 3570, 3576, 3578, 3578,
1832 3580, 3581, 3583, 3598, 3598, 3600, 3602, 3604, 3604, 3606,
1833 3608, 3623, 3623, 3625, 3627, 3637, 3639, 3648, 3654, 3654,
1834 3657, 3663, 3669, 3671, 3671, 3673, 3683, 3690, 3690, 3692,
1835 3694, 3696, 3699, 3701, 3710, 3716, 3716, 3719, 3725, 3731,
1836 3733, 3733, 3736, 3741, 3752, 3767, 3767, 3769, 3771, 3773,
1837 3773, 3775, 3783, 3795, 3795, 3798, 3799, 3800, 3818, 3851,
1838 3854, 3872, 3872, 3883, 3890, 3900, 3908, 3914, 3916, 3930,
1839 3942, 3948, 3954, 3954, 3956, 3958, 3960, 3962, 3972, 3978,
1840 3984, 3984, 3986, 3988, 3990, 3992, 3992, 3997, 4002, 4014,
1841 4016, 4016, 4019, 4020, 4021, 4029, 4036, 4036, 4038, 4040,
1842 4046, 4060, 4071, 4115, 4238, 4249, 4271, 4295, 4306, 4320,
1843 4335, 4350, 4362, 4374, 4392, 4410, 4423, 4436, 4446, 4483,
1844 4494, 4504, 4516, 4530, 4530, 4532, 4542, 4704, 4704, 4706,
1845 4713, 4740, 4740, 4742, 4751, 4765, 4765, 4767, 4774, 4801,
1846 4801, 4803, 4810, 4819, 4819, 4821, 4828, 4855, 4855, 4859,
1847 4867, 4876, 4876, 4878, 4885, 4894, 4894, 4896, 4903, 4942,
1848 4943, 4949, 4955, 4976, 4977, 4979, 4987, 5006, 5013, 5013,
1849 5016, 5022, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039,
1850 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049,
1851 5050, 5051, 5052, 5053, 5054, 5055, 5057, 5058, 5059, 5063,
1852 5063, 5066, 5067, 5069, 5069, 5072, 5073, 5077, 5077, 5082,
1853 5082, 5087, 5087, 5092, 5092, 5097, 5097, 5102, 5102, 5107,
1854 5107, 5112, 5112, 5117, 5117, 5122, 5122, 5127, 5127, 5132,
1855 5132, 5137, 5139, 5145, 5152, 5152, 5158, 5158, 5170, 5170,
1856 5175, 5175, 5180, 5180, 5190, 5197, 5203, 5204, 5206, 5207,
1857 5210, 5214, 5218, 5222, 5221, 5240, 5239, 5246, 5247, 5249,
1858 5248, 5255, 5256, 5259, 5265, 5273, 5280, 5298, 5298, 5309,
1859 5309, 5312, 5312, 5326, 5327, 5330, 5330, 5343, 5344, 5347,
1860 5347, 5360, 5361, 5364, 5364, 5374, 5375, 5381, 5382, 5383,
1861 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393,
1862 5394, 5395, 5396, 5397, 5398, 5399, 5402, 5407, 5414, 5415,
1863 5417, 5425, 5430, 5437, 5438, 5440, 5447, 5452, 5459, 5460,
1864 5462, 5469, 5474, 5481, 5482, 5484, 5491, 5493, 5499, 5501,
1865 5503, 5509, 5511, 5513, 5519, 5521, 5523, 5529, 5531, 5533,
1866 5539, 5539, 5544, 5546, 5548, 5554, 5554, 5559, 5561, 5570,
1867 5572, 5577, 5577, 5579, 5581, 5587, 5590, 5592, 5598, 5601,
1868 5603, 5609, 5612, 5614, 5620, 5624, 5623, 5635, 5635, 5642,
1869 5644, 5650, 5652, 5654, 5660, 5663, 5665, 5671, 5681, 5681,
1870 5687, 5695, 5697, 5717, 5717, 5719, 5721, 5723, 5723, 5725,
1871 5735, 5754, 5760, 5760, 5763, 5771
1875 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1880 "$end",
"error",
"$undefined",
"ATTRIBUTETEXT",
"ELEMENTTEXT",
1881 "ITEMTEXT",
"INTEGER",
"DOUBLE",
"QUOTE",
"TWOQUOTES",
"ENDOFELEMENT",
1882 "GREATERTHAN",
"EMPTYSEMIDEFINITENESSATT",
"SEMIDEFINITENESSATT",
1883 "NUMBEROFQTERMSATT",
"NUMBEROFCONESATT",
"NUMBEROFSTAGESATT",
1884 "IDXONEATT",
"IDXTWOATT",
"HORIZONATT",
"STARTATT",
"STARTIDXATT",
1885 "MATRIXIDXATT",
"LBMATRIXIDXATT",
"LBCONEIDXATT",
"UBMATRIXIDXATT",
1886 "UBCONEIDXATT",
"TEMPLATEMATRIXIDXATT",
"REFERENCEMATRIXIDXATT",
1887 "VARREFERENCEMATRIXIDXATT",
"OBJREFERENCEMATRIXIDXATT",
1888 "CONREFERENCEMATRIXIDXATT",
"ORDERCONEIDXATT",
"CONSTANTMATRIXIDXATT",
1889 "NORMSCALEFACTORATT",
"DISTORTIONMATRIXIDXATT",
"AXISDIRECTIONATT",
1890 "FIRSTAXISDIRECTIONATT",
"SECONDAXISDIRECTIONATT",
"OSILEND",
1891 "INSTANCEDATAEND",
"INSTANCEDATASTARTEND",
"QUADRATICCOEFFICIENTSSTART",
1892 "QUADRATICCOEFFICIENTSEND",
"QTERMSTART",
"QTERMEND",
"CONESSTART",
1893 "CONESEND",
"NONNEGATIVECONESTART",
"NONNEGATIVECONEEND",
1894 "NONPOSITIVECONESTART",
"NONPOSITIVECONEEND",
"ORTHANTCONESTART",
1895 "ORTHANTCONEEND",
"POLYHEDRALCONESTART",
"POLYHEDRALCONEEND",
1896 "QUADRATICCONESTART",
"QUADRATICCONEEND",
"ROTATEDQUADRATICCONESTART",
1897 "ROTATEDQUADRATICCONEEND",
"SEMIDEFINITECONESTART",
1898 "SEMIDEFINITECONEEND",
"PRODUCTCONESTART",
"PRODUCTCONEEND",
1899 "INTERSECTIONCONESTART",
"INTERSECTIONCONEEND",
"DUALCONESTART",
1900 "DUALCONEEND",
"POLARCONESTART",
"POLARCONEEND",
"DIRECTIONSTART",
1901 "DIRECTIONEND",
"FACTORSSTART",
"FACTORSEND",
"COMPONENTSSTART",
1902 "COMPONENTSEND",
"TIMEDOMAINSTART",
"TIMEDOMAINEND",
"STAGESSTART",
1903 "STAGESEND",
"STAGESTART",
"STAGEEND",
"INTERVALSTART",
"INTERVALEND",
1904 "HEADERSTART",
"HEADEREND",
"FILENAMESTART",
"FILENAMEEND",
1905 "FILENAMEEMPTY",
"FILENAMESTARTANDEND",
"FILESOURCESTART",
1906 "FILESOURCEEND",
"FILESOURCEEMPTY",
"FILESOURCESTARTANDEND",
1907 "FILEDESCRIPTIONSTART",
"FILEDESCRIPTIONEND",
"FILEDESCRIPTIONEMPTY",
1908 "FILEDESCRIPTIONSTARTANDEND",
"FILECREATORSTART",
"FILECREATOREND",
1909 "FILECREATOREMPTY",
"FILECREATORSTARTANDEND",
"FILELICENCESTART",
1910 "FILELICENCEEND",
"FILELICENCEEMPTY",
"FILELICENCESTARTANDEND",
1911 "INDEXESSTART",
"INDEXESEND",
"VALUESSTART",
"VALUESEND",
1912 "NONZEROSSTART",
"NONZEROSEND",
"ELSTART",
"ELEND",
"ENUMERATIONSTART",
1913 "ENUMERATIONEND",
"ITEMEMPTY",
"ITEMSTART",
"ITEMEND",
"ITEMSTARTANDEND",
1914 "BASE64START",
"BASE64END",
"NUMBEROFELATT",
"NUMBEROFENUMERATIONSATT",
1915 "NUMBEROFITEMSATT",
"EMPTYCATEGORYATT",
"CATEGORYATT",
1916 "EMPTYDESCRIPTIONATT",
"DESCRIPTIONATT",
"EMPTYSOLVERATT",
"SOLVERATT",
1917 "EMPTYNAMEATT",
"NAMEATT",
"EMPTYTYPEATT",
"TYPEATT",
"EMPTYENUMTYPEATT",
1918 "ENUMTYPEATT",
"EMPTYSHAPEATT",
"SHAPEATT",
"EMPTYUNITATT",
"UNITATT",
1919 "EMPTYVALUEATT",
"VALUEATT",
"EMPTYVALUETYPEATT",
"VALUETYPEATT",
1920 "EMPTYCONTYPEATT",
"CONTYPEATT",
"EMPTYOBJTYPEATT",
"OBJTYPEATT",
1921 "EMPTYVARTYPEATT",
"VARTYPEATT",
"EMPTYMATRIXCONTYPEATT",
1922 "MATRIXCONTYPEATT",
"EMPTYMATRIXOBJTYPEATT",
"MATRIXOBJTYPEATT",
1923 "EMPTYMATRIXVARTYPEATT",
"MATRIXVARTYPEATT",
"EMPTYMATRIXTYPEATT",
1924 "MATRIXTYPEATT",
"EMPTYSYMMETRYATT",
"SYMMETRYATT",
"EMPTYROWMAJORATT",
1925 "ROWMAJORATT",
"EMPTYBASETRANSPOSEATT",
"BASETRANSPOSEATT",
1926 "NUMBEROFBLOCKSATT",
"NUMBEROFCOLUMNSATT",
"NUMBEROFROWSATT",
1927 "NUMBEROFMATRICESATT",
"NUMBEROFVALUESATT",
"NUMBEROFCONSTRAINTSATT",
1928 "NUMBEROFCONATT",
"NUMBEROFCONIDXATT",
"NUMBEROFOBJECTIVESATT",
1929 "NUMBEROFOBJATT",
"NUMBEROFOBJIDXATT",
"NUMBEROFVARIABLESATT",
1930 "NUMBEROFVARATT",
"NUMBEROFVARIDXATT",
"NUMBEROFMATRIXCONATT",
1931 "NUMBEROFMATRIXOBJATT",
"NUMBEROFMATRIXVARATT",
"BASEMATRIXIDXATT",
1932 "TARGETMATRIXFIRSTROWATT",
"TARGETMATRIXFIRSTCOLATT",
1933 "BASEMATRIXSTARTROWATT",
"BASEMATRIXSTARTCOLATT",
"BASEMATRIXENDROWATT",
1934 "BASEMATRIXENDCOLATT",
"SCALARMULTIPLIERATT",
"BLOCKROWIDXATT",
1935 "BLOCKCOLIDXATT",
"MATRIXVARIDXATT",
"MATRIXOBJIDXATT",
1936 "MATRIXCONIDXATT",
"IDXATT",
"INCRATT",
"MULTATT",
"SIZEOFATT",
1937 "COEFATT",
"CONSTANTATT",
"MATRICESSTART",
"MATRICESEND",
"MATRIXSTART",
1938 "MATRIXEND",
"BASEMATRIXEND",
"BASEMATRIXSTART",
"BLOCKSSTART",
1939 "BLOCKSEND",
"BLOCKSTART",
"BLOCKEND",
"COLOFFSETSTART",
"COLOFFSETEND",
1940 "ROWOFFSETSTART",
"ROWOFFSETEND",
"ELEMENTSSTART",
"ELEMENTSEND",
1941 "CONSTANTELEMENTSSTART",
"CONSTANTELEMENTSEND",
1942 "VARREFERENCEELEMENTSSTART",
"VARREFERENCEELEMENTSEND",
1943 "LINEARELEMENTSSTART",
"LINEARELEMENTSEND",
"GENERALELEMENTSSTART",
1944 "GENERALELEMENTSEND",
"CONREFERENCEELEMENTSSTART",
1945 "CONREFERENCEELEMENTSEND",
"OBJREFERENCEELEMENTSSTART",
1946 "OBJREFERENCEELEMENTSEND",
"STRINGVALUEDELEMENTSSTART",
1947 "STRINGVALUEDELEMENTSEND",
"STARTVECTORSTART",
"STARTVECTOREND",
1948 "INDEXSTART",
"INDEXEND",
"VALUESTART",
"VALUEEND",
"VARIDXSTART",
1949 "VARIDXEND",
"TRANSFORMATIONSTART",
"TRANSFORMATIONEND",
1950 "MATRIXPROGRAMMINGSTART",
"MATRIXPROGRAMMINGEND",
"MATRIXVARIABLESSTART",
1951 "MATRIXVARIABLESEND",
"MATRIXVARSTART",
"MATRIXVAREND",
1952 "MATRIXOBJECTIVESSTART",
"MATRIXOBJECTIVESEND",
"MATRIXOBJSTART",
1953 "MATRIXOBJEND",
"MATRIXCONSTRAINTSSTART",
"MATRIXCONSTRAINTSEND",
1954 "MATRIXCONSTART",
"MATRIXCONEND",
"CONSTART",
"CONEND",
1955 "CONSTRAINTSSTART",
"CONSTRAINTSEND",
"OBJSTART",
"OBJEND",
1956 "OBJECTIVESSTART",
"OBJECTIVESEND",
"VARSTART",
"VAREND",
1957 "VARIABLESSTART",
"VARIABLESEND",
"GENERALSTART",
"GENERALEND",
1958 "SYSTEMSTART",
"SYSTEMEND",
"SERVICESTART",
"SERVICEEND",
"JOBSTART",
1959 "JOBEND",
"OPTIMIZATIONSTART",
"OPTIMIZATIONEND",
"ATEQUALITYSTART",
1960 "ATEQUALITYEND",
"ATLOWERSTART",
"ATLOWEREND",
"ATUPPERSTART",
1961 "ATUPPEREND",
"BASICSTART",
"BASICEND",
"ISFREESTART",
"ISFREEEND",
1962 "SUPERBASICSTART",
"SUPERBASICEND",
"UNKNOWNSTART",
"UNKNOWNEND",
1963 "SERVICEURISTART",
"SERVICEURIEND",
"SERVICENAMESTART",
"SERVICENAMEEND",
1964 "INSTANCENAMESTART",
"INSTANCENAMEEND",
"JOBIDSTART",
"JOBIDEND",
1965 "OTHERSTART",
"OTHEREND",
"DUMMY",
"NONLINEAREXPRESSIONSSTART",
1966 "NONLINEAREXPRESSIONSEND",
"NUMBEROFNONLINEAREXPRESSIONS",
"NLSTART",
1967 "NLEND",
"MATRIXEXPRESSIONSSTART",
"MATRIXEXPRESSIONSEND",
1968 "NUMBEROFEXPR",
"EXPRSTART",
"EXPREND",
"NUMBEROFMATRIXTERMSATT",
1969 "MATRIXTERMSTART",
"MATRIXTERMEND",
"POWERSTART",
"POWEREND",
1970 "PLUSSTART",
"PLUSEND",
"MINUSSTART",
"MINUSEND",
"DIVIDESTART",
1971 "DIVIDEEND",
"LNSTART",
"LNEND",
"SQRTSTART",
"SQRTEND",
"SUMSTART",
1972 "SUMEND",
"PRODUCTSTART",
"PRODUCTEND",
"EXPSTART",
"EXPEND",
1973 "NEGATESTART",
"NEGATEEND",
"IFSTART",
"IFEND",
"SQUARESTART",
1974 "SQUAREEND",
"COSSTART",
"COSEND",
"SINSTART",
"SINEND",
"VARIABLESTART",
1975 "VARIABLEEND",
"ABSSTART",
"ABSEND",
"ERFSTART",
"ERFEND",
"MAXSTART",
1976 "MAXEND",
"ALLDIFFSTART",
"ALLDIFFEND",
"MINSTART",
"MINEND",
"ESTART",
1977 "EEND",
"PISTART",
"PIEND",
"TIMESSTART",
"TIMESEND",
"NUMBERSTART",
1978 "NUMBEREND",
"MATRIXDETERMINANTSTART",
"MATRIXDETERMINANTEND",
1979 "MATRIXTRACESTART",
"MATRIXTRACEEND",
"MATRIXTOSCALARSTART",
1980 "MATRIXTOSCALAREND",
"MATRIXDIAGONALSTART",
"MATRIXDIAGONALEND",
1981 "MATRIXDOTTIMESSTART",
"MATRIXDOTTIMESEND",
"MATRIXLOWERTRIANGLESTART",
1982 "MATRIXLOWERTRIANGLEEND",
"MATRIXUPPERTRIANGLESTART",
1983 "MATRIXUPPERTRIANGLEEND",
"MATRIXMERGESTART",
"MATRIXMERGEEND",
1984 "MATRIXMINUSSTART",
"MATRIXMINUSEND",
"MATRIXNEGATESTART",
1985 "MATRIXNEGATEEND",
"MATRIXPLUSSTART",
"MATRIXPLUSEND",
1986 "MATRIXTIMESSTART",
"MATRIXTIMESEND",
"MATRIXPRODUCTSTART",
1987 "MATRIXPRODUCTEND",
"MATRIXSCALARTIMESSTART",
"MATRIXSCALARTIMESEND",
1988 "MATRIXSUBMATRIXATSTART",
"MATRIXSUBMATRIXATEND",
"MATRIXTRANSPOSESTART",
1989 "MATRIXTRANSPOSEEND",
"MATRIXREFERENCESTART",
"MATRIXREFERENCEEND",
1990 "IDENTITYMATRIXSTART",
"IDENTITYMATRIXEND",
"MATRIXINVERSESTART",
1991 "MATRIXINVERSEEND",
"EMPTYINCLUDEDIAGONALATT",
"INCLUDEDIAGONALATT",
1992 "EMPTYIDATT",
"IDATT",
"' '",
"'\\t'",
"'\\r'",
"'\\n'",
"$accept",
1993 "osildoc",
"theInstanceEnd",
"osilEnd",
"osilEnding",
1994 "quadraticCoefficients",
"quadraticCoefficientsStart",
1995 "osilQuadnumberATT",
"qTermlist",
"qterm",
"qtermStart",
"qtermend",
1996 "anotherqTermATT",
"qtermatt",
"osilQtermidxOneATT",
1997 "osilQtermidxTwoATT",
"osilQtermcoefATT",
"osilQtermidxATT",
"matrices",
1998 "matricesStart",
"matricesAttributes",
"matricesContent",
1999 "matricesEmpty",
"matricesLaden",
"matrixList",
"cones",
"conesStart",
2000 "conesAttributes",
"conesContent",
"conesEmpty",
"conesLaden",
2001 "coneList",
"cone",
"nonnegativeCone",
"nonnegativeConeStart",
2002 "nonnegativeConeAttributes",
"nonnegativeConeAttList",
2003 "nonnegativeConeAtt",
"nonnegativeConeEnd",
"nonpositiveCone",
2004 "nonpositiveConeStart",
"nonpositiveConeAttributes",
2005 "nonpositiveConeAttList",
"nonpositiveConeAtt",
"nonpositiveConeEnd",
2006 "generalOrthantCone",
"generalOrthantConeStart",
2007 "generalOrthantConeAttributes",
"generalOrthantConeAttList",
2008 "generalOrthantConeAtt",
"generalOrthantConeContent",
2009 "generalOrthantConeDirectionList",
"generalOrthantConeDirections",
2010 "generalOrthantConeDirection",
"generalOrthantConeDirectionStart",
2011 "generalOrthantConeDirectionAttributes",
2012 "generalOrthantConeDirectionAttributeList",
2013 "generalOrthantConeDirectionAtt",
"generalOrthantConeDirectionEnd",
2014 "generalOrthantConeEnd",
"polyhedralCone",
"polyhedralConeStart",
2015 "polyhedralConeAttributes",
"polyhedralConeAttList",
"polyhedralConeAtt",
2016 "referenceMatrixATT",
"polyhedralConeEnd",
"quadraticCone",
2017 "quadraticConeStart",
"quadraticConeAttributes",
"quadraticConeAttList",
2018 "quadraticConeAtt",
"quadraticConeEnd",
"rotatedQuadraticCone",
2019 "rotatedQuadraticConeStart",
"rotatedQuadraticConeAttributes",
2020 "rotatedQuadraticConeAttList",
"rotatedQuadraticConeAtt",
2021 "rotatedQuadraticConeEnd",
"semidefiniteCone",
"semidefiniteConeStart",
2022 "semidefiniteConeAttributes",
"semidefiniteConeAttList",
2023 "semidefiniteConeAtt",
"semidefiniteConeEnd",
"productCone",
2024 "productConeStart",
"productConeAttributes",
"productConeAttList",
2025 "productConeAtt",
"productConeContent",
"productConeFactors",
2026 "productConeFactorsStart",
"productConeFactorsAttributes",
2027 "productConeFactorsContent",
"productConeFactorsEmpty",
2028 "productConeFactorsLaden",
"productConeFactorList",
2029 "productConeFactorsEnd",
"productConeEnd",
"intersectionCone",
2030 "intersectionConeStart",
"intersectionConeAttributes",
2031 "intersectionConeAttList",
"intersectionConeAtt",
2032 "intersectionConeContent",
"intersectionConeComponents",
2033 "intersectionConeComponentsStart",
2034 "intersectionConeComponentsAttributes",
2035 "intersectionConeComponentsContent",
"intersectionConeComponentsEmpty",
2036 "intersectionConeComponentsLaden",
"intersectionConeComponentList",
2037 "intersectionConeComponentsEnd",
"intersectionConeEnd",
2038 "matrixProgramming",
"matrixProgrammingStart",
2039 "matrixProgrammingContent",
"matrixProgrammingEmpty",
2040 "matrixProgrammingLaden",
"matrixVariables",
"matrixVariablesStart",
2041 "matrixVariablesAttributes",
"matrixVariablesContent",
2042 "matrixVariablesEmpty",
"matrixVariablesLaden",
"matrixVariablesEnd",
2043 "matrixVarList",
"matrixVar",
"matrixVarStart",
"matrixVarAttributes",
2044 "matrixVarAttList",
"matrixVarAtt",
"matrixVarEnd",
"matrixObjectives",
2045 "matrixObjectivesStart",
"matrixObjectivesAttributes",
2046 "matrixObjectivesContent",
"matrixObjectivesEmpty",
2047 "matrixObjectivesLaden",
"matrixObjectivesEnd",
"matrixObjList",
2048 "matrixObj",
"matrixObjStart",
"matrixObjAttributes",
"matrixObjAttList",
2049 "matrixObjAtt",
"matrixObjEnd",
"matrixConstraints",
2050 "matrixConstraintsStart",
"matrixConstraintsAttributes",
2051 "matrixConstraintsContent",
"matrixConstraintsEmpty",
2052 "matrixConstraintsLaden",
"matrixConstraintsEnd",
"matrixConList",
2053 "matrixCon",
"matrixConStart",
"matrixConAttributes",
"matrixConAttList",
2054 "matrixConAtt",
"matrixConEnd",
"timeDomain",
"timeDomainStart",
2055 "timeDomainContent",
"timeDomainEmpty",
"timeDomainLaden",
"stages",
2056 "stagesstart",
"osilNumberofstagesATT",
"stagelist",
"stage",
"$@1",
2057 "osilStagenameATT",
"stageend",
"stagecontent",
"stagevariables",
2058 "anotherstagevarATT",
"stagevaratt",
"osilNumberofstagevariablesATT",
2059 "osilStagevarstartidxATT",
"restofstagevariables",
"emptyvarlist",
2060 "stagevarlist",
"stagevar",
"$@2",
"osilStagevaridxATT",
"stagevarend",
2061 "stageconstraints",
"anotherstageconATT",
"stageconatt",
2062 "osilNumberofstageconstraintsATT",
"osilStageconstartidxATT",
2063 "restofstageconstraints",
"emptyconlist",
"stageconlist",
"stagecon",
2064 "$@3",
"osilStageconidxATT",
"stageconend",
"stageobjectives",
2065 "anotherstageobjATT",
"stageobjatt",
"osilNumberofstageobjectivesATT",
2066 "restofstageobjectives",
"emptyobjlist",
"stageobjlist",
"stageobj",
2067 "$@4",
"osilStageobjidxATT",
"stageobjend",
"interval",
"$@5",
2068 "intervalend",
"anotherIntervalATT",
"intervalatt",
2069 "osilStageobjstartidxATT",
"osilIntervalhorizonATT",
2070 "osilIntervalstartATT",
"numberOfMatricesATT",
"numberOfConesATT",
2071 "numberOfMatrixVarATT",
"numberOfMatrixObjATT",
"numberOfMatrixConATT",
2072 "normScaleFactorATT",
"distortionMatrixIdxATT",
"axisDirectionATT",
2073 "firstAxisDirectionATT",
"secondAxisDirectionATT",
"semidefinitenessATT",
2074 "matrixIdxATT",
"lbMatrixIdxATT",
"ubMatrixIdxATT",
2075 "constantMatrixIdxATT",
"templateMatrixIdxATT",
2076 "varReferenceMatrixIdxATT",
"objReferenceMatrixIdxATT",
2077 "conReferenceMatrixIdxATT",
"lbConeIdxATT",
"ubConeIdxATT",
2078 "orderConeIdxATT",
"aNumber",
"quote",
"xmlWhiteSpace",
2079 "xmlWhiteSpaceChar",
"osglIntArrayData",
"osglIntVectorElArray",
2080 "osglIntVectorEl",
"osglIntVectorElStart",
"osglIntVectorElAttributes",
2081 "osglIntVectorElAttList",
"osglIntVectorElAtt",
"osglIntVectorElContent",
2082 "osglIntVectorBase64",
"osglIntVectorBase64Content",
2083 "osglIntVectorBase64Empty",
"osglIntVectorBase64Laden",
2084 "osglDblArrayData",
"osglDblVectorElArray",
"osglDblVectorEl",
2085 "osglDblVectorElStart",
"osglDblVectorElAttributes",
2086 "osglDblVectorElContent",
"osglDblVectorBase64",
2087 "osglDblVectorBase64Content",
"osglDblVectorBase64Empty",
2088 "osglDblVectorBase64Laden",
"osglMatrix",
"matrixStart",
2089 "matrixAttributes",
"matrixAttributeList",
"matrixAttribute",
2090 "matrixContent",
"matrixEmpty",
"matrixLaden",
"matrixBody",
2091 "baseMatrix",
"baseMatrixStart",
"baseMatrixAttributes",
2092 "baseMatrixAttList",
"baseMatrixAtt",
"baseMatrixEnd",
2093 "matrixConstructorList",
"matrixConstructor",
"constantElements",
2094 "constantElementsStart",
"constantElementsAttributes",
2095 "constantElementsAttList",
"constantElementsAtt",
2096 "constantElementsContent",
"constantElementsNonzeros",
2097 "matrixElementsStartVector",
"matrixElementsStartVectorStart",
2098 "matrixElementsStartVectorContent",
"matrixElementsStartVectorEmpty",
2099 "matrixElementsStartVectorLaden",
"matrixElementsStartVectorBody",
2100 "matrixElementsIndexVector",
"matrixElementsIndexStart",
2101 "matrixElementsIndexContent",
"matrixElementsIndexEmpty",
2102 "matrixElementsIndexLaden",
"matrixElementsIndexBody",
2103 "constantElementsValues",
"constantElementsValueStart",
2104 "constantElementsValueContent",
"constantElementsValueEmpty",
2105 "constantElementsValueLaden",
"constantElementsValueBody",
2106 "varReferenceElements",
"varReferenceElementsStart",
2107 "varReferenceElementsAttributes",
"varReferenceElementsAttList",
2108 "varReferenceElementsAtt",
"varReferenceElementsContent",
2109 "varReferenceElementsNonzeros",
"varReferenceElementsValues",
2110 "varReferenceElementsValuesStart",
"varReferenceElementsValuesContent",
2111 "varReferenceElementsValuesEmpty",
"varReferenceElementsValuesLaden",
2112 "varReferenceElementsValuesBody",
"linearElements",
2113 "linearElementsStart",
"linearElementsAttributes",
2114 "linearElementsAttList",
"linearElementsAtt",
"linearElementsContent",
2115 "linearElementsNonzeros",
"linearElementsValues",
2116 "linearElementsValuesStart",
"linearElementsValuesContent",
2117 "linearElementsValuesEmpty",
"linearElementsValuesLaden",
2118 "linearElementsValuesBody",
"linearElementsValuesElList",
2119 "linearElementsValuesEl",
"linearElementsValuesElStart",
2120 "linearElementsValuesElAttributes",
"linearElementsValuesElAttList",
2121 "linearElementsValuesElAtt",
"linearElementsValuesElContent",
2122 "linearElementsValuesElEmpty",
"linearElementsValuesElLaden",
2123 "linearElementsValuesVarIdxList",
"linearElementsValuesVarIdx",
2124 "linearElementsValuesVarIdxStart",
"LinearElementsValuesVarIdxCoefATT",
2125 "linearElementsValuesVarIdxContent",
"generalElements",
2126 "generalElementsStart",
"generalElementsAttributes",
2127 "generalElementsAttList",
"generalElementsAtt",
"generalElementsContent",
2128 "generalElementsNonzeros",
"generalElementsValues",
2129 "generalElementsValuesStart",
"generalElementsValuesContent",
2130 "generalElementsValuesEmpty",
"generalElementsValuesLaden",
2131 "generalElementsElList",
"generalElementsEl",
"generalElementsElStart",
2132 "generalElementsElContent",
"generalElementsElEmpty",
2133 "generalElementsElLaden",
"objReferenceElements",
2134 "objReferenceElementsStart",
"objReferenceElementsAttributes",
2135 "objReferenceElementsAttList",
"objReferenceElementsAtt",
2136 "objReferenceElementsContent",
"objReferenceElementsNonzeros",
2137 "objReferenceElementsValues",
"objReferenceElementsValuesStart",
2138 "objReferenceElementsValuesContent",
"objReferenceElementsValuesEmpty",
2139 "objReferenceElementsValuesLaden",
"objReferenceElementsValuesBody",
2140 "conReferenceElements",
"conReferenceElementsStart",
2141 "conReferenceElementsAttributes",
"conReferenceElementsAttList",
2142 "conReferenceElementsAtt",
"conReferenceElementsContent",
2143 "conReferenceElementsNonzeros",
"conReferenceElementsValues",
2144 "conReferenceElementsValuesStart",
"conReferenceElementsValuesContent",
2145 "conReferenceElementsValuesEmpty",
"conReferenceElementsValuesLaden",
2146 "conReferenceElementsElList",
"conReferenceElementsEl",
2147 "conReferenceElementsElStart",
"conReferenceElementsElAttributeList",
2148 "conReferenceElementsElAttribute",
"conReferenceElementsElContent",
2149 "matrixTransformation",
"matrixTransformationStart",
2150 "matrixTransformationShapeATT",
"matrixTransformationEnd",
2151 "matrixBlocks",
"matrixBlocksStart",
"matrixBlocksAttributes",
2152 "matrixBlocksContent",
"matrixBlocksEnd",
"colOffsets",
"colOffsetStart",
2153 "colOffsetNumberOfElAttribute",
"colOffsetContent",
"colOffsetEmpty",
2154 "colOffsetLaden",
"colOffsetBody",
"rowOffsets",
"rowOffsetStart",
2155 "rowOffsetNumberOfElAttribute",
"rowOffsetContent",
"rowOffsetEmpty",
2156 "rowOffsetLaden",
"rowOffsetBody",
"blockList",
"matrixBlock",
2157 "matrixBlockStart",
"matrixBlockAttributes",
"matrixBlockAttList",
2158 "matrixBlockAtt",
"matrixBlockContent",
"blockEmpty",
"blockLaden",
2159 "blockBody",
"osglNumberOfBlocksATT",
"osglNumberOfColumnsATT",
2160 "osglNumberOfElATT",
"osglNumberOfRowsATT",
"osglNumberOfValuesATT",
2161 "osglNumberOfVarIdxATT",
"osglBase64SizeATT",
"osglBaseMatrixIdxATT",
2162 "osglBaseMatrixStartRowATT",
"osglBaseMatrixStartColATT",
2163 "osglBaseMatrixEndRowATT",
"osglBaseMatrixEndColATT",
2164 "osglBlockRowIdxATT",
"osglBlockColIdxATT",
"osglCoefATT",
2165 "osglConstantATT",
"osglIdxATT",
"osglIncrATT",
"osglMultATT",
2166 "osglScalarMultiplierATT",
"osglTargetMatrixFirstRowATT",
2167 "osglTargetMatrixFirstColATT",
"osglBaseTransposeATT",
2168 "baseTransposeAttEmpty",
"baseTransposeAttContent",
"osglNameATT",
2169 "nameAttEmpty",
"nameAttContent",
"osglRowMajorATT",
"rowMajorAttEmpty",
2170 "rowMajorAttContent",
"osglShapeATT",
"shapeAttEmpty",
"shape",
2171 "osglSymmetryATT",
"symmetryAttEmpty",
"symmetryAttContent",
2172 "osglTypeATT",
"typeAttEmpty",
"typeAttContent",
"osglValueATT",
2173 "valueAttEmpty",
"valueAttContent",
"osglValueTypeATT",
2174 "valueTypeAttEmpty",
"valueTypeAttContent",
"osglVarTypeATT",
2175 "varTypeAttEmpty",
"varTypeAttContent",
"nonlinearExpressions",
2176 "nonlinearExpressionsStart",
"nlnumberatt",
"nlnodes",
2177 "scalarExpressionTree",
"nlstart",
"nlAttributes",
"nlAttributeList",
2178 "nlAttribute",
"nlnode",
"E",
"$@6",
"eend",
"PI",
"$@7",
"piend",
2179 "times",
"$@8",
"plus",
"$@9",
"minus",
"$@10",
"negate",
"$@11",
2180 "divide",
"$@12",
"power",
"$@13",
"ln",
"$@14",
"sqrt",
"$@15",
2181 "square",
"$@16",
"cos",
"$@17",
"sin",
"$@18",
"exp",
"$@19",
"abs",
2182 "absStart",
"absEnd",
"erf",
"$@20",
"if",
"$@21",
"matrixDeterminant",
2183 "$@22",
"matrixTrace",
"$@23",
"matrixToScalar",
"$@24",
"number",
2184 "numberStart",
"numberEnd",
"numberAttributeList",
"numberAttribute",
2185 "numberidATT",
"$@25",
"variable",
"$@26",
"variableend",
"$@27",
2186 "anotherVariableATT",
"variableATT",
"variablecoefATT",
"variableidxATT",
2187 "sum",
"$@28",
"anothersumnlnode",
"allDiff",
"$@29",
2188 "anotherallDiffnlnode",
"max",
"$@30",
"anothermaxnlnode",
"min",
"$@31",
2189 "anotherminnlnode",
"product",
"$@32",
"anotherproductnlnode",
2190 "OSnLMNode",
"matrixReference",
"matrixReferenceStart",
2191 "matrixReferenceEnd",
"matrixVarReference",
"matrixVarReferenceStart",
2192 "matrixVarReferenceEnd",
"matrixVarIdxATT",
"matrixObjReference",
2193 "matrixObjReferenceStart",
"matrixObjReferenceEnd",
"matrixObjIdxATT",
2194 "matrixConReference",
"matrixConReferenceStart",
"matrixConReferenceEnd",
2195 "matrixConIdxATT",
"matrixDiagonal",
"matrixDiagonalStart",
2196 "matrixDiagonalContent",
"matrixDotTimes",
"matrixDotTimesStart",
2197 "matrixDotTimesContent",
"identityMatrix",
"identityMatrixStart",
2198 "identityMatrixContent",
"matrixInverse",
"matrixInverseStart",
2199 "matrixInverseContent",
"matrixLowerTriangle",
2200 "matrixLowerTriangleStart",
"matrixLowerTriangleAttribute",
2201 "matrixLowerTriangleContent",
"matrixUpperTriangle",
2202 "matrixUpperTriangleStart",
"matrixUpperTriangleAttribute",
2203 "matrixUpperTriangleContent",
"includeDiagonalATT",
"matrixMerge",
2204 "matrixMergeStart",
"matrixMergeEnd",
"matrixMinus",
"matrixMinusStart",
2205 "matrixMinusContent",
"matrixNegate",
"matrixNegateStart",
2206 "matrixNegateContent",
"matrixPlus",
"matrixPlusStart",
2207 "matrixPlusContent",
"matrixTimes",
"matrixTimesStart",
2208 "matrixTimesContent",
"matrixProduct",
"$@33",
2209 "anothermatrixproductnode",
"matrixScalarTimes",
2210 "matrixScalarTimesStart",
"matrixScalarTimesContent",
2211 "matrixSubMatrixAt",
"matrixSubMatrixAtStart",
2212 "matrixSubMatrixAtContent",
"matrixTranspose",
"matrixTransposeStart",
2213 "matrixTransposeContent",
"matrixExpressions",
"matrixExpressionsStart",
2214 "matrixExpressionsAtt",
"numberOfExprATT",
"matrixExpressionsContent",
2215 "matrixExpressionsEmpty",
"matrixExpressionsLaden",
"matrixExprList",
2216 "matrixExpr",
"matrixExprStart",
"matrixExprAttributes",
2217 "matrixExprAttributeList",
"exprAttribute", 0
2224 static const yytype_uint16 yytoknum[] =
2226 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2227 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2228 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2229 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2230 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2231 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2232 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2233 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
2234 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
2235 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2236 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
2237 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
2238 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
2239 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
2240 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
2241 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
2242 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
2243 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
2244 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
2245 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
2246 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
2247 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
2248 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
2249 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
2250 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
2251 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
2252 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
2253 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
2254 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
2255 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
2256 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
2257 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
2258 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
2259 585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
2260 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
2261 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
2262 615, 616, 617, 618, 619, 620, 621, 622, 623, 624,
2263 625, 626, 627, 628, 629, 630, 631, 632, 633, 634,
2264 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
2265 645, 646, 647, 648, 649, 650, 651, 652, 653, 654,
2266 655, 656, 657, 658, 659, 32, 9, 13, 10
2271 static const yytype_uint16
yyr1[] =
2273 0, 409, 410, 411, 411, 412, 413, 413, 414, 414,
2274 415, 416, 417, 417, 418, 419, 420, 420, 421, 421,
2275 422, 422, 422, 422, 423, 424, 425, 426, 427, 427,
2276 428, 429, 430, 430, 431, 432, 433, 433, 434, 434,
2277 435, 436, 437, 437, 438, 439, 440, 440, 441, 441,
2278 441, 441, 441, 441, 441, 441, 441, 442, 443, 444,
2279 445, 445, 446, 446, 446, 447, 447, 448, 449, 450,
2280 451, 451, 452, 452, 452, 453, 453, 454, 455, 456,
2281 457, 457, 458, 458, 458, 459, 459, 460, 461, 461,
2282 462, 463, 464, 465, 465, 466, 466, 467, 467, 468,
2283 469, 470, 471, 472, 472, 473, 473, 473, 473, 474,
2284 475, 475, 476, 477, 478, 479, 479, 480, 480, 480,
2285 480, 480, 480, 481, 481, 482, 483, 484, 485, 485,
2286 486, 486, 486, 486, 486, 486, 486, 487, 487, 488,
2287 489, 490, 491, 491, 492, 492, 492, 492, 493, 493,
2288 494, 495, 496, 497, 497, 498, 498, 498, 499, 500,
2289 501, 502, 503, 503, 504, 505, 506, 507, 508, 509,
2290 510, 511, 512, 512, 513, 513, 513, 514, 515, 516,
2291 517, 518, 518, 519, 520, 521, 522, 523, 524, 524,
2292 525, 526, 526, 527, 528, 529, 529, 530, 531, 532,
2293 532, 533, 534, 535, 536, 536, 537, 538, 539, 540,
2294 540, 541, 541, 541, 541, 541, 541, 541, 541, 541,
2295 541, 541, 542, 542, 543, 543, 544, 545, 546, 546,
2296 547, 548, 549, 550, 550, 551, 552, 553, 554, 554,
2297 555, 555, 555, 555, 555, 555, 555, 555, 556, 556,
2298 557, 557, 558, 559, 560, 560, 561, 562, 563, 564,
2299 564, 565, 566, 567, 568, 568, 569, 569, 569, 569,
2300 569, 569, 569, 569, 569, 570, 570, 571, 571, 572,
2301 573, 573, 574, 574, 575, 575, 576, 577, 578, 579,
2302 579, 581, 580, 582, 582, 583, 583, 584, 585, 585,
2303 586, 586, 587, 587, 588, 589, 590, 590, 591, 591,
2304 592, 592, 594, 593, 595, 596, 596, 597, 597, 598,
2305 598, 599, 599, 600, 601, 602, 602, 603, 603, 604,
2306 604, 606, 605, 607, 608, 608, 609, 609, 610, 610,
2307 611, 611, 612, 613, 613, 614, 614, 615, 615, 617,
2308 616, 618, 619, 619, 621, 620, 622, 622, 623, 623,
2309 624, 624, 625, 626, 627, 628, 629, 630, 631, 632,
2310 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
2311 643, 644, 645, 646, 647, 648, 649, 650, 650, 651,
2312 652, 652, 653, 653, 653, 653, 654, 654, 655, 655,
2313 656, 657, 658, 659, 659, 660, 660, 661, 662, 663,
2314 663, 664, 664, 665, 666, 666, 667, 667, 668, 669,
2315 670, 670, 671, 672, 673, 673, 674, 674, 675, 676,
2316 677, 678, 679, 679, 680, 680, 680, 680, 680, 538,
2317 552, 566, 681, 681, 682, 683, 684, 685, 685, 686,
2318 687, 688, 688, 689, 689, 689, 689, 689, 689, 689,
2319 689, 689, 690, 690, 691, 691, 692, 692, 692, 692,
2320 692, 692, 692, 692, 693, 694, 695, 696, 696, 697,
2321 697, 698, 699, 699, 700, 701, 702, 702, 703, 704,
2322 705, 706, 707, 708, 708, 709, 710, 711, 712, 713,
2323 714, 714, 715, 716, 717, 718, 719, 720, 721, 721,
2324 722, 722, 723, 724, 724, 725, 726, 727, 727, 728,
2325 729, 730, 731, 732, 733, 734, 734, 735, 735, 736,
2326 737, 737, 738, 738, 739, 740, 740, 741, 742, 743,
2327 744, 744, 745, 746, 747, 748, 748, 749, 749, 750,
2328 750, 751, 752, 753, 753, 754, 755, 756, 756, 757,
2329 758, 759, 760, 761, 761, 762, 762, 763, 764, 764,
2330 765, 765, 766, 767, 767, 768, 769, 770, 770, 771,
2331 772, 773, 773, 774, 775, 776, 777, 778, 779, 779,
2332 780, 780, 781, 782, 782, 783, 784, 785, 785, 786,
2333 787, 788, 789, 790, 791, 792, 792, 793, 793, 794,
2334 795, 795, 796, 796, 797, 798, 798, 799, 800, 801,
2335 801, 802, 803, 804, 804, 805, 805, 805, 806, 807,
2336 808, 809, 809, 810, 811, 812, 813, 814, 815, 816,
2337 817, 818, 819, 819, 820, 821, 822, 823, 824, 825,
2338 826, 826, 827, 828, 829, 830, 830, 831, 832, 833,
2339 834, 834, 835, 835, 835, 835, 836, 836, 837, 838,
2340 839, 840, 841, 842, 843, 844, 845, 846, 847, 848,
2341 849, 850, 851, 852, 853, 854, 855, 856, 857, 858,
2342 859, 860, 861, 862, 862, 863, 864, 865, 865, 866,
2343 867, 868, 868, 869, 870, 871, 871, 872, 873, 874,
2344 874, 875, 876, 877, 877, 878, 879, 880, 880, 881,
2345 882, 883, 883, 884, 885, 886, 886, 887, 888, 889,
2346 889, 890, 891, 892, 892, 893, 894, 895, 896, 896,
2347 897, 897, 898, 898, 898, 898, 898, 898, 898, 898,
2348 898, 898, 898, 898, 898, 898, 898, 898, 898, 898,
2349 898, 898, 898, 898, 898, 898, 898, 898, 898, 900,
2350 899, 901, 901, 903, 902, 904, 904, 906, 905, 908,
2351 907, 910, 909, 912, 911, 914, 913, 916, 915, 918,
2352 917, 920, 919, 922, 921, 924, 923, 926, 925, 928,
2353 927, 929, 930, 931, 933, 932, 935, 934, 937, 936,
2354 939, 938, 941, 940, 942, 943, 944, 944, 945, 945,
2355 946, 946, 946, 948, 947, 950, 949, 951, 951, 952,
2356 951, 953, 953, 954, 954, 955, 956, 958, 957, 959,
2357 959, 961, 960, 962, 962, 964, 963, 965, 965, 967,
2358 966, 968, 968, 970, 969, 971, 971, 972, 972, 972,
2359 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
2360 972, 972, 972, 972, 972, 972, 973, 974, 975, 975,
2361 639, 976, 977, 978, 978, 979, 980, 981, 982, 982,
2362 983, 984, 985, 986, 986, 987, 988, 989, 990, 991,
2363 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001,
2364 1002, 1002, 1003, 1004, 1005, 1006, 1006, 1007, 1008, 1009,
2365 1010, 1011, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,
2366 1019, 1020, 1021, 1022, 1023, 1025, 1024, 1026, 1026, 1027,
2367 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1036,
2368 1037, 1038, 1039, 1040, 1040, 1041, 1042, 1043, 1043, 1044,
2369 1045, 1046, 1047, 1047, 1048, 1048
2375 0, 2, 8, 1, 1, 1, 1, 0, 0, 4,
2376 1, 5, 0, 2, 3, 1, 1, 2, 0, 2,
2377 1, 1, 1, 1, 4, 4, 4, 4, 0, 3,
2378 1, 1, 1, 1, 1, 3, 0, 2, 0, 3,
2379 1, 1, 1, 1, 1, 3, 0, 2, 1, 1,
2380 1, 1, 1, 1, 1, 1, 1, 3, 1, 1,
2381 0, 2, 1, 1, 1, 1, 2, 3, 1, 1,
2382 0, 2, 1, 1, 1, 1, 2, 3, 1, 1,
2383 0, 2, 1, 1, 1, 1, 3, 1, 0, 2,
2384 3, 1, 1, 0, 2, 1, 1, 1, 2, 1,
2385 3, 1, 1, 0, 2, 1, 1, 1, 1, 4,
2386 1, 2, 3, 1, 1, 0, 2, 1, 1, 1,
2387 1, 1, 1, 1, 2, 3, 1, 1, 0, 2,
2388 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
2389 1, 1, 0, 2, 1, 1, 1, 1, 1, 2,
2390 3, 1, 1, 0, 2, 1, 1, 1, 3, 3,
2391 1, 1, 1, 1, 1, 3, 1, 1, 1, 3,
2392 1, 1, 0, 2, 1, 1, 1, 3, 3, 1,
2393 1, 1, 1, 1, 3, 1, 1, 1, 0, 2,
2394 1, 1, 1, 1, 6, 0, 3, 1, 1, 1,
2395 1, 1, 3, 1, 0, 2, 3, 1, 1, 0,
2396 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2397 1, 1, 1, 2, 0, 3, 1, 1, 1, 1,
2398 1, 3, 1, 0, 2, 3, 1, 1, 0, 2,
2399 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
2400 0, 3, 1, 1, 1, 1, 1, 3, 1, 0,
2401 2, 3, 1, 1, 0, 2, 1, 1, 1, 1,
2402 1, 1, 1, 1, 1, 1, 2, 0, 2, 1,
2403 1, 1, 1, 2, 3, 3, 4, 1, 5, 1,
2404 2, 0, 4, 0, 3, 1, 3, 3, 0, 3,
2405 0, 2, 1, 1, 4, 4, 1, 3, 1, 2,
2406 1, 2, 0, 4, 4, 1, 2, 0, 3, 0,
2407 2, 1, 1, 4, 4, 1, 3, 1, 2, 1,
2408 2, 0, 4, 4, 1, 2, 0, 3, 0, 2,
2409 1, 1, 4, 1, 3, 1, 2, 1, 2, 0,
2410 4, 4, 1, 2, 0, 4, 1, 2, 0, 2,
2411 1, 1, 4, 4, 4, 4, 4, 4, 4, 4,
2412 4, 4, 4, 4, 4, 3, 4, 4, 4, 4,
2413 4, 4, 4, 4, 4, 4, 4, 3, 3, 2,
2414 0, 2, 1, 1, 1, 1, 1, 1, 0, 2,
2415 3, 1, 1, 0, 2, 1, 1, 3, 3, 1,
2416 1, 2, 1, 3, 1, 1, 0, 2, 3, 1,
2417 0, 1, 3, 3, 1, 1, 2, 1, 3, 3,
2418 1, 1, 0, 2, 1, 1, 1, 1, 1, 1,
2419 1, 1, 1, 1, 1, 3, 2, 0, 3, 1,
2420 1, 0, 2, 1, 1, 1, 1, 1, 1, 1,
2421 1, 1, 2, 1, 0, 2, 1, 1, 1, 1,
2422 1, 1, 1, 1, 4, 1, 1, 0, 2, 1,
2423 1, 3, 0, 2, 2, 1, 1, 1, 1, 3,
2424 1, 2, 1, 1, 1, 1, 3, 1, 2, 1,
2425 1, 1, 1, 3, 1, 4, 1, 1, 0, 2,
2426 1, 1, 3, 0, 2, 2, 1, 1, 1, 1,
2427 3, 1, 4, 1, 1, 0, 2, 1, 1, 3,
2428 0, 2, 0, 2, 1, 1, 1, 1, 3, 1,
2429 0, 2, 3, 1, 1, 0, 2, 1, 1, 1,
2430 1, 1, 3, 0, 2, 3, 1, 0, 1, 3,
2431 4, 1, 1, 0, 2, 1, 1, 3, 0, 2,
2432 0, 2, 1, 1, 1, 1, 3, 0, 2, 2,
2433 1, 1, 1, 1, 3, 4, 1, 1, 0, 2,
2434 1, 1, 3, 0, 2, 2, 1, 1, 1, 1,
2435 3, 1, 4, 1, 1, 0, 2, 1, 1, 3,
2436 0, 2, 0, 2, 1, 1, 1, 1, 3, 0,
2437 2, 3, 1, 0, 2, 1, 1, 1, 3, 5,
2438 1, 0, 1, 1, 3, 1, 1, 5, 1, 3,
2439 1, 1, 1, 1, 1, 3, 1, 3, 1, 1,
2440 1, 1, 1, 3, 1, 0, 2, 3, 1, 1,
2441 0, 2, 1, 1, 1, 1, 1, 1, 1, 3,
2442 2, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2443 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2444 4, 4, 4, 1, 1, 1, 3, 1, 1, 1,
2445 3, 1, 1, 1, 3, 1, 1, 1, 3, 1,
2446 1, 1, 3, 1, 1, 1, 3, 1, 1, 1,
2447 3, 1, 1, 1, 3, 1, 1, 1, 3, 0,
2448 4, 1, 5, 0, 2, 5, 1, 1, 0, 2,
2449 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2450 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2451 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
2452 3, 1, 2, 0, 3, 1, 2, 0, 5, 0,
2453 5, 0, 5, 0, 4, 0, 5, 0, 5, 0,
2454 4, 0, 4, 0, 4, 0, 4, 0, 4, 0,
2455 4, 3, 1, 1, 0, 4, 0, 6, 0, 4,
2456 0, 4, 0, 4, 3, 1, 1, 2, 0, 2,
2457 1, 1, 1, 0, 4, 0, 4, 1, 2, 0,
2458 4, 0, 2, 1, 1, 4, 4, 0, 4, 0,
2459 2, 0, 4, 0, 2, 0, 4, 0, 2, 0,
2460 4, 0, 2, 0, 4, 0, 2, 1, 1, 1,
2461 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2462 1, 1, 1, 1, 1, 1, 3, 1, 1, 2,
2463 4, 3, 1, 1, 2, 4, 3, 1, 1, 2,
2464 4, 3, 1, 1, 2, 4, 2, 1, 2, 2,
2465 1, 3, 2, 1, 2, 2, 1, 2, 4, 1,
2466 0, 1, 2, 4, 1, 0, 1, 2, 3, 2,
2467 1, 1, 2, 2, 1, 3, 2, 1, 2, 2,
2468 1, 3, 2, 1, 3, 0, 4, 0, 2, 2,
2469 1, 3, 2, 1, 6, 2, 1, 2, 0, 3,
2470 1, 1, 4, 1, 1, 1, 3, 0, 2, 5,
2479 8, 10, 0, 729, 0, 1, 731, 28, 0, 0,
2480 12, 30, 38, 0, 0, 733, 0, 0, 40, 188,
2481 0, 0, 0, 31, 0, 0, 0, 9, 15, 13,
2482 18, 190, 277, 0, 0, 0, 41, 0, 34, 36,
2483 29, 32, 33, 0, 730, 736, 734, 738, 0, 0,
2484 279, 0, 0, 193, 195, 189, 191, 192, 0, 44,
2485 46, 39, 42, 43, 0, 0, 0, 0, 737, 11,
2486 16, 0, 0, 0, 0, 0, 14, 19, 20, 21,
2487 22, 23, 4, 3, 7, 282, 354, 278, 280, 281,
2488 197, 224, 0, 0, 0, 365, 35, 430, 37, 432,
2489 732, 0, 707, 0, 0, 740, 741, 705, 706, 739,
2490 17, 0, 0, 0, 390, 6, 2, 5, 283, 287,
2491 0, 0, 0, 0, 226, 250, 0, 0, 0, 198,
2492 366, 45, 58, 68, 78, 101, 113, 126, 140, 151,
2493 170, 47, 48, 60, 49, 70, 50, 80, 51, 103,
2494 52, 115, 53, 128, 54, 142, 55, 153, 56, 172,
2495 0, 431, 787, 779, 781, 785, 789, 791, 837, 853,
2496 799, 783, 806, 793, 795, 797, 825, 802, 804, 845,
2497 841, 849, 769, 773, 777, 815, 808, 810, 812, 0,
2498 763, 764, 744, 745, 747, 748, 749, 750, 752, 753,
2499 754, 756, 755, 757, 759, 0, 760, 758, 766, 767,
2500 768, 742, 818, 743, 746, 765, 761, 762, 751, 0,
2501 0, 0, 0, 0, 0, 0, 284, 0, 291, 285,
2502 358, 252, 948, 0, 0, 0, 227, 0, 201, 204,
2503 196, 199, 200, 0, 59, 0, 69, 0, 79, 0,
2504 102, 0, 114, 0, 127, 0, 141, 0, 152, 0,
2505 171, 444, 447, 429, 442, 443, 699, 0, 715, 0,
2506 711, 0, 0, 0, 433, 436, 435, 437, 697, 698,
2507 434, 709, 710, 438, 713, 714, 0, 0, 0, 0,
2508 0, 0, 839, 855, 0, 0, 0, 0, 0, 0,
2509 831, 0, 847, 843, 851, 0, 0, 0, 0, 0,
2510 0, 735, 0, 0, 708, 0, 24, 25, 27, 26,
2511 390, 390, 392, 393, 394, 395, 391, 0, 291, 289,
2512 0, 0, 950, 0, 0, 0, 0, 253, 0, 230,
2513 233, 225, 228, 229, 0, 0, 65, 0, 57, 61,
2514 63, 62, 64, 75, 0, 67, 71, 73, 72, 74,
2515 85, 88, 77, 81, 83, 82, 84, 110, 0, 100,
2516 0, 104, 107, 106, 105, 108, 123, 0, 112, 0,
2517 0, 0, 116, 121, 120, 122, 118, 117, 119, 137,
2518 0, 125, 0, 0, 129, 134, 133, 135, 136, 131,
2519 130, 132, 148, 0, 139, 0, 143, 147, 145, 144,
2520 146, 0, 150, 154, 156, 155, 157, 0, 169, 173,
2521 175, 174, 176, 449, 0, 464, 451, 0, 0, 0,
2522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2524 0, 771, 0, 770, 775, 0, 774, 0, 882, 887,
2525 892, 897, 900, 909, 914, 920, 924, 927, 930, 933,
2526 935, 940, 943, 946, 877, 903, 906, 0, 857, 0,
2527 858, 0, 859, 0, 860, 0, 861, 0, 862, 0,
2528 875, 0, 863, 0, 864, 910, 865, 915, 866, 0,
2529 867, 0, 868, 0, 869, 0, 870, 0, 871, 872,
2530 0, 873, 0, 874, 0, 0, 0, 803, 801, 816,
2531 0, 719, 0, 0, 820, 821, 717, 718, 814, 819,
2532 822, 687, 387, 388, 0, 286, 290, 293, 356, 0,
2533 0, 0, 355, 359, 360, 361, 194, 0, 0, 951,
2534 0, 256, 259, 251, 254, 255, 0, 0, 367, 203,
2535 207, 202, 205, 209, 66, 76, 0, 87, 111, 0,
2536 124, 390, 0, 0, 138, 0, 0, 149, 0, 160,
2537 0, 0, 179, 0, 0, 445, 446, 0, 450, 700,
2538 716, 712, 0, 0, 0, 0, 0, 0, 790, 792,
2539 838, 840, 854, 856, 800, 784, 0, 794, 796, 798,
2540 827, 0, 0, 0, 826, 832, 833, 834, 805, 846,
2541 848, 842, 844, 850, 852, 772, 776, 0, 937, 809,
2542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2543 896, 0, 899, 0, 902, 0, 905, 0, 0, 911,
2544 0, 916, 921, 0, 919, 0, 923, 0, 926, 0,
2545 929, 0, 932, 0, 939, 0, 942, 0, 945, 811,
2546 813, 817, 0, 823, 0, 0, 0, 357, 390, 390,
2547 0, 955, 957, 949, 953, 954, 0, 0, 368, 232,
2548 236, 231, 234, 238, 0, 208, 99, 86, 91, 89,
2549 93, 0, 0, 0, 0, 0, 0, 375, 168, 158,
2550 0, 0, 161, 187, 177, 0, 180, 635, 475, 506,
2551 523, 561, 603, 586, 630, 465, 466, 477, 467, 508,
2552 468, 525, 469, 563, 470, 588, 471, 605, 472, 631,
2553 473, 0, 463, 0, 448, 695, 0, 0, 0, 0,
2554 0, 0, 0, 0, 0, 452, 453, 456, 457, 458,
2555 459, 461, 454, 455, 460, 693, 694, 672, 674, 788,
2556 780, 782, 786, 0, 828, 829, 0, 390, 778, 0,
2557 0, 0, 878, 0, 876, 0, 883, 0, 881, 0,
2558 888, 0, 886, 0, 893, 0, 891, 898, 0, 904,
2559 907, 0, 0, 0, 922, 0, 928, 0, 0, 0,
2560 0, 947, 720, 0, 288, 0, 295, 298, 292, 0,
2561 0, 0, 0, 369, 258, 262, 257, 260, 264, 0,
2562 237, 222, 0, 206, 0, 0, 0, 0, 0, 0,
2563 727, 0, 0, 210, 215, 217, 213, 214, 216, 218,
2564 212, 211, 221, 219, 220, 725, 726, 0, 92, 109,
2565 370, 371, 372, 373, 374, 0, 164, 398, 159, 162,
2566 163, 183, 398, 178, 181, 182, 0, 476, 0, 507,
2567 0, 524, 0, 562, 0, 587, 0, 604, 0, 632,
2568 0, 0, 636, 462, 390, 0, 0, 0, 0, 0,
2569 0, 0, 390, 807, 0, 0, 0, 936, 938, 0,
2570 0, 879, 0, 884, 0, 889, 0, 894, 901, 918,
2571 0, 908, 0, 913, 925, 931, 934, 941, 0, 824,
2572 294, 300, 0, 317, 363, 364, 952, 956, 960, 958,
2573 962, 0, 263, 248, 0, 235, 0, 0, 0, 239,
2574 245, 242, 243, 244, 241, 240, 247, 246, 223, 0,
2575 0, 0, 0, 0, 0, 0, 0, 97, 0, 90,
2576 94, 96, 95, 0, 0, 0, 166, 396, 397, 0,
2577 185, 0, 703, 0, 0, 478, 479, 480, 701, 702,
2578 0, 509, 510, 511, 0, 526, 527, 528, 0, 564,
2579 565, 566, 0, 589, 590, 591, 0, 606, 607, 608,
2580 0, 0, 0, 634, 696, 0, 0, 0, 0, 0,
2581 0, 0, 0, 0, 830, 836, 835, 376, 880, 885,
2582 890, 895, 912, 917, 0, 0, 296, 319, 336, 0,
2583 961, 275, 0, 261, 0, 265, 270, 272, 268, 269,
2584 271, 273, 267, 266, 274, 249, 0, 0, 0, 0,
2585 0, 0, 0, 0, 0, 728, 0, 98, 673, 0,
2586 0, 167, 165, 401, 399, 403, 186, 184, 485, 474,
2587 482, 0, 0, 0, 513, 505, 530, 522, 568, 560,
2588 593, 585, 610, 602, 0, 0, 640, 0, 0, 389,
2589 678, 691, 692, 679, 680, 681, 682, 690, 0, 308,
2590 312, 0, 0, 301, 302, 303, 299, 306, 0, 338,
2591 297, 0, 964, 965, 963, 276, 0, 0, 0, 0,
2592 377, 384, 378, 385, 380, 381, 689, 0, 412, 0,
2593 408, 409, 410, 0, 402, 492, 0, 0, 0, 488,
2594 398, 484, 486, 487, 704, 0, 0, 0, 532, 0,
2595 570, 0, 0, 0, 612, 0, 633, 629, 671, 648,
2596 655, 0, 0, 641, 944, 309, 312, 310, 0, 0,
2597 0, 327, 331, 0, 0, 320, 321, 322, 318, 325,
2598 0, 0, 0, 382, 386, 379, 0, 0, 411, 0,
2599 400, 0, 404, 406, 405, 481, 499, 483, 0, 495,
2600 398, 491, 493, 494, 490, 0, 675, 516, 514, 0,
2601 512, 534, 531, 0, 529, 572, 569, 0, 567, 596,
2602 594, 0, 592, 614, 611, 0, 609, 0, 0, 649,
2603 644, 398, 639, 642, 643, 307, 311, 0, 0, 0,
2604 328, 331, 329, 0, 0, 0, 345, 349, 0, 0,
2605 339, 340, 337, 343, 341, 959, 383, 677, 413, 0,
2606 0, 502, 416, 498, 500, 501, 497, 0, 489, 519,
2607 398, 515, 517, 518, 537, 540, 533, 535, 536, 575,
2608 577, 571, 573, 574, 599, 398, 595, 597, 598, 617,
2609 619, 613, 615, 616, 638, 658, 637, 656, 660, 652,
2610 398, 647, 650, 651, 646, 0, 0, 0, 305, 304,
2611 326, 330, 0, 0, 0, 346, 349, 347, 0, 0,
2612 0, 407, 0, 0, 504, 414, 415, 0, 496, 521,
2613 0, 0, 539, 0, 601, 0, 0, 0, 659, 654,
2614 0, 645, 0, 315, 0, 313, 0, 0, 324, 323,
2615 344, 348, 0, 0, 0, 688, 0, 419, 417, 420,
2616 503, 520, 538, 543, 541, 545, 580, 576, 578, 0,
2617 600, 622, 618, 620, 623, 668, 447, 657, 666, 667,
2618 390, 390, 661, 662, 663, 664, 665, 653, 0, 316,
2619 0, 334, 0, 332, 0, 0, 362, 342, 427, 0,
2620 423, 424, 425, 0, 421, 0, 544, 583, 0, 579,
2621 581, 582, 0, 464, 0, 0, 0, 314, 0, 335,
2622 0, 352, 0, 350, 0, 426, 390, 418, 551, 553,
2623 542, 549, 550, 0, 0, 546, 547, 548, 0, 0,
2624 723, 0, 624, 621, 627, 626, 625, 721, 722, 670,
2625 669, 390, 390, 333, 0, 353, 428, 0, 0, 0,
2626 390, 584, 0, 0, 683, 684, 351, 422, 552, 556,
2627 554, 557, 0, 0, 628, 724, 0, 0, 558, 676,
2628 686, 390, 0, 555, 0, 0, 685, 559
2634 -1, 2, 84, 116, 117, 3, 4, 10, 17, 29,
2635 30, 76, 49, 77, 78, 79, 80, 81, 12, 13,
2636 22, 40, 41, 42, 65, 19, 20, 35, 61, 62,
2637 63, 94, 141, 142, 143, 243, 244, 349, 348, 144,
2638 145, 245, 246, 356, 355, 146, 147, 247, 248, 363,
2639 362, 566, 567, 699, 700, 857, 858, 970, 969, 697,
2640 148, 149, 249, 250, 371, 372, 369, 150, 151, 251,
2641 252, 382, 378, 152, 153, 253, 254, 394, 391, 154,
2642 155, 255, 256, 406, 404, 156, 157, 257, 258, 413,
2643 412, 580, 581, 711, 868, 869, 870, 975, 1072, 709,
2644 158, 159, 259, 260, 419, 418, 583, 584, 715, 873,
2645 874, 875, 979, 1077, 714, 32, 33, 55, 56, 57,
2646 91, 92, 128, 240, 241, 242, 561, 345, 562, 563,
2647 694, 695, 843, 833, 125, 126, 235, 341, 342, 343,
2648 691, 557, 692, 693, 829, 830, 949, 945, 232, 233,
2649 336, 553, 554, 555, 826, 687, 827, 828, 941, 942,
2650 1045, 1043, 51, 52, 87, 88, 89, 120, 121, 228,
2651 328, 329, 330, 676, 818, 932, 933, 1035, 1113, 1114,
2652 1115, 1116, 1117, 1176, 1177, 1178, 1317, 1355, 1038, 1118,
2653 1185, 1186, 1187, 1188, 1189, 1251, 1252, 1253, 1357, 1403,
2654 1120, 1190, 1260, 1261, 1262, 1263, 1326, 1327, 1328, 1405,
2655 1433, 122, 123, 542, 331, 543, 1264, 544, 545, 23,
2656 36, 129, 236, 337, 383, 384, 385, 397, 398, 407,
2657 632, 844, 845, 950, 846, 847, 952, 1049, 848, 849,
2658 953, 224, 1014, 225, 326, 976, 977, 1074, 1075, 1143,
2659 1144, 1202, 1200, 978, 1140, 1141, 1142, 1334, 1335, 1368,
2660 1369, 1413, 1437, 1336, 1410, 1411, 1412, 98, 99, 160,
2661 161, 274, 263, 264, 265, 424, 425, 426, 587, 588,
2662 755, 744, 586, 725, 726, 727, 876, 877, 985, 1079,
2663 1146, 1080, 1081, 1151, 1152, 1153, 1215, 1147, 1148, 1211,
2664 1212, 1213, 1277, 1207, 1208, 1273, 1274, 1275, 1337, 728,
2665 729, 878, 879, 991, 1085, 1157, 1218, 1219, 1281, 1282,
2666 1283, 1340, 730, 731, 880, 881, 995, 1087, 1159, 1222,
2667 1223, 1286, 1287, 1288, 1341, 1342, 1374, 1375, 1415, 1416,
2668 1445, 1440, 1441, 1442, 1468, 1480, 1481, 1487, 1493, 732,
2669 733, 882, 883, 999, 1089, 1161, 1226, 1227, 1291, 1292,
2670 1293, 1343, 1378, 1379, 1419, 1420, 1421, 734, 735, 884,
2671 885, 1003, 1091, 1163, 1230, 1231, 1296, 1297, 1298, 1345,
2672 736, 737, 886, 887, 1007, 1093, 1165, 1234, 1235, 1301,
2673 1302, 1303, 1346, 1383, 1384, 1422, 1452, 1453, 738, 739,
2674 888, 1167, 740, 741, 891, 1013, 1306, 1097, 1098, 1172,
2675 1242, 1243, 1244, 1315, 1170, 1171, 1238, 1311, 1312, 1313,
2676 1350, 1237, 1307, 1308, 1347, 1348, 1392, 1387, 1388, 1389,
2677 1424, 892, 275, 712, 276, 986, 1446, 1070, 756, 757,
2678 758, 759, 760, 1393, 1394, 1488, 1447, 105, 1203, 852,
2679 761, 762, 763, 764, 765, 766, 277, 278, 279, 987,
2680 988, 989, 106, 107, 108, 280, 281, 282, 283, 284,
2681 285, 525, 526, 527, 1456, 1457, 1458, 854, 855, 856,
2682 7, 8, 15, 25, 46, 47, 67, 68, 109, 189,
2683 190, 305, 453, 191, 306, 456, 192, 307, 193, 287,
2684 194, 288, 195, 295, 196, 289, 197, 286, 198, 290,
2685 199, 291, 200, 297, 201, 298, 202, 299, 203, 294,
2686 204, 205, 518, 206, 301, 207, 296, 208, 308, 209,
2687 309, 210, 310, 211, 212, 528, 313, 529, 530, 813,
2688 213, 300, 614, 904, 446, 615, 616, 617, 214, 292,
2689 438, 215, 303, 449, 216, 302, 448, 217, 304, 450,
2690 218, 293, 439, 477, 478, 479, 784, 480, 481, 788,
2691 634, 482, 483, 792, 636, 484, 485, 796, 638, 486,
2692 487, 640, 488, 489, 642, 490, 491, 644, 492, 493,
2693 646, 494, 495, 648, 921, 496, 497, 650, 923, 649,
2694 498, 499, 654, 500, 501, 656, 502, 503, 658, 504,
2695 505, 660, 506, 507, 662, 508, 628, 779, 509, 510,
2696 664, 511, 512, 666, 513, 514, 668, 333, 334, 548,
2697 549, 683, 684, 685, 822, 939, 940, 1039, 1040, 1124
2702 #define YYPACT_NINF -1315
2705 14, -1315, 97, -189, 104, -1315, -1315, -78, -166, 119,
2706 -1315, -1315, 96, -24, 138, -1315, 143, 60, -1315, -89,
2707 142, 155, 126, -1315, 161, -177, 162, -1315, -1315, -1315,
2708 -1315, -1315, 99, 195, 172, 202, -1315, 177, -1315, -1315,
2709 -1315, -1315, -1315, 199, -1315, -1315, -1315, -1315, 167, 41,
2710 -1315, 182, 221, -1315, -58, -1315, -1315, -1315, 197, -1315,
2711 -1315, -1315, -1315, -1315, 212, 48, 224, 230, -50, -1315,
2712 -1315, 213, 258, 262, 268, 270, -1315, -1315, -1315, -1315,
2713 -1315, -1315, -1315, -1315, 223, -1315, 220, -1315, -1315, -1315,
2714 -1315, 33, 101, 282, 301, -1315, -1315, -1315, -1315, -1315,
2715 -1315, 590, -1315, 330, 338, -1315, -1315, -1315, -1315, -1315,
2716 -1315, 344, 348, 373, -1315, -1315, -1315, -1315, -1315, -1315,
2717 290, 353, 300, 305, -1315, 132, 209, 414, 293, -1315,
2718 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2719 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2720 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2721 316, -26, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2722 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2723 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 94,
2724 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2725 -1315, -1315, -1315, -1315, -1315, 590, -1315, -1315, -1315, -1315,
2726 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 419,
2727 452, 453, 467, 490, 495, 37, -1315, 497, -1315, -1315,
2728 -1315, -1315, 139, 328, 501, 319, -1315, 507, -1315, -1315,
2729 -1315, -1315, -1315, 321, -16, 329, -16, 331, -16, 334,
2730 50, 361, 259, 363, 254, 365, 22, 500, -16, 504,
2731 -16, -1315, 311, -1315, -1315, -1315, -1315, 535, -1315, 537,
2732 -1315, 539, 536, 538, -1315, -1315, -1315, -1315, -1315, -1315,
2733 -1315, -1315, -1315, -1315, -1315, -1315, 590, 590, 590, 590,
2734 590, 590, -1315, -1315, 590, 590, 590, 590, 590, 590,
2735 -1315, 590, -1315, -1315, -1315, 371, 382, 590, 135, 135,
2736 135, -1315, 204, 35, -1315, 544, -1315, -1315, -1315, -1315,
2737 -1315, -1315, -1315, -1315, -1315, -1315, -1315, 548, 477, -1315,
2738 492, 90, -1315, 320, 249, 552, 384, -1315, 558, -1315,
2739 -1315, -1315, -1315, -1315, 562, 152, -1315, 517, -1315, -1315,
2740 -1315, -1315, -1315, -1315, 523, -1315, -1315, -1315, -1315, -1315,
2741 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 524, -1315,
2742 570, -1315, -1315, -1315, -1315, -1315, -1315, 525, -1315, 572,
2743 573, 575, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2744 526, -1315, 576, 578, -1315, -1315, -1315, -1315, -1315, -1315,
2745 -1315, -1315, -1315, 527, -1315, 584, -1315, -1315, -1315, -1315,
2746 -1315, 518, -1315, -1315, -1315, -1315, -1315, 515, -1315, -1315,
2747 -1315, -1315, -1315, -1315, 387, -1315, -1315, 585, 587, 588,
2748 592, 593, 590, 590, 590, 590, 277, 274, 299, 206,
2749 271, 272, 590, 264, 269, 265, 43, 256, 318, 411,
2750 450, -1315, 252, -1315, -1315, 253, -1315, 590, -1315, -1315,
2751 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2752 -1315, -1315, -1315, -1315, -1315, -1315, -1315, 246, -1315, 19,
2753 -1315, 418, -1315, 420, -1315, 422, -1315, 135, -1315, 135,
2754 -1315, 590, -1315, 135, -1315, 217, -1315, 217, -1315, 388,
2755 -1315, 135, -1315, 135, -1315, 135, -1315, 135, -1315, -1315,
2756 590, -1315, 590, -1315, 135, 257, 261, -1315, -1315, -1315,
2757 263, -1315, 628, 667, -1315, -1315, -1315, -1315, -1315, -1315,
2758 -1315, -1315, -159, -159, 664, -1315, -1315, 542, -1315, 595,
2759 668, 672, -1315, -1315, -1315, -1315, -1315, 674, 392, -1315,
2760 678, -1315, -1315, -1315, -1315, -1315, 679, 156, -1315, -1315,
2761 -1315, -1315, -1315, -1315, -1315, -1315, 633, 618, -1315, 683,
2762 -1315, -1315, 684, 685, -1315, 686, 687, -1315, 688, -1315,
2763 631, 577, -1315, 630, 577, -1315, 89, 397, 136, -1315,
2764 -1315, -1315, 689, 690, 385, 386, 380, 381, -1315, -1315,
2765 -1315, -1315, -1315, -1315, -1315, -1315, 590, -1315, -1315, -1315,
2766 -1315, 505, 694, 697, -1315, -1315, -1315, -1315, -1315, -1315,
2767 -1315, -1315, -1315, -1315, -1315, -1315, -1315, 350, -1315, -1315,
2768 700, 703, 399, 704, 401, 705, 403, 706, 405, 345,
2769 -1315, 135, -1315, 322, -1315, 317, -1315, 713, 707, -1315,
2770 708, -1315, -1315, 343, -1315, 135, -1315, 340, -1315, 135,
2771 -1315, 135, -1315, 135, -1315, 590, -1315, 333, -1315, -1315,
2772 -1315, -1315, 717, -1315, 718, 730, 408, -1315, -1315, -1315,
2773 729, -1315, -1315, -1315, -1315, -1315, 731, 171, -1315, -1315,
2774 -1315, -1315, -1315, -1315, 423, 42, -1315, -1315, -1315, -1315,
2775 -1315, 733, 735, 737, 739, 741, 743, -1315, -1315, -1315,
2776 745, 425, -1315, -1315, -1315, 427, -1315, -1315, -1315, -1315,
2777 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2778 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 303,
2779 -1315, 594, -1315, 532, -1315, -1315, 752, 749, 753, 772,
2780 774, 776, 778, 780, 782, -1315, -1315, -1315, -1315, -1315,
2781 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2782 -1315, -1315, -1315, 456, -1315, -1315, 788, -1315, -1315, -114,
2783 790, 792, -1315, 404, -1315, 796, -1315, 560, -1315, 802,
2784 -1315, 564, -1315, 804, -1315, 565, -1315, -1315, 449, -1315,
2785 -1315, 808, 135, 135, -1315, 432, -1315, 439, 441, 435,
2786 590, -1315, -1315, 821, -1315, 823, -1315, 568, -1315, 827,
2787 829, 831, -178, -1315, -1315, -1315, -1315, -1315, -1315, 438,
2788 87, -1315, 597, -1315, 833, 837, 839, 843, 845, 847,
2789 -1315, 854, 851, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2790 -1315, -1315, -1315, -1315, -1315, -1315, -1315, 440, -54, -1315,
2791 -1315, -1315, -1315, -1315, -1315, 855, -1315, 747, -1315, -1315,
2792 -1315, -1315, 747, -1315, -1315, -1315, 852, -40, 860, -40,
2793 862, -40, 863, -40, 864, -40, 865, -40, 866, -1315,
2794 857, 867, -1315, -1315, -1315, 873, 874, 875, 876, 877,
2795 878, 879, -1315, -1315, 543, 880, 881, -1315, -1315, 882,
2796 883, -1315, 884, -1315, 885, -1315, 886, -1315, -1315, -1315,
2797 512, -1315, 519, -1315, -1315, -1315, -1315, -1315, 590, -1315,
2798 -1315, -1315, 815, 640, -1315, -1315, -1315, -1315, -1315, -1315,
2799 -1315, 442, 170, -1315, 648, -1315, 891, 892, 893, -1315,
2800 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 896,
2801 898, 900, 902, 904, 906, 908, 912, -1315, 849, -1315,
2802 -1315, -1315, -1315, 914, 716, 853, -1315, 816, -1315, 859,
2803 -1315, 699, -1315, 929, 928, -1315, -1315, -1315, -1315, -1315,
2804 699, -1315, -1315, -1315, 699, -1315, -1315, -1315, 699, -1315,
2805 -1315, -1315, 699, -1315, -1315, -1315, 699, -1315, -1315, -1315,
2806 135, 932, 748, -1315, -1315, 23, 934, 936, 938, 940,
2807 942, 944, 946, 948, -1315, -1315, -1315, -1315, -1315, -1315,
2808 -1315, -1315, -1315, -1315, 135, 39, -1315, -1315, 701, 947,
2809 -50, -1315, 709, -1315, 952, -1315, -1315, -1315, -1315, -1315,
2810 -1315, -1315, -1315, -1315, -1315, -1315, 955, 958, 959, 960,
2811 961, 962, 963, 964, 965, -1315, 966, -1315, -1315, 967,
2812 444, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2813 734, 446, 968, 971, 734, -1315, 734, -1315, 734, -1315,
2814 734, -1315, 734, -1315, 726, 970, -1315, 727, 577, -1315,
2815 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 589, -1315,
2816 714, 974, 975, -1315, -1315, -1315, -1315, -1315, 51, -1315,
2817 -1315, 135, -1315, -1315, -1315, -1315, 973, 976, 977, 978,
2818 -1315, -1315, -1315, -1315, -1315, -1315, -1315, 981, -1315, 44,
2819 -1315, -1315, -1315, 979, 267, -1315, 770, 754, 455, -1315,
2820 747, -1315, -1315, -1315, -1315, 983, 757, 773, 759, 775,
2821 760, 777, 761, 771, 763, 779, -1315, -1315, -1315, -1315,
2822 -1315, 577, 457, -1315, -1315, -1315, 736, -1315, 740, 994,
2823 998, -1315, 750, 999, 1001, -1315, -1315, -1315, -1315, -1315,
2824 53, 695, 1002, -1315, -1315, -1315, 1003, 894, -1315, 1006,
2825 -1315, 1005, -1315, -1315, -1315, -1315, -1315, -1315, 459, -1315,
2826 747, -1315, -1315, -1315, -1315, 784, -1315, -1315, -1315, 461,
2827 -1315, -1315, -1315, 463, -1315, -1315, -1315, 468, -1315, -1315,
2828 -1315, 470, -1315, -1315, -1315, 472, -1315, 276, 476, -1315,
2829 -1315, 747, -1315, -1315, -1315, -1315, -1315, 819, 1009, 1010,
2830 -1315, 762, -1315, 764, 1015, 1016, -1315, 765, 1017, 1018,
2831 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 910,
2832 1022, -1315, 909, -1315, -1315, -1315, -1315, 797, -1315, -1315,
2833 747, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2834 -1315, -1315, -1315, -1315, -1315, 747, -1315, -1315, -1315, -1315,
2835 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2836 747, -1315, -1315, -1315, -1315, 812, 1024, 478, -1315, -1315,
2837 -1315, -1315, 835, 1025, 1026, -1315, 781, -1315, 783, 1029,
2838 1030, -1315, 1031, 716, -1315, 925, -1315, 805, -1315, -1315,
2839 809, 810, 935, -75, -1315, 813, -57, 480, -35, -1315,
2840 826, -1315, 1038, -1315, 786, -1315, 1040, 482, -1315, -1315,
2841 -1315, -1315, 856, 1044, 1045, -1315, 484, -1315, -1315, 858,
2842 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 486,
2843 -1315, -1315, -1315, -1315, -1315, -1315, 311, -1315, -1315, -1315,
2844 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 1046, -1315,
2845 1050, -1315, 801, -1315, 1051, 491, -1315, -1315, -1315, 66,
2846 -1315, -1315, -1315, 1047, -1315, 566, -105, -1315, 590, -1315,
2847 -1315, -1315, 28, -1315, 850, 1055, 1056, -1315, 1057, -1315,
2848 1058, -1315, 803, -1315, 945, -1315, -1315, -1315, -1315, -1315,
2849 -1315, -1315, -1315, 1059, 1060, -1315, -1315, -1315, 956, 1064,
2850 -1315, 1070, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 89,
2851 -1315, -1315, -1315, -1315, 1066, -1315, -1315, 969, -38, 1069,
2852 -1315, -1315, 972, 1068, -1315, -1315, -1315, -1315, -1315, -1315,
2853 -1315, 887, 1071, 1072, -1315, -1315, 1073, 1067, -1315, -1315,
2854 -1315, -1315, 1077, -1315, 1076, 861, -1315, -1315
2860 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2861 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2862 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2863 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2864 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2865 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2866 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2867 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2868 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2869 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2870 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2871 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2872 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2873 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2874 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2875 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2876 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2877 -1315, 766, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2878 -1315, -1315, -1315, -1315, -99, -1315, -1315, -1315, -1315, -1315,
2879 -1315, -1315, -1315, -1315, -1315, -1315, -164, -1315, -1315, -1315,
2880 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -238, -1315, -1315,
2881 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2882 -1315, -1315, -1315, -1315, 836, 838, -1315, -1315, -1315, -1315,
2883 -1315, 147, 149, -1315, -783, -1315, -1315, -1315, 151, 153,
2884 -1315, -567, -1314, -319, -1315, -863, -1315, -1315, -1315, -1315,
2885 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2886 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2887 -1315, -1315, -1315, -1315, -1315, -1315, -290, -1315, -1315, -1315,
2888 -1315, -1315, -326, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2889 -1315, -734, -1315, -1315, -1315, -1315, -1315, -926, -1315, -1315,
2890 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2891 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2892 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2893 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2894 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2895 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2896 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2897 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2898 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2899 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2900 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2901 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2902 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2903 -1315, -1315, -236, -579, -233, -570, -1315, -235, -1315, -1315,
2904 -1315, -1315, -1315, -1315, -1315, -1315, -1315, 61, -322, -801,
2905 -1315, -1315, -1315, -1315, -1315, -1315, -218, -1315, -1315, -517,
2906 -1315, -1315, -706, -1315, -1315, -246, -1315, -1315, -310, -1315,
2907 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2908 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -205,
2909 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2910 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2911 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2912 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2913 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2914 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2915 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2916 -1315, -1315, -1315, -303, -1315, -1315, -1315, -1315, -1315, -1315,
2917 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2918 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2919 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 606,
2920 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2921 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2922 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2923 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315
2930 #define YYTABLE_NINF -1
2933 312, 532, 533, 524, 702, 716, 515, 516, 350, 980,
2934 357, 351, 364, 358, 373, 365, 386, 374, 399, 387,
2935 408, 400, 414, 409, 420, 415, 352, 421, 359, 956,
2936 366, 1099, 375, 889, 388, 405, 401, 1376, 410, 1449,
2937 416, 630, 422, 320, 321, 519, 520, 951, 1197, 1109,
2938 1110, 70, 71, 610, 611, 1381, 1, 971, 72, 73,
2939 1111, 1181, 1182, 1256, 1257, 834, 835, 836, 837, 838,
2940 1434, 839, 1183, 1443, 1258, 1478, 1425, 1426, 370, 268,
2941 269, 432, 433, 434, 435, 436, 437, 102, 103, 440,
2942 441, 442, 443, 444, 445, 1444, 447, 5, 268, 269,
2943 538, 539, 457, 27, 28, 266, 267, 268, 269, 540,
2944 541, 819, 820, 6, 838, 266, 267, 946, 9, 947,
2945 948, 982, 983, 11, 270, 271, 44, 16, 45, 984,
2946 937, 458, 938, 270, 271, 459, 38, 39, 14, 460,
2947 272, 273, 18, 842, 21, 104, 24, 1474, 1475, 26,
2948 272, 273, 31, 266, 267, 1390, 1391, 34, 1156, 1048,
2949 1158, 1377, 1160, 37, 1162, 1198, 1164, 43, 268, 269,
2950 48, 1450, 1451, 266, 267, 50, 521, 522, 69, 1382,
2951 58, 266, 267, 64, 639, 90, 641, 1435, 272, 273,
2952 645, 840, 841, 834, 835, 836, 837, 838, 655, 1479,
2953 657, 1044, 659, 93, 661, 53, 54, 66, 272, 273,
2954 906, 667, 59, 60, 631, 1112, 272, 273, 266, 267,
2955 95, 1184, 82, 83, 1201, 842, 1259, 594, 595, 596,
2956 597, 85, 86, 601, 603, 100, 74, 606, 612, 842,
2957 75, 101, 613, 620, 622, 624, 322, 323, 324, 325,
2958 96, 97, 627, 272, 273, 461, 1084, 462, 110, 463,
2959 1086, 464, 115, 465, 1088, 466, 111, 467, 1090, 468,
2960 112, 469, 1092, 470, 907, 471, 113, 472, 114, 473,
2961 124, 474, 127, 475, 842, 476, 643, 1214, 379, 380,
2962 130, 392, 393, 379, 380, 381, 717, 118, 119, 745,
2963 746, 266, 267, 238, 239, 663, 718, 665, 719, 992,
2964 720, 996, 721, 1000, 722, 1004, 723, 1008, 747, 748,
2965 749, 750, 751, 752, 753, 754, 261, 262, 724, 339,
2966 340, 346, 347, 219, 1123, 1023, 272, 273, 798, 353,
2967 354, 360, 361, 1204, 367, 368, 220, 1276, 131, 132,
2968 221, 133, 805, 134, 222, 135, 807, 136, 808, 137,
2969 809, 138, 993, 139, 997, 140, 1001, 226, 1005, 227,
2970 1009, 376, 377, 389, 390, 402, 403, 229, 1314, 223,
2971 458, 451, 452, 231, 459, 266, 267, 230, 460, 234,
2972 266, 267, 454, 455, 551, 552, 559, 560, 652, 653,
2973 311, 773, 681, 682, 689, 690, 775, 742, 743, 782,
2974 783, 786, 787, 790, 791, 794, 795, 1339, 816, 817,
2975 272, 273, 237, 824, 825, 272, 273, 314, 322, 323,
2976 324, 325, 1344, 831, 832, 866, 867, 871, 872, 523,
2977 102, 103, 322, 323, 324, 325, 332, 1349, 943, 944,
2978 967, 968, 1041, 1042, 1138, 1139, 1149, 1150, 315, 850,
2979 810, 316, 851, 1201, 842, 1209, 1210, 1240, 1241, 1271,
2980 1272, 1279, 1280, 1284, 1285, 317, 908, 853, 1289, 1290,
2981 1294, 1295, 1299, 1300, 1304, 1305, 1309, 1310, 1353, 1354,
2982 1385, 1386, 1401, 1402, 1408, 1409, 1417, 1418, 318, 920,
2983 922, 1431, 1432, 319, 461, 327, 462, 335, 463, 338,
2984 464, 411, 465, 344, 466, 417, 467, 423, 468, 1173,
2985 469, 162, 470, 163, 471, 164, 472, 165, 473, 166,
2986 474, 167, 475, 168, 476, 169, 602, 170, 427, 171,
2987 428, 172, 429, 173, 430, 174, 431, 175, 972, 176,
2988 517, 177, 531, 178, 534, 179, 535, 180, 547, 181,
2989 550, 182, 546, 183, 556, 184, 564, 185, 1414, 186,
2990 558, 187, 537, 188, 565, 1015, 1438, 1439, 569, 568,
2991 571, 572, 570, 573, 575, 574, 576, 578, 577, 582,
2992 579, 585, 1239, 589, 954, 590, 591, 955, 592, 593,
2993 599, 598, 607, 604, 618, 928, 605, 609, 625, 608,
2994 629, 626, 957, 633, 162, 635, 163, 637, 164, 647,
2995 165, 1455, 166, 669, 167, 671, 168, 600, 169, 670,
2996 170, 672, 171, 162, 172, 163, 173, 164, 174, 165,
2997 175, 166, 176, 167, 177, 168, 178, 169, 179, 170,
2998 180, 171, 181, 172, 182, 173, 183, 174, 184, 175,
2999 185, 176, 186, 177, 187, 178, 188, 179, 619, 180,
3000 673, 181, 674, 182, 675, 183, 678, 184, 677, 185,
3001 679, 186, 680, 187, 686, 188, 696, 688, 698, 701,
3002 703, 704, 705, 706, 708, 713, 707, 767, 768, 710,
3003 771, 769, 776, 772, 770, 777, 1052, 1094, 780, 1053,
3004 778, 781, 785, 789, 793, 797, 801, 800, 802, 803,
3005 799, 804, 806, 1034, 1054, 812, 162, 811, 163, 814,
3006 164, 1108, 165, 815, 166, 821, 167, 893, 168, 823,
3007 169, 859, 170, 860, 171, 861, 172, 862, 173, 863,
3008 174, 864, 175, 865, 176, 894, 177, 895, 178, 890,
3009 179, 896, 180, 621, 181, 162, 182, 163, 183, 164,
3010 184, 165, 185, 166, 186, 167, 187, 168, 188, 169,
3011 897, 170, 898, 171, 899, 172, 900, 173, 901, 174,
3012 902, 175, 903, 176, 905, 177, 909, 178, 910, 179,
3013 911, 180, 912, 181, 623, 182, 913, 183, 914, 184,
3014 916, 185, 924, 186, 915, 187, 919, 188, 1191, 917,
3015 162, 918, 163, 925, 164, 927, 165, 926, 166, 929,
3016 167, 930, 168, 931, 169, 934, 170, 935, 171, 936,
3017 172, 959, 173, 958, 174, 960, 175, 961, 176, 774,
3018 177, 962, 178, 963, 179, 964, 180, 965, 181, 966,
3019 182, 973, 183, 981, 184, 1011, 185, 974, 186, 1467,
3020 187, 990, 188, 994, 998, 1002, 1006, 1010, 1012, 1016,
3021 1017, 1018, 1019, 1020, 1021, 1022, 1032, 1024, 1025, 1026,
3022 1027, 1028, 1029, 1030, 1031, 1033, 1036, 1037, 1055, 1056,
3023 1057, 1058, 1059, 1483, 1060, 162, 1061, 163, 1062, 164,
3024 1063, 165, 1064, 166, 1069, 167, 1065, 168, 1066, 169,
3025 1067, 170, 1068, 171, 1494, 172, 1071, 173, 1073, 174,
3026 1078, 175, 1082, 176, 1076, 177, 1083, 178, 1095, 179,
3027 1169, 180, 1100, 181, 1101, 182, 1102, 183, 1103, 184,
3028 1104, 185, 1105, 186, 1106, 187, 1107, 188, 1121, 1096,
3029 1126, 1127, 1119, 1125, 1128, 1129, 1166, 1145, 1130, 1131,
3030 1132, 1133, 1134, 1135, 1136, 1137, 1154, 1155, 1168, 1192,
3031 1175, 1174, 1179, 1180, 1193, 1194, 1195, 1196, 1205, 1206,
3032 1199, 1216, 1217, 1220, 1221, 1225, 1229, 1224, 1233, 1232,
3033 1248, 1228, 1245, 1247, 1249, 1236, 1265, 1254, 1250, 1255,
3034 1266, 1267, 1269, 1270, 1316, 1268, 1278, 1318, 1319, 1322,
3035 1320, 1323, 1324, 1331, 1351, 1329, 1330, 1325, 1332, 1333,
3036 1356, 1338, 1352, 1358, 1359, 1363, 1364, 1367, 1396, 1365,
3037 1397, 1370, 1362, 1360, 1398, 1371, 1372, 1373, 1400, 1380,
3038 1399, 1404, 1406, 1407, 1427, 842, 1428, 1429, 1436, 1430,
3039 1460, 1461, 1462, 1465, 1464, 1463, 1466, 1469, 1470, 1471,
3040 1472, 1015, 1015, 1473, 1476, 1482, 1485, 1246, 1492, 1489,
3041 1490, 1491, 1477, 1495, 1496, 1484, 1486, 1321, 1361, 1046,
3042 395, 1047, 396, 1050, 536, 1051, 1423, 1459, 1366, 1497,
3043 1454, 1122, 1395, 651, 0, 0, 0, 0, 0, 0,
3044 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3045 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3046 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3047 0, 0, 1015, 1015, 0, 0, 0, 0, 0, 0,
3048 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3050 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3052 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3053 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3059 205, 320, 321, 313, 571, 584, 309, 310, 244, 872,
3060 246, 244, 248, 246, 250, 248, 252, 250, 254, 252,
3061 256, 254, 258, 256, 260, 258, 244, 260, 246, 830,
3062 248, 8, 250, 739, 252, 13, 254, 112, 256, 11,
3063 258, 22, 260, 6, 7, 10, 11, 830, 4, 10,
3064 11, 10, 11, 10, 11, 112, 42, 858, 17, 18,
3065 21, 10, 11, 10, 11, 23, 24, 25, 26, 27,
3066 4, 29, 21, 178, 21, 113, 1390, 1391, 28, 133,
3067 134, 286, 287, 288, 289, 290, 291, 137, 138, 294,
3068 295, 296, 297, 298, 299, 200, 301, 0, 133, 134,
3069 10, 11, 307, 43, 44, 131, 132, 133, 134, 19,
3070 20, 678, 679, 302, 27, 131, 132, 30, 14, 32,
3071 33, 161, 162, 201, 159, 160, 303, 8, 305, 169,
3072 308, 245, 310, 159, 160, 249, 10, 11, 304, 253,
3073 166, 167, 46, 197, 168, 195, 8, 1461, 1462, 6,
3074 166, 167, 241, 131, 132, 190, 191, 15, 1084, 942,
3075 1086, 236, 1088, 8, 1090, 121, 1092, 6, 133, 134,
3076 8, 143, 144, 131, 132, 76, 141, 142, 11, 236,
3077 8, 131, 132, 6, 487, 243, 489, 121, 166, 167,
3078 493, 149, 150, 23, 24, 25, 26, 27, 501, 237,
3079 503, 31, 505, 6, 507, 10, 11, 8, 166, 167,
3080 777, 514, 10, 11, 195, 176, 166, 167, 131, 132,
3081 8, 170, 40, 41, 196, 197, 173, 432, 433, 434,
3082 435, 10, 11, 438, 439, 11, 195, 442, 195, 197,
3083 199, 11, 199, 448, 449, 450, 405, 406, 407, 408,
3084 202, 203, 457, 166, 167, 369, 990, 371, 45, 373,
3085 994, 375, 39, 377, 998, 379, 8, 381, 1002, 383,
3086 8, 385, 1006, 387, 388, 389, 8, 391, 8, 393,
3087 247, 395, 181, 397, 197, 399, 491, 1150, 34, 35,
3088 8, 37, 38, 34, 35, 36, 207, 77, 78, 163,
3089 164, 131, 132, 10, 11, 510, 217, 512, 219, 879,
3090 221, 881, 223, 883, 225, 885, 227, 887, 182, 183,
3091 184, 185, 186, 187, 188, 189, 10, 11, 239, 10,
3092 11, 10, 11, 3, 1040, 902, 166, 167, 641, 10,
3093 11, 10, 11, 1144, 10, 11, 8, 1210, 47, 48,
3094 6, 50, 655, 52, 6, 54, 659, 56, 661, 58,
3095 663, 60, 879, 62, 881, 64, 883, 77, 885, 16,
3096 887, 10, 11, 10, 11, 10, 11, 77, 1241, 6,
3097 245, 10, 11, 251, 249, 131, 132, 82, 253, 180,
3098 131, 132, 10, 11, 10, 11, 244, 245, 10, 11,
3099 306, 606, 10, 11, 248, 249, 611, 10, 11, 10,
3100 11, 10, 11, 10, 11, 10, 11, 1280, 10, 11,
3101 166, 167, 8, 252, 253, 166, 167, 8, 405, 406,
3102 407, 408, 1295, 10, 11, 10, 11, 10, 11, 404,
3103 137, 138, 405, 406, 407, 408, 307, 1310, 10, 11,
3104 10, 11, 10, 11, 10, 11, 10, 11, 6, 695,
3105 665, 8, 695, 196, 197, 10, 11, 10, 11, 10,
3106 11, 10, 11, 10, 11, 8, 779, 695, 10, 11,
3107 10, 11, 10, 11, 208, 209, 10, 11, 10, 11,
3108 10, 11, 10, 11, 10, 11, 10, 11, 8, 802,
3109 803, 10, 11, 8, 369, 8, 371, 179, 373, 8,
3110 375, 11, 377, 6, 379, 11, 381, 206, 383, 1098,
3111 385, 315, 387, 317, 389, 319, 391, 321, 393, 323,
3112 395, 325, 397, 327, 399, 329, 330, 331, 3, 333,
3113 3, 335, 3, 337, 8, 339, 8, 341, 858, 343,
3114 346, 345, 8, 347, 6, 349, 79, 351, 309, 353,
3115 8, 355, 242, 357, 6, 359, 49, 361, 1369, 363,
3116 8, 365, 80, 367, 51, 894, 10, 11, 8, 55,
3117 8, 8, 57, 8, 8, 59, 8, 3, 61, 74,
3118 72, 204, 1171, 8, 830, 8, 8, 830, 6, 6,
3119 326, 324, 338, 332, 348, 810, 334, 342, 356, 340,
3120 364, 358, 830, 195, 315, 195, 317, 195, 319, 402,
3121 321, 1422, 323, 366, 325, 362, 327, 328, 329, 368,
3122 331, 3, 333, 315, 335, 317, 337, 319, 339, 321,
3123 341, 323, 343, 325, 345, 327, 347, 329, 349, 331,
3124 351, 333, 353, 335, 355, 337, 357, 339, 359, 341,
3125 361, 343, 363, 345, 365, 347, 367, 349, 350, 351,
3126 3, 353, 8, 355, 132, 357, 8, 359, 83, 361,
3127 8, 363, 8, 365, 6, 367, 53, 8, 70, 6,
3128 6, 6, 6, 6, 63, 65, 8, 8, 8, 122,
3129 320, 316, 8, 322, 318, 8, 942, 1010, 8, 942,
3130 360, 8, 8, 8, 8, 370, 3, 400, 11, 11,
3131 398, 378, 382, 928, 942, 8, 315, 394, 317, 11,
3132 319, 1034, 321, 3, 323, 6, 325, 205, 327, 8,
3133 329, 8, 331, 8, 333, 8, 335, 8, 337, 8,
3134 339, 8, 341, 8, 343, 3, 345, 8, 347, 165,
3135 349, 8, 351, 352, 353, 315, 355, 317, 357, 319,
3136 359, 321, 361, 323, 363, 325, 365, 327, 367, 329,
3137 8, 331, 8, 333, 8, 335, 8, 337, 8, 339,
3138 8, 341, 336, 343, 6, 345, 6, 347, 6, 349,
3139 396, 351, 6, 353, 354, 355, 246, 357, 6, 359,
3140 6, 361, 380, 363, 250, 365, 8, 367, 1121, 254,
3141 315, 372, 317, 384, 319, 390, 321, 386, 323, 8,
3142 325, 8, 327, 265, 329, 8, 331, 8, 333, 8,
3143 335, 8, 337, 246, 339, 8, 341, 8, 343, 344,
3144 345, 8, 347, 8, 349, 8, 351, 3, 353, 8,
3145 355, 6, 357, 11, 359, 8, 361, 120, 363, 1436,
3146 365, 11, 367, 11, 11, 11, 11, 11, 11, 6,
3147 6, 6, 6, 6, 6, 6, 374, 344, 8, 8,
3148 8, 8, 8, 8, 8, 376, 81, 257, 250, 8,
3149 8, 8, 6, 1470, 6, 315, 6, 317, 6, 319,
3150 6, 321, 6, 323, 198, 325, 8, 327, 6, 329,
3151 71, 331, 8, 333, 1491, 335, 73, 337, 112, 339,
3152 231, 341, 3, 343, 75, 345, 8, 347, 6, 349,
3153 213, 351, 8, 353, 8, 355, 8, 357, 8, 359,
3154 8, 361, 8, 363, 8, 365, 8, 367, 11, 211,
3155 8, 6, 261, 254, 6, 6, 240, 233, 8, 8,
3156 8, 8, 8, 8, 8, 8, 8, 6, 8, 6,
3157 266, 392, 8, 8, 8, 8, 8, 6, 218, 235,
3158 11, 8, 235, 220, 235, 235, 235, 222, 235, 228,
3159 6, 224, 266, 263, 6, 226, 311, 8, 258, 8,
3160 8, 8, 6, 8, 195, 121, 232, 8, 8, 255,
3161 258, 6, 6, 113, 212, 8, 8, 262, 6, 120,
3162 195, 234, 8, 8, 8, 6, 6, 112, 1348, 8,
3163 214, 236, 259, 262, 6, 236, 236, 112, 8, 236,
3164 264, 195, 8, 8, 8, 197, 6, 256, 11, 8,
3165 210, 6, 6, 260, 6, 8, 121, 8, 8, 113,
3166 6, 1390, 1391, 3, 8, 6, 8, 1176, 11, 8,
3167 8, 8, 113, 6, 8, 113, 199, 1251, 1326, 942,
3168 254, 942, 254, 942, 328, 942, 1386, 1423, 1333, 238,
3169 1422, 1040, 1348, 497, -1, -1, -1, -1, -1, -1,
3170 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3171 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3172 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3173 -1, -1, 1461, 1462, -1, -1, -1, -1, -1, -1,
3174 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3175 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3176 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3177 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3178 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3179 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3187 0, 42, 410, 414, 415, 0, 302, 889, 890, 14,
3188 416, 201, 427, 428, 304, 891, 8, 417, 46, 434,
3189 435, 168, 429, 628, 8, 892, 6, 43, 44, 418,
3190 419, 241, 524, 525, 15, 436, 629, 8, 10, 11,
3191 430, 431, 432, 6, 303, 305, 893, 894, 8, 421,
3192 76, 571, 572, 10, 11, 526, 527, 528, 8, 10,
3193 11, 437, 438, 439, 6, 433, 8, 895, 896, 11,
3194 10, 11, 17, 18, 195, 199, 420, 422, 423, 424,
3195 425, 426, 40, 41, 411, 10, 11, 573, 574, 575,
3196 243, 529, 530, 6, 440, 8, 202, 203, 676, 677,
3197 11, 11, 137, 138, 195, 856, 871, 872, 873, 897,
3198 45, 8, 8, 8, 8, 39, 412, 413, 77, 78,
3199 576, 577, 620, 621, 247, 543, 544, 181, 531, 630,
3200 8, 47, 48, 50, 52, 54, 56, 58, 60, 62,
3201 64, 441, 442, 443, 448, 449, 454, 455, 469, 470,
3202 476, 477, 482, 483, 488, 489, 494, 495, 509, 510,
3203 678, 679, 315, 317, 319, 321, 323, 325, 327, 329,
3204 331, 333, 335, 337, 339, 341, 343, 345, 347, 349,
3205 351, 353, 355, 357, 359, 361, 363, 365, 367, 898,
3206 899, 902, 905, 907, 909, 911, 913, 915, 917, 919,
3207 921, 923, 925, 927, 929, 930, 932, 934, 936, 938,
3208 940, 942, 943, 949, 957, 960, 963, 966, 969, 3,
3209 8, 6, 6, 6, 650, 652, 77, 16, 578, 77,
3210 82, 251, 557, 558, 180, 545, 631, 8, 10, 11,
3211 532, 533, 534, 444, 445, 450, 451, 456, 457, 471,
3212 472, 478, 479, 484, 485, 490, 491, 496, 497, 511,
3213 512, 10, 11, 681, 682, 683, 131, 132, 133, 134,
3214 159, 160, 166, 167, 680, 841, 843, 865, 866, 867,
3215 874, 875, 876, 877, 878, 879, 916, 908, 910, 914,
3216 918, 920, 958, 970, 928, 912, 935, 922, 924, 926,
3217 950, 933, 964, 961, 967, 900, 903, 906, 937, 939,
3218 941, 306, 898, 945, 8, 6, 8, 8, 8, 8,
3219 6, 7, 405, 406, 407, 408, 653, 8, 579, 580,
3220 581, 623, 307, 1036, 1037, 179, 559, 632, 8, 10,
3221 11, 546, 547, 548, 6, 536, 10, 11, 447, 446,
3222 841, 843, 865, 10, 11, 453, 452, 841, 843, 865,
3223 10, 11, 459, 458, 841, 843, 865, 10, 11, 475,
3224 28, 473, 474, 841, 843, 865, 10, 11, 481, 34,
3225 35, 36, 480, 633, 634, 635, 841, 843, 865, 10,
3226 11, 487, 37, 38, 486, 633, 634, 636, 637, 841,
3227 843, 865, 10, 11, 493, 13, 492, 638, 841, 843,
3228 865, 11, 499, 498, 841, 843, 865, 11, 514, 513,
3229 841, 843, 865, 206, 684, 685, 686, 3, 3, 3,
3230 8, 8, 898, 898, 898, 898, 898, 898, 959, 971,
3231 898, 898, 898, 898, 898, 898, 953, 898, 965, 962,
3232 968, 10, 11, 901, 10, 11, 904, 898, 245, 249,
3233 253, 369, 371, 373, 375, 377, 379, 381, 383, 385,
3234 387, 389, 391, 393, 395, 397, 399, 972, 973, 974,
3235 976, 977, 980, 981, 984, 985, 988, 989, 991, 992,
3236 994, 995, 997, 998, 1000, 1001, 1004, 1005, 1009, 1010,
3237 1012, 1013, 1015, 1016, 1018, 1019, 1021, 1022, 1024, 1027,
3238 1028, 1030, 1031, 1033, 1034, 972, 972, 346, 931, 10,
3239 11, 141, 142, 404, 877, 880, 881, 882, 944, 946,
3240 947, 8, 652, 652, 6, 79, 580, 80, 10, 11,
3241 19, 20, 622, 624, 626, 627, 242, 309, 1038, 1039,
3242 8, 10, 11, 560, 561, 562, 6, 550, 8, 244,
3243 245, 535, 537, 538, 49, 51, 460, 461, 55, 8,
3244 57, 8, 8, 8, 59, 8, 8, 61, 3, 72,
3245 500, 501, 74, 515, 516, 204, 691, 687, 688, 8,
3246 8, 8, 6, 6, 898, 898, 898, 898, 324, 326,
3247 328, 898, 330, 898, 332, 334, 898, 338, 340, 342,
3248 10, 11, 195, 199, 951, 954, 955, 956, 348, 350,
3249 898, 352, 898, 354, 898, 356, 358, 898, 1025, 364,
3250 22, 195, 639, 195, 979, 195, 983, 195, 987, 972,
3251 990, 972, 993, 898, 996, 972, 999, 402, 1002, 1008,
3252 1006, 1008, 10, 11, 1011, 972, 1014, 972, 1017, 972,
3253 1020, 972, 1023, 898, 1029, 898, 1032, 972, 1035, 366,
3254 368, 362, 3, 3, 8, 132, 582, 83, 8, 8,
3255 8, 10, 11, 1040, 1041, 1042, 6, 564, 8, 248,
3256 249, 549, 551, 552, 539, 540, 53, 468, 70, 462,
3257 463, 6, 650, 6, 6, 6, 6, 8, 63, 508,
3258 122, 502, 842, 65, 523, 517, 842, 207, 217, 219,
3259 221, 223, 225, 227, 239, 692, 693, 694, 718, 719,
3260 731, 732, 758, 759, 776, 777, 789, 790, 807, 808,
3261 811, 812, 10, 11, 690, 163, 164, 182, 183, 184,
3262 185, 186, 187, 188, 189, 689, 847, 848, 849, 850,
3263 851, 859, 860, 861, 862, 863, 864, 8, 8, 316,
3264 318, 320, 322, 898, 344, 898, 8, 8, 360, 1026,
3265 8, 8, 10, 11, 975, 8, 10, 11, 978, 8,
3266 10, 11, 982, 8, 10, 11, 986, 370, 972, 398,
3267 400, 3, 11, 11, 378, 972, 382, 972, 972, 972,
3268 898, 394, 8, 948, 11, 3, 10, 11, 583, 650,
3269 650, 6, 1043, 8, 252, 253, 563, 565, 566, 553,
3270 554, 10, 11, 542, 23, 24, 25, 26, 27, 29,
3271 149, 150, 197, 541, 640, 641, 643, 644, 647, 648,
3272 841, 843, 858, 865, 886, 887, 888, 464, 465, 8,
3273 8, 8, 8, 8, 8, 8, 10, 11, 503, 504,
3274 505, 10, 11, 518, 519, 520, 695, 696, 720, 721,
3275 733, 734, 760, 761, 778, 779, 791, 792, 809, 871,
3276 165, 813, 840, 205, 3, 8, 8, 8, 8, 8,
3277 8, 8, 8, 336, 952, 6, 650, 388, 972, 6,
3278 6, 396, 6, 246, 6, 250, 6, 254, 372, 8,
3279 972, 1003, 972, 1007, 380, 384, 386, 390, 898, 8,
3280 8, 265, 584, 585, 8, 8, 8, 308, 310, 1044,
3281 1045, 567, 568, 10, 11, 556, 30, 32, 33, 555,
3282 642, 643, 645, 649, 841, 843, 858, 865, 246, 8,
3283 8, 8, 8, 8, 8, 3, 8, 10, 11, 467,
3284 466, 858, 877, 6, 120, 506, 654, 655, 662, 521,
3285 654, 11, 161, 162, 169, 697, 844, 868, 869, 870,
3286 11, 722, 844, 868, 11, 735, 844, 868, 11, 762,
3287 844, 868, 11, 780, 844, 868, 11, 793, 844, 868,
3288 11, 8, 11, 814, 651, 652, 6, 6, 6, 6,
3289 6, 6, 6, 650, 344, 8, 8, 8, 8, 8,
3290 8, 8, 374, 376, 898, 586, 81, 257, 597, 1046,
3291 1047, 10, 11, 570, 31, 569, 640, 641, 643, 646,
3292 647, 648, 841, 843, 865, 250, 8, 8, 8, 6,
3293 6, 6, 6, 6, 6, 8, 6, 71, 8, 198,
3294 846, 73, 507, 112, 656, 657, 75, 522, 231, 698,
3295 700, 701, 3, 8, 700, 723, 700, 736, 700, 763,
3296 700, 781, 700, 794, 972, 6, 211, 816, 817, 8,
3297 8, 8, 8, 8, 8, 8, 8, 8, 972, 10,
3298 11, 21, 176, 587, 588, 589, 590, 591, 598, 261,
3299 609, 11, 856, 871, 1048, 254, 8, 6, 6, 6,
3300 8, 8, 8, 8, 8, 8, 8, 8, 10, 11,
3301 663, 664, 665, 658, 659, 233, 699, 706, 707, 10,
3302 11, 702, 703, 704, 8, 6, 706, 724, 706, 737,
3303 706, 764, 706, 782, 706, 795, 240, 810, 8, 213,
3304 823, 824, 818, 842, 392, 266, 592, 593, 594, 8,
3305 8, 10, 11, 21, 170, 599, 600, 601, 602, 603,
3306 610, 972, 6, 8, 8, 8, 6, 4, 121, 11,
3307 661, 196, 660, 857, 858, 218, 235, 712, 713, 10,
3308 11, 708, 709, 710, 654, 705, 8, 235, 725, 726,
3309 220, 235, 738, 739, 222, 235, 765, 766, 224, 235,
3310 783, 784, 228, 235, 796, 797, 226, 830, 825, 842,
3311 10, 11, 819, 820, 821, 266, 593, 263, 6, 6,
3312 258, 604, 605, 606, 8, 8, 10, 11, 21, 173,
3313 611, 612, 613, 614, 625, 311, 8, 8, 121, 6,
3314 8, 10, 11, 714, 715, 716, 654, 711, 232, 10,
3315 11, 727, 728, 729, 10, 11, 740, 741, 742, 10,
3316 11, 767, 768, 769, 10, 11, 785, 786, 787, 10,
3317 11, 798, 799, 800, 208, 209, 815, 831, 832, 10,
3318 11, 826, 827, 828, 654, 822, 195, 595, 8, 8,
3319 258, 605, 255, 6, 6, 262, 615, 616, 617, 8,
3320 8, 113, 6, 120, 666, 667, 672, 717, 234, 654,
3321 730, 743, 744, 770, 654, 788, 801, 833, 834, 654,
3322 829, 212, 8, 10, 11, 596, 195, 607, 8, 8,
3323 262, 616, 259, 6, 6, 8, 846, 112, 668, 669,
3324 236, 236, 236, 112, 745, 746, 112, 236, 771, 772,
3325 236, 112, 236, 802, 803, 10, 11, 836, 837, 838,
3326 190, 191, 835, 852, 853, 874, 877, 214, 6, 264,
3327 8, 10, 11, 608, 195, 618, 8, 8, 10, 11,
3328 673, 674, 675, 670, 858, 747, 748, 10, 11, 773,
3329 774, 775, 804, 685, 839, 651, 651, 8, 6, 256,
3330 8, 10, 11, 619, 4, 121, 11, 671, 10, 11,
3331 750, 751, 752, 178, 200, 749, 845, 855, 898, 11,
3332 143, 144, 805, 806, 857, 858, 883, 884, 885, 691,
3333 210, 6, 6, 8, 6, 260, 121, 650, 753, 8,
3334 8, 113, 6, 3, 651, 651, 8, 113, 113, 237,
3335 754, 755, 6, 650, 113, 8, 199, 756, 854, 8,
3336 8, 8, 11, 757, 650, 6, 8, 238
3339 #define yyerrok (yyerrstatus = 0)
3340 #define yyclearin (yychar = YYEMPTY)
3341 #define YYEMPTY (-2)
3344 #define YYACCEPT goto yyacceptlab
3345 #define YYABORT goto yyabortlab
3346 #define YYERROR goto yyerrorlab
3353 #define YYFAIL goto yyerrlab
3355 #define YYRECOVERING() (!!yyerrstatus)
3357 #define YYBACKUP(Token, Value) \
3359 if (yychar == YYEMPTY && yylen == 1) \
3363 yytoken = YYTRANSLATE (yychar); \
3369 yyerror (&yylloc, osinstance, parserData, osglData, osnlData, YY_("syntax error: cannot back up")); \
3376 #define YYERRCODE 256
3383 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
3384 #ifndef YYLLOC_DEFAULT
3385 # define YYLLOC_DEFAULT(Current, Rhs, N) \
3389 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
3390 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
3391 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
3392 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
3396 (Current).first_line = (Current).last_line = \
3397 YYRHSLOC (Rhs, 0).last_line; \
3398 (Current).first_column = (Current).last_column = \
3399 YYRHSLOC (Rhs, 0).last_column; \
3409 #ifndef YY_LOCATION_PRINT
3410 # if YYLTYPE_IS_TRIVIAL
3411 # define YY_LOCATION_PRINT(File, Loc) \
3412 fprintf (File, "%d.%d-%d.%d", \
3413 (Loc).first_line, (Loc).first_column, \
3414 (Loc).last_line, (Loc).last_column)
3416 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3424 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
3426 # define YYLEX yylex (&yylval, &yylloc, scanner)
3434 # define YYFPRINTF fprintf
3437 # define YYDPRINTF(Args) \
3443 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
3447 YYFPRINTF (stderr, "%s ", Title); \
3448 yy_symbol_print (stderr, \
3449 Type, Value, Location, osinstance, parserData, osglData, osnlData); \
3450 YYFPRINTF (stderr, "\n"); \
3460 #if (defined __STDC__ || defined __C99__FUNC__ \
3461 || defined __cplusplus || defined _MSC_VER)
3466 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, osinstance, parserData, osglData, osnlData)
3469 YYSTYPE const * const yyvaluep;
3470 YYLTYPE const * const yylocationp;
3479 YYUSE (yylocationp);
3486 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3502 #if (defined __STDC__ || defined __C99__FUNC__ \
3503 || defined __cplusplus || defined _MSC_VER)
3508 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, osinstance, parserData, osglData, osnlData)
3511 YYSTYPE const * const yyvaluep;
3512 YYLTYPE const * const yylocationp;
3520 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
3522 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
3525 YYFPRINTF (yyoutput,
": ");
3526 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, osinstance, parserData, osglData, osnlData);
3527 YYFPRINTF (yyoutput,
")");
3535 #if (defined __STDC__ || defined __C99__FUNC__ \
3536 || defined __cplusplus || defined _MSC_VER)
3538 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3541 yy_stack_print (yybottom, yytop)
3542 yytype_int16 *yybottom;
3543 yytype_int16 *yytop;
3546 YYFPRINTF (stderr,
"Stack now");
3547 for (; yybottom <= yytop; yybottom++)
3549 int yybot = *yybottom;
3550 YYFPRINTF (stderr,
" %d", yybot);
3552 YYFPRINTF (stderr,
"\n");
3555 # define YY_STACK_PRINT(Bottom, Top) \
3558 yy_stack_print ((Bottom), (Top)); \
3566 #if (defined __STDC__ || defined __C99__FUNC__ \
3567 || defined __cplusplus || defined _MSC_VER)
3572 yy_reduce_print (yyvsp, yylsp, yyrule, osinstance, parserData, osglData, osnlData)
3582 int yynrhs = yyr2[yyrule];
3584 unsigned long int yylno = yyrline[yyrule];
3585 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
3588 for (yyi = 0; yyi < yynrhs; yyi++)
3590 YYFPRINTF (stderr,
" $%d = ", yyi + 1);
3591 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
3592 &(yyvsp[(yyi + 1) - (yynrhs)])
3593 , &(yylsp[(yyi + 1) - (yynrhs)]) , osinstance, parserData, osglData, osnlData);
3594 YYFPRINTF (stderr,
"\n");
3598 # define YY_REDUCE_PRINT(Rule) \
3601 yy_reduce_print (yyvsp, yylsp, Rule, osinstance, parserData, osglData, osnlData); \
3608 # define YYDPRINTF(Args)
3609 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3610 # define YY_STACK_PRINT(Bottom, Top)
3611 # define YY_REDUCE_PRINT(Rule)
3617 # define YYINITDEPTH 200
3628 # define YYMAXDEPTH 10000
3636 # if defined __GLIBC__ && defined _STRING_H
3637 # define yystrlen strlen
3640 #if (defined __STDC__ || defined __C99__FUNC__ \
3641 || defined __cplusplus || defined _MSC_VER)
3643 yystrlen (
const char *
yystr)
3651 for (yylen = 0; yystr[
yylen]; yylen++)
3659 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3660 # define yystpcpy stpcpy
3664 #if (defined __STDC__ || defined __C99__FUNC__ \
3665 || defined __cplusplus || defined _MSC_VER)
3670 yystpcpy (yydest, yysrc)
3678 while ((*yyd++ = *yys++) !=
'\0')
3700 char const *yyp =
yystr;
3707 goto do_not_strip_quotes;
3711 goto do_not_strip_quotes;
3724 do_not_strip_quotes: ;
3728 return yystrlen (yystr);
3730 return yystpcpy (yyres, yystr) - yyres;
3754 int yysize_overflow = 0;
3755 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3756 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3762 YY_(
"syntax error, unexpected %s");
3763 YY_(
"syntax error, unexpected %s, expecting %s");
3764 YY_(
"syntax error, unexpected %s, expecting %s or %s");
3765 YY_(
"syntax error, unexpected %s, expecting %s or %s or %s");
3766 YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s");
3770 static char const yyunexpected[] =
"syntax error, unexpected %s";
3771 static char const yyexpecting[] =
", expecting %s";
3772 static char const yyor[] =
" or %s";
3773 char yyformat[
sizeof yyunexpected
3774 +
sizeof yyexpecting - 1
3775 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3776 * (
sizeof yyor - 1))];
3777 char const *yyprefix = yyexpecting;
3781 int yyxbegin = yyn < 0 ? -yyn : 0;
3784 int yychecklim =
YYLAST - yyn + 1;
3788 yyarg[0] = yytname[
yytype];
3789 yyfmt = yystpcpy (yyformat, yyunexpected);
3791 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3792 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR)
3794 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3798 yyformat[
sizeof yyunexpected - 1] =
'\0';
3801 yyarg[yycount++] = yytname[yyx];
3802 yysize1 = yysize +
yytnamerr (0, yytname[yyx]);
3803 yysize_overflow |= (yysize1 < yysize);
3805 yyfmt = yystpcpy (yyfmt, yyprefix);
3809 yyf =
YY_(yyformat);
3810 yysize1 = yysize + yystrlen (yyf);
3811 yysize_overflow |= (yysize1 < yysize);
3814 if (yysize_overflow)
3824 while ((*yyp = *yyf) !=
'\0')
3826 if (*yyp ==
'%' && yyf[1] ==
's' && yyi < yycount)
3849 #if (defined __STDC__ || defined __C99__FUNC__ \
3850 || defined __cplusplus || defined _MSC_VER)
3855 yydestruct (yymsg, yytype, yyvaluep, yylocationp, osinstance, parserData, osglData, osnlData)
3867 YYUSE (yylocationp);
3886 #ifdef YYPARSE_PARAM
3887 #if defined __STDC__ || defined __cplusplus
3888 int yyparse (
void *YYPARSE_PARAM);
3893 #if defined __STDC__ || defined __cplusplus
3908 #ifdef YYPARSE_PARAM
3909 #if (defined __STDC__ || defined __C99__FUNC__ \
3910 || defined __cplusplus || defined _MSC_VER)
3916 void *YYPARSE_PARAM;
3919 #if (defined __STDC__ || defined __C99__FUNC__ \
3920 || defined __cplusplus || defined _MSC_VER)
3925 yyparse (osinstance, parserData, osglData, osnlData)
3993 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
4005 YYDPRINTF ((stderr,
"Starting parse\n"));
4020 #if YYLTYPE_IS_TRIVIAL
4039 if (yyss + yystacksize - 1 <= yyssp)
4042 YYSIZE_T yysize = yyssp - yyss + 1;
4050 yytype_int16 *yyss1 =
yyss;
4057 yyoverflow (
YY_(
"memory exhausted"),
4058 &yyss1, yysize *
sizeof (*yyssp),
4059 &yyvs1, yysize *
sizeof (*yyvsp),
4060 &yyls1, yysize *
sizeof (*yylsp),
4068 # ifndef YYSTACK_RELOCATE
4079 yytype_int16 *yyss1 =
yyss;
4087 # undef YYSTACK_RELOCATE
4094 yyssp = yyss + yysize - 1;
4095 yyvsp = yyvs + yysize - 1;
4096 yylsp = yyls + yysize - 1;
4098 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
4099 (
unsigned long int) yystacksize));
4101 if (yyss + yystacksize - 1 <= yyssp)
4105 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
4130 YYDPRINTF ((stderr,
"Reading a token: "));
4136 yychar = yytoken =
YYEOF;
4137 YYDPRINTF ((stderr,
"Now at end of input.\n"));
4148 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
4201 yyval = yyvsp[1-
yylen];
4213 parserData->
parser_errors += (
"\n\nOSiL input is either invalid or not well-formed.\n");
4221 { parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"unexpected end of file, expecting </osil>");}
4226 {
if(osinstance->instanceData->quadraticCoefficients->numberOfQuadraticTerms > parserData->
qtermcount )
4227 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"actual number of qterms less than numberOfQuadraticTerms");}
4240 if ( *(yyvsp[(2) - (5)].sval) != *(yyvsp[(4) - (5)].sval) ) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
4241 osinstance->instanceData->quadraticCoefficients->numberOfQuadraticTerms = (yyvsp[(3) - (5)].
ival);
4242 if(osinstance->instanceData->quadraticCoefficients->numberOfQuadraticTerms > 0 )
4243 osinstance->instanceData->quadraticCoefficients->qTerm =
new QuadraticTerm*[ (yyvsp[(3) - (5)].
ival) ];
4244 for(
int i = 0; i < (yyvsp[(3) - (5)].
ival); i++) osinstance->instanceData->quadraticCoefficients->qTerm[i] =
new QuadraticTerm();
4267 if(osinstance->instanceData->quadraticCoefficients->numberOfQuadraticTerms <= parserData->
qtermcount )
4268 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too many QuadraticTerms");
4298 {
if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) ) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
4299 osinstance->instanceData->quadraticCoefficients->qTerm[parserData->
qtermcount]->idxOne = (yyvsp[(3) - (4)].
ival);
4300 if( (yyvsp[(3) - (4)].ival) >= osinstance->instanceData->variables->numberOfVariables){
4301 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"variable index exceeds number of variables");
4308 {
if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) ) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
4309 osinstance->instanceData->quadraticCoefficients->qTerm[parserData->
qtermcount]->idxTwo = (yyvsp[(3) - (4)].
ival);
4310 if( (yyvsp[(3) - (4)].ival) >= osinstance->instanceData->variables->numberOfVariables){
4311 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"variable index exceeds number of variables");
4318 {
if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) ) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
4319 osinstance->instanceData->quadraticCoefficients->qTerm[parserData->
qtermcount]->coef = parserData->
tempVal;}
4324 {
if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) ) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
4325 osinstance->instanceData->quadraticCoefficients->qTerm[parserData->
qtermcount]->idx = (yyvsp[(3) - (4)].
ival);}
4332 addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"fewer matrices than specified");
4333 osinstance->instanceData->matrices->numberOfMatrices = osglData->
numberOfMatrices;
4334 osinstance->instanceData->matrices->matrix = osglData->
matrix;
4341 osinstance->instanceData->matrices =
new Matrices();
4350 addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"numberOfMatrices cannot be negative");
4355 osglData->
matrix[i] = NULL;
4364 addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"fewer cones than specified");
4371 osinstance->instanceData->cones =
new Cones();
4380 addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"numberOfCones cannot be negative");
4385 osinstance->instanceData->cones->cone[i] = NULL;
4401 addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"encountered more cones than specified");
4402 osinstance->instanceData->cones->numberOfCones = parserData->
coneCounter;
4524 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of directions does not match");
4542 if (osglData->
type ==
"nonnegative")
4547 else if (osglData->
type ==
"nonpositive")
4552 else if (osglData->
type ==
"free")
4557 else if (osglData->
type ==
"zero")
4564 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"unrecognized direction type");
4567 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"Too many directions given");
4568 for (
int i=0; i < osglData->
mult; i++)
4622 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval))
4625 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"polyhedral cone referenceMatrixIdx attribute previously set");
4626 if ((yyvsp[(3) - (4)].ival) <= 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"polyhedral cone reference matrix index cannot be negative");
4861 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of factors does not match numberOfEl");
4927 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of components does not match numberOfEl");
4950 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"actual number of matrixVar less than number attribute");
4957 osinstance->instanceData->matrixProgramming->matrixVariables =
new MatrixVariables();
4964 osinstance->instanceData->matrixProgramming->matrixVariables->numberOfMatrixVar = parserData->
numberOfMatrixVar;
4965 osinstance->instanceData->matrixProgramming->matrixVariables->matrixVar
4968 osinstance->instanceData->matrixProgramming->matrixVariables->matrixVar[i] =
new MatrixVar();
5002 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"mandatory attribute \"numberOfRows\" missing");
5004 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"mandatory attribute \"numberOfColumns\" missing");
5007 addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"actual number of matrixVar greater than number attribute");
5008 for (
int i=0; i<osglData->
mult; i++)
5010 osinstance->instanceData->matrixProgramming->matrixVariables->matrixVar[parserData->
kounter+i]->numberOfRows
5012 osinstance->instanceData->matrixProgramming->matrixVariables->matrixVar[parserData->
kounter+i]->numberOfColumns
5015 osinstance->instanceData->matrixProgramming->matrixVariables->matrixVar[parserData->
kounter+i]->name
5018 osinstance->instanceData->matrixProgramming->matrixVariables->matrixVar[parserData->
kounter+i]->templateMatrixIdx
5021 osinstance->instanceData->matrixProgramming->matrixVariables->matrixVar[parserData->
kounter+i]->varReferenceMatrixIdx
5024 osinstance->instanceData->matrixProgramming->matrixVariables->matrixVar[parserData->
kounter+i]->lbMatrixIdx
5027 osinstance->instanceData->matrixProgramming->matrixVariables->matrixVar[parserData->
kounter+i]->lbConeIdx
5030 osinstance->instanceData->matrixProgramming->matrixVariables->matrixVar[parserData->
kounter+i]->ubMatrixIdx
5033 osinstance->instanceData->matrixProgramming->matrixVariables->matrixVar[parserData->
kounter+i]->ubConeIdx
5038 osinstance->instanceData->matrixProgramming->matrixVariables->matrixVar[parserData->
kounter+i]->varType
5042 "varType must be one of C, B, I, S, D, J");
5052 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"actual number of matrixObj less than number attribute");
5059 osinstance->instanceData->matrixProgramming->matrixObjectives =
new MatrixObjectives();
5066 osinstance->instanceData->matrixProgramming->matrixObjectives->numberOfMatrixObj = parserData->
numberOfMatrixObj;
5067 osinstance->instanceData->matrixProgramming->matrixObjectives->matrixObj
5070 osinstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[i] =
new MatrixObj();
5101 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"mandatory attribute \"numberOfRows\" missing");
5103 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"mandatory attribute \"numberOfColumns\" missing");
5106 addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"actual number of matrixObj greater than number attribute");
5107 for (
int i=0; i<osglData->
mult; i++)
5109 osinstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[parserData->
kounter+i]->numberOfRows
5111 osinstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[parserData->
kounter+i]->numberOfColumns
5114 osinstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[parserData->
kounter+i]->name
5117 osinstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[parserData->
kounter+i]->templateMatrixIdx
5120 osinstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[parserData->
kounter+i]->objReferenceMatrixIdx
5123 osinstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[parserData->
kounter+i]->orderConeIdx
5126 osinstance->instanceData->matrixProgramming->matrixObjectives->matrixObj[parserData->
kounter+i]->constantMatrixIdx
5136 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"actual number of matrixCon less than number attribute");
5143 osinstance->instanceData->matrixProgramming->matrixConstraints =
new MatrixConstraints();
5150 osinstance->instanceData->matrixProgramming->matrixConstraints->numberOfMatrixCon = parserData->
numberOfMatrixCon;
5151 osinstance->instanceData->matrixProgramming->matrixConstraints->matrixCon
5154 osinstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[i] =
new MatrixCon();
5187 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"mandatory attribute \"numberOfRows\" missing");
5189 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"mandatory attribute \"numberOfColumns\" missing");
5192 addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"actual number of matrixCon greater than number attribute");
5193 for (
int i=0; i<osglData->
mult; i++)
5195 osinstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[parserData->
kounter+i]->numberOfRows
5197 osinstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[parserData->
kounter+i]->numberOfColumns
5200 osinstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[parserData->
kounter+i]->name
5203 osinstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[parserData->
kounter+i]->templateMatrixIdx
5206 osinstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[parserData->
kounter+i]->conReferenceMatrixIdx
5209 osinstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[parserData->
kounter+i]->lbMatrixIdx
5212 osinstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[parserData->
kounter+i]->lbConeIdx
5215 osinstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[parserData->
kounter+i]->ubMatrixIdx
5218 osinstance->instanceData->matrixProgramming->matrixConstraints->matrixCon[parserData->
kounter+i]->ubConeIdx
5226 {osinstance->instanceData->timeDomain =
new TimeDomain();}
5232 if( osinstance->instanceData->timeDomain->stages->numberOfStages > parserData->
stagecount )
5233 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"actual number of stages less than numberOfStages");
5238 parserData->
m_miVarStageInfo =
new int [ osinstance->instanceData->variables->numberOfVariables ];
5239 parserData->
m_miObjStageInfo =
new int [ osinstance->instanceData->objectives->numberOfObjectives ];
5240 parserData->
m_miConStageInfo =
new int [ osinstance->instanceData->constraints->numberOfConstraints ];
5242 for (
int i = 0; i < osinstance->instanceData->variables->numberOfVariables; i++)
5244 for (
int i = 0; i < osinstance->instanceData->objectives->numberOfObjectives; i++)
5246 for (
int i = 0; i < osinstance->instanceData->constraints->numberOfConstraints; i++)
5248 for (
int k = 0;
k < osinstance->instanceData->timeDomain->stages->numberOfStages;
k++)
5249 {
for (
int i = 0; i < osinstance->instanceData->timeDomain->stages->stage[
k]->variables->numberOfVariables; i++)
5251 if (parserData->
m_miVarStageInfo[ osinstance->instanceData->timeDomain->stages->stage[
k]->variables->var[i]->idx ] != -1)
5252 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"variable belongs to two stages");
5253 parserData->
m_miVarStageInfo[ osinstance->instanceData->timeDomain->stages->stage[
k]->variables->var[i]->idx ] =
k;
5255 parserData->
nvarcovered += osinstance->instanceData->timeDomain->stages->stage[
k]->variables->numberOfVariables;
5257 if (parserData->
nvarcovered != osinstance->instanceData->variables->numberOfVariables)
5258 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"some variables not assigned to any stage");
5260 for (
int k = 0;
k < osinstance->instanceData->timeDomain->stages->numberOfStages;
k++)
5261 {
for (
int i = 0; i < osinstance->instanceData->timeDomain->stages->stage[
k]->constraints->numberOfConstraints; i++)
5262 {
if (parserData->
m_miConStageInfo[ osinstance->instanceData->timeDomain->stages->stage[
k]->constraints->con[i]->idx ] != -1)
5263 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"constraint belongs to two stages");
5264 parserData->
m_miConStageInfo[ osinstance->instanceData->timeDomain->stages->stage[
k]->constraints->con[i]->idx ] =
k;
5266 parserData->
nconcovered += osinstance->instanceData->timeDomain->stages->stage[
k]->constraints->numberOfConstraints;
5268 if (parserData->
nconcovered != osinstance->instanceData->constraints->numberOfConstraints)
5269 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"some constraints not assigned to any stage");
5270 for (
int k = 0;
k < osinstance->instanceData->timeDomain->stages->numberOfStages;
k++)
5271 {
for (
int i = 0; i < osinstance->instanceData->timeDomain->stages->stage[
k]->objectives->numberOfObjectives; i++)
5272 {
if (parserData->
m_miObjStageInfo[ -osinstance->instanceData->timeDomain->stages->stage[
k]->objectives->obj[i]->idx-1 ] == -1)
5273 parserData->
m_miObjStageInfo[ -osinstance->instanceData->timeDomain->stages->stage[
k]->objectives->obj[i]->idx-1 ] =
k;
5276 for (
int i = 0; i < osinstance->instanceData->objectives->numberOfObjectives; i++)
5278 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"some objectives not assigned to any stage");
5290 if ( *(yyvsp[(2) - (5)].sval) != *(yyvsp[(4) - (5)].sval) ) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
5291 if ((yyvsp[(3) - (5)].ival) < 1) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of stages must be positive");
5292 osinstance->instanceData->timeDomain->stages->numberOfStages = (yyvsp[(3) - (5)].
ival);
5293 if (osinstance->instanceData->timeDomain->stages->numberOfStages > 0 )
5294 osinstance->instanceData->timeDomain->stages->stage =
new TimeDomainStage*[ (yyvsp[(3) - (5)].
ival) ];
5295 for(
int i = 0; i < (yyvsp[(3) - (5)].
ival); i++)
5296 { osinstance->instanceData->timeDomain->stages->stage[i] =
new TimeDomainStage();
5307 if( osinstance->instanceData->timeDomain->stages->numberOfStages <= parserData->
stagecount)
5309 osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->variables->numberOfVariables = 0;
5310 osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->constraints->numberOfConstraints = 0;
5311 osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->objectives->numberOfObjectives = 0;
5338 osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->name = (yyvsp[(2) - (3)].
sval); free((yyvsp[(2) - (3)].sval));}
5351 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval))
5353 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of variables cannot be negative");
5354 if ((yyvsp[(3) - (4)].ival) > osinstance->instanceData->variables->numberOfVariables)
5355 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too many variables in this stage");
5356 if ((yyvsp[(3) - (4)].ival) > 0) {
5357 if (osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->variables->numberOfVariables > 0)
5358 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"duplicate attribute numberOfVariables");
5359 osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->variables->numberOfVariables = (yyvsp[(3) - (4)].
ival);
5361 for (
int i = 0; i < (yyvsp[(3) - (4)].
ival); i++)
5363 osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->variables->var[i]->
idx = 0;
5372 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval))
5375 if ((yyvsp[(3) - (4)].ival) < 0 && (yyvsp[(3) - (4)].ival) >= osinstance->instanceData->variables->numberOfVariables)
5376 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"variable index out of range");
5386 (osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->variables->numberOfVariables > 0) )
5388 for (
int i = 0; i < osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->variables->numberOfVariables; i++)
5396 if (parserData->
stagevarcount < osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->variables->numberOfVariables)
5397 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too few variables supplied");
5409 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval))
5411 if ((yyvsp[(3) - (4)].ival) < 0 || (yyvsp[(3) - (4)].ival) >= osinstance->instanceData->variables->numberOfVariables)
5412 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"variable index out of range");
5413 if (parserData->
stagevarcount >= osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->variables->numberOfVariables)
5414 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too many variables in this stage");
5415 osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->variables->var[parserData->
stagevarcount]->idx = (yyvsp[(3) - (4)].
ival);
5430 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval))
5432 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of constraints cannot be negative");
5433 if ((yyvsp[(3) - (4)].ival) > osinstance->instanceData->constraints->numberOfConstraints)
5434 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too many constraints in this stage");
5435 if ((yyvsp[(3) - (4)].ival) > 0) {
5436 if (osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->constraints->numberOfConstraints > 0)
5437 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"duplicate attribute numberOfConstraints");
5438 osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->constraints->numberOfConstraints = (yyvsp[(3) - (4)].
ival);
5440 for (
int i = 0; i < (yyvsp[(3) - (4)].
ival); i++)
5442 osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->constraints->con[i]->
idx = 0;
5451 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval))
5454 if ((yyvsp[(3) - (4)].ival) < 0 && (yyvsp[(3) - (4)].ival) >= osinstance->instanceData->constraints->numberOfConstraints)
5455 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"constraint index out of range");
5465 (osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->constraints->numberOfConstraints > 0) )
5467 for (
int i = 0; i < osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->constraints->numberOfConstraints; i++)
5475 if (parserData->
stageconcount < osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->constraints->numberOfConstraints)
5476 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too few constraints supplied");
5488 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval))
5490 if ((yyvsp[(3) - (4)].ival) < 0 || (yyvsp[(3) - (4)].ival) >= osinstance->instanceData->constraints->numberOfConstraints)
5491 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"constraint index out of range");
5492 if (parserData->
stageconcount >= osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->constraints->numberOfConstraints)
5493 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too many constraints in this stage");
5494 osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->constraints->con[parserData->
stageconcount]->idx = (yyvsp[(3) - (4)].
ival);
5502 osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->objectives->numberOfObjectives =
5503 osinstance->instanceData->objectives->numberOfObjectives;
5504 osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->objectives->obj =
5506 for (
int i = 0; i < osinstance->instanceData->objectives->numberOfObjectives; i++)
5508 osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->objectives->obj[i]->
idx = -(i+1);
5523 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval))
5525 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of objectives cannot be negative");
5526 if ((yyvsp[(3) - (4)].ival) > osinstance->instanceData->objectives->numberOfObjectives)
5527 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too many objectives in this stage");
5528 if ((yyvsp[(3) - (4)].ival) > 0) {
5529 if (osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->objectives->numberOfObjectives > 0)
5530 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"duplicate attribute numberOfObjectives");
5531 osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->objectives->numberOfObjectives = (yyvsp[(3) - (4)].
ival);
5533 for (
int i = 0; i < (yyvsp[(3) - (4)].
ival); i++)
5535 osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->objectives->obj[i]->
idx = 0;
5545 (osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->objectives->numberOfObjectives > 0) )
5547 for (
int i = 0; i < osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->objectives->numberOfObjectives; i++)
5555 if (parserData->
stageobjcount < osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->objectives->numberOfObjectives)
5556 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too few objectives supplied");
5568 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval))
5570 if ((yyvsp[(3) - (4)].ival) >= 0 || (yyvsp[(3) - (4)].ival) >= -osinstance->instanceData->objectives->numberOfObjectives - 1)
5571 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"objective index out of range");
5572 if (parserData->
stageobjcount >= osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->objectives->numberOfObjectives)
5573 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too many objectives in this stage");
5574 osinstance->instanceData->timeDomain->stages->stage[parserData->
stagecount]->objectives->obj[parserData->
stageobjcount]->idx = (yyvsp[(3) - (4)].
ival);
5590 printf(
"Interval not yet supported.\n\n");
5597 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too many interval horizon attributes");
5604 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too many interval start attributes");
5611 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval))
5614 if ((yyvsp[(3) - (4)].ival) >= 0 && (yyvsp[(3) - (4)].ival) <= -osinstance->instanceData->objectives->numberOfObjectives - 1)
5615 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"objective index out of range");
5624 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) ) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
5631 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) ) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
5638 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval))
5641 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"numberOfMatrices attribute previously set");
5642 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of <matrix> elements cannot be negative");
5651 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval))
5654 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"numberOfCones attribute previously set");
5655 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of <cone> elements cannot be negative");
5664 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval))
5666 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of matrix variables cannot be negative");
5674 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval))
5676 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of matrix objectives cannot be negative");
5684 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval))
5686 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of matrix constraints cannot be negative");
5694 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval))
5697 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"normScaleFactor attribute previously set");
5698 if (parserData->
tempVal <= 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"scale factor must be positive");
5707 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval))
5710 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"distortionMatrixIdx attribute previously set");
5711 if ((yyvsp[(3) - (4)].ival) <= 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"distortion matrix index cannot be negative");
5720 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval))
5723 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"axisDirection attribute previously set");
5724 if ((yyvsp[(3) - (4)].ival) <= 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"axis direction index cannot be negative");
5733 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval))
5736 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"firstAxisDirection attribute previously set");
5737 if ((yyvsp[(3) - (4)].ival) <= 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"axis direction index cannot be negative");
5746 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval))
5749 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"secondAxisDirection attribute previously set");
5750 if ((yyvsp[(3) - (4)].ival) <= 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"axis direction index cannot be negative");
5760 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"name attribute previously set");
5762 if ((yyvsp[(2) - (3)].sval) !=
"positive" && (yyvsp[(2) - (3)].sval) !=
"negative")
5763 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"semidefiniteness must be either \"positive\" or \"negative\"");
5766 free((yyvsp[(2) - (3)].sval));
5773 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval))
5776 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"matrixIdx attribute previously set");
5777 if ((yyvsp[(3) - (4)].ival) <= 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"matrix index cannot be negative");
5786 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
5787 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
5789 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"only one lbMatrix attribute allowed");
5790 if ((yyvsp[(3) - (4)].ival) < 0 || (yyvsp[(3) - (4)].ival) >= osinstance->instanceData->matrices->numberOfMatrices)
5791 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"illegal value for lbMatrix attribute");
5800 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
5801 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
5803 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"only one ubMatrix attribute allowed");
5804 if ((yyvsp[(3) - (4)].ival) < 0 || (yyvsp[(3) - (4)].ival) >= osinstance->instanceData->matrices->numberOfMatrices)
5805 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"illegal value for ubMatrix attribute");
5814 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
5815 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
5817 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"only one constant matrix attribute allowed");
5818 if ((yyvsp[(3) - (4)].ival) < 0 || (yyvsp[(3) - (4)].ival) >= osinstance->instanceData->matrices->numberOfMatrices)
5819 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"illegal value for constant matrix attribute");
5828 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval))
5831 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"templateMatrixIdx attribute previously set");
5832 if ((yyvsp[(3) - (4)].ival) < 0 || (yyvsp[(3) - (4)].ival) >= osinstance->instanceData->matrices->numberOfMatrices)
5833 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"template matrix index cannot be negative");
5842 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
5843 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
5845 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"only one varReference matrix attribute allowed");
5846 if ((yyvsp[(3) - (4)].ival) < 0 || (yyvsp[(3) - (4)].ival) >= osinstance->instanceData->matrices->numberOfMatrices)
5847 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"illegal value for varReference matrix attribute");
5856 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
5857 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
5859 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"only one objReference matrix attribute allowed");
5860 if ((yyvsp[(3) - (4)].ival) < 0 || (yyvsp[(3) - (4)].ival) >= osinstance->instanceData->matrices->numberOfMatrices)
5861 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"illegal value for objReference matrix attribute");
5870 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
5871 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
5873 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"only one conReference matrix attribute allowed");
5874 if ((yyvsp[(3) - (4)].ival) < 0 || (yyvsp[(3) - (4)].ival) >= osinstance->instanceData->matrices->numberOfMatrices)
5875 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"illegal value for conReference matrix attribute");
5884 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
5885 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
5887 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"only one lbCone attribute allowed");
5888 if ((yyvsp[(3) - (4)].ival) < 0 || (yyvsp[(3) - (4)].ival) >= osinstance->instanceData->cones->numberOfCones)
5889 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"illegal value for lbCone attribute");
5898 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
5899 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
5901 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"only one ubCone attribute allowed");
5902 if ((yyvsp[(3) - (4)].ival) < 0 || (yyvsp[(3) - (4)].ival) >= osinstance->instanceData->cones->numberOfCones)
5903 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"illegal value for ubCone attribute");
5912 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
5913 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
5915 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"only one orderCone attribute allowed");
5916 if ((yyvsp[(3) - (4)].ival) < 0 || (yyvsp[(3) - (4)].ival) >= osinstance->instanceData->cones->numberOfCones)
5917 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"illegal value for orderCone attribute");
5938 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"fewer data elements than specified");
5961 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more data elements than specified");
5967 for (
int i=0; i<osglData->
mult; i++)
5975 char* b64string = (yyvsp[(2) - (3)].
sval);
5976 if( b64string == NULL)
5977 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"base 64 data expected");
5979 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"base 64 encoded with a size of int different than on this machine");
5982 int base64decodeddatalength = base64decodeddata.length();
5985 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"base 64 data length does not match numberOfEl");
5988 intvec = (
int*)&base64decodeddata[0];
5989 for(
int i = 0; i < (base64decodeddatalength/osglData->
base64Size); i++)
5995 free((yyvsp[(2) - (3)].sval));
6004 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"fewer data elements than specified");
6026 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more data elements than specified");
6032 for (
int i=0; i<osglData->
mult; i++)
6040 char* b64string = (yyvsp[(2) - (3)].
sval);
6041 if( b64string == NULL)
6042 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"base 64 data expected");
6044 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"base 64 encoded with a size of int different than on this machine");
6047 int base64decodeddatalength = base64decodeddata.length();
6048 double *dblvec = NULL;
6050 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"base 64 data length does not match numberOfEl");
6053 dblvec = (
double*)&base64decodeddata[0];
6054 for(
int i = 0; i < (base64decodeddatalength/osglData->
base64Size); i++)
6060 free((yyvsp[(2) - (3)].sval));
6079 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more matrices than specified");
6104 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"mandatory attribute numberOfRows is missing");
6108 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"mandatory attribute numberOfColumns is missing");
6124 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more matrices than specified");
6151 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more matrices than specified");
6178 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more matrices than specified");
6204 osglData->
mtxBlkVec.back()->m_mChildren =
6213 osglData->
mtxBlkVec.back()->inumberOfChildren++;
6241 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"mandatory attribute baseMatrixIdx is missing");
6269 osglData->
mtxBlkVec.back()->inumberOfChildren++;
6288 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"<constantElements>: numberOfValues attribute missing");
6390 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"<varReferenceElements>: numberOfValues attribute missing");
6446 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"<linearElements>: numberOfValues attribute missing");
6470 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"expected <value> element");
6478 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too few <el> elements");
6480 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too many <el> elements");
6509 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"linear matrix elements: too many nonzeros");
6526 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"numberOfVarIdx attribute missing");
6541 osglData->
coef = 1.0;
6577 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"<generalElements>: numberOfValues attribute missing");
6618 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of <el> terms greater than expected");
6621 osnlData->
sumVec.clear();
6623 osnlData->
maxVec.clear();
6624 osnlData->
minVec.clear();
6657 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"<objReferenceElements>: numberOfValues attribute missing");
6713 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"<conReferenceElements>: numberOfValues attribute missing");
6737 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"expected <value> element");
6745 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too few <el> elements");
6747 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too many <el> elements");
6784 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of <el> terms greater than expected");
6801 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more data elements than specified");
6812 "valueType must be one of \"value\", \"status\", \"surplus\", \"shortage\"");
6815 for (
int i=0; i<osglData->
mult; i++)
6818 = (yyvsp[(2) - (3)].
ival) + i*osglData->
incr;
6836 osnlData->
sumVec.clear();
6838 osnlData->
maxVec.clear();
6839 osnlData->
minVec.clear();
6856 "unknown shape specified in matrix transformation");
6905 "Number of blocks does not agree with attribute value numberOfBlocks");
6918 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of colOffsets does not match numberOfEl");
7004 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"symmetry type not recognized");
7022 osglData->
mtxBlkVec.back()->m_mChildren =
7030 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
7031 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7033 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"numberOfBlocks attribute previously set");
7034 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of <blocks> cannot be negative");
7043 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
7044 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7046 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"numberOfColumns attribute previously set");
7047 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of <blocks> cannot be negative");
7056 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
7057 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7059 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"numberOfEl attribute previously set");
7060 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of <el> cannot be negative");
7069 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
7070 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7072 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"numberOfRows attribute previously set");
7073 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of <rows> cannot be negative");
7082 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
7083 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7085 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"numberOfValues attribute previously set");
7086 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of <values> cannot be negative");
7095 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
7096 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7098 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"numberOfVarIdx attribute previously set");
7099 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of <varIdx> cannot be negative");
7108 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
7109 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7111 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"base64Size attribute previously set");
7112 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"base64Size cannot be negative");
7121 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
7122 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7124 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one baseMatrixIdx attribute in <baseMatrix> element");
7125 if ((yyvsp[(3) - (4)].ival) < 0)
7126 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"baseMatrix idx cannot be negative");
7128 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"baseMatrix idx exceeds number of matrices so far");
7137 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
7139 "start and end quotes are not the same");
7142 "more than one baseMatrixStartRow attribute in <baseMatrix> element");
7143 if ((yyvsp[(3) - (4)].ival) < 0)
7145 "baseMatrix first row cannot be negative");
7154 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
7156 "start and end quotes are not the same");
7159 "more than one baseMatrixStartCol attribute in <baseMatrix> element");
7160 if ((yyvsp[(3) - (4)].ival) < 0)
7162 "baseMatrix first column cannot be negative");
7171 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
7172 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7174 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one baseMatrixEndRow attribute in <baseMatrix> element");
7175 if ((yyvsp[(3) - (4)].ival) < 0)
7176 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"baseMatrix end row cannot be negative");
7185 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
7186 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7188 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one baseMatrixEndCol attribute in <baseMatrix> element");
7189 if ((yyvsp[(3) - (4)].ival) < 0)
7190 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"baseMatrix end col cannot be negative");
7200 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"blockRowIdx attribute previously set");
7203 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"blockRowIdx cannot be negative");
7220 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"blockColIdx attribute previously set");
7223 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"blockColIdx cannot be negative");
7239 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
7240 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7242 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"linear matrix elements: duplicate coef");
7254 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
7255 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7257 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"linear matrix elements: duplicate constant");
7270 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one idx attribute");
7272 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
7273 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7274 osglData->
idx = (yyvsp[(3) - (4)].
ival);
7281 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
7282 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7284 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"only one incr attribute allowed");
7286 osglData->
incr = (yyvsp[(3) - (4)].
ival);
7293 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
7294 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7296 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"only one mult attribute allowed");
7297 if ((yyvsp[(3) - (4)].ival) <= 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"mult must be positive");
7299 osglData->
mult = (yyvsp[(3) - (4)].
ival);
7306 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
7307 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7309 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one scalar multiplier attribute in <baseMatrix> element");
7318 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
7319 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7321 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one targetMatrixFirstRow attribute in <baseMatrix> element");
7322 if ((yyvsp[(3) - (4)].ival) < 0)
7323 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"targetMatrix first row cannot be negative");
7332 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].
sval) )
7333 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7335 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one targetMatrixFirstCol attribute in <baseMatrix> element");
7336 if ((yyvsp[(3) - (4)].ival) < 0)
7337 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"targetMatrix first col cannot be negative");
7348 "more than one baseTranspose attribute in <baseMatrix> element");
7360 "more than one baseTranspose attribute in <baseMatrix> element");
7363 if (strcmp((yyvsp[(2) - (3)].sval),
"false") == 0) osglData->
baseTranspose =
false;
7364 else if (strcmp((yyvsp[(2) - (3)].sval),
"true" ) == 0) osglData->
baseTranspose =
true;
7366 "baseTranspose attribute in <baseMatrix> element must be \"true\" or \"false\"");
7369 free((yyvsp[(2) - (3)].sval));
7377 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one name attribute");
7386 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one name attribute");
7388 osglData->
name = (yyvsp[(2) - (3)].
sval);
7389 free((yyvsp[(2) - (3)].sval));
7397 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"rowMajor attribute encountered more than once");
7408 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"rowMajor attribute encountered more than once");
7411 if (strcmp((yyvsp[(2) - (3)].sval),
"false") == 0) osglData->
rowMajor =
false;
7412 else if (strcmp((yyvsp[(2) - (3)].sval),
"true" ) == 0) osglData->
rowMajor =
true;
7413 else parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"rowMajor attribute must be \"true\" or \"false\"");
7416 free((yyvsp[(2) - (3)].sval));
7424 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one shape attribute");
7433 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one shape attribute");
7435 osglData->
shape = (yyvsp[(2) - (3)].
sval);
7436 free((yyvsp[(2) - (3)].sval));
7444 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one symmetry attribute in <matrix> element");
7453 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one symmetry attribute in <matrix> element");
7456 free((yyvsp[(2) - (3)].sval));
7464 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one type attribute");
7473 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one type attribute");
7475 osglData->
type = (yyvsp[(2) - (3)].
sval);
7476 free((yyvsp[(2) - (3)].sval));
7484 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one value attribute");
7486 osglData->
value =
"";
7494 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one value attribute");
7496 osglData->
value = (yyvsp[(2) - (3)].
sval);
7497 free((yyvsp[(2) - (3)].sval));
7505 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one valueType attribute");
7514 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one valueType attribute");
7517 free((yyvsp[(2) - (3)].sval));
7525 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one varType attribute");
7534 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"more than one varType attribute");
7537 free((yyvsp[(2) - (3)].sval));
7545 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"actual number of nl terms less than number attribute");
7560 if ( *(yyvsp[(2) - (5)].sval) != *(yyvsp[(4) - (5)].sval) )
7561 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7562 if ((yyvsp[(3) - (5)].ival) < 0) parserData->
parser_errors +=
7563 addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"number of expressions cannot be negative");
7565 osinstance->instanceData->nonlinearExpressions->numberOfNonlinearExpressions = (yyvsp[(3) - (5)].
ival);
7566 if (osinstance->instanceData->nonlinearExpressions->numberOfNonlinearExpressions > 0 )
7567 osinstance->instanceData->nonlinearExpressions->nl =
new Nl*[ (yyvsp[(3) - (5)].
ival) ];
7568 for (
int i = 0; i < osinstance->instanceData->nonlinearExpressions->numberOfNonlinearExpressions; i++)
7570 osinstance->instanceData->nonlinearExpressions->nl[i] =
new Nl();
7579 osinstance->instanceData->nonlinearExpressions->nl[ osnlData->
tmpnlcount]->osExpressionTree->m_treeRoot =
7590 addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"actual number of nl terms greater than number attribute");
7596 osnlData->
sumVec.clear();
7598 osnlData->
maxVec.clear();
7599 osnlData->
minVec.clear();
7610 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"mandatory attribute idx is missing");
7617 osinstance->instanceData->nonlinearExpressions->nl[ osnlData->
tmpnlcount]->idx = osglData->
idx;
7618 osinstance->instanceData->nonlinearExpressions->nl[ osnlData->
tmpnlcount]->osExpressionTree
7627 osinstance->instanceData->nonlinearExpressions->nl[ osnlData->
tmpnlcount]->shape
7631 "unknown shape specified in matrix transformation");
7754 #ifdef OSINSTANCE_AVAILABLE
7755 osinstance->instanceData->nonlinearExpressions->nl[ osnlData->
tmpnlcount]->osExpressionTree->bADMustReTape =
true;
7785 #ifdef OSINSTANCE_AVAILABLE
7786 osinstance->instanceData->nonlinearExpressions->nl[ osnlData->
tmpnlcount]->osExpressionTree->bADMustReTape =
true;
7850 addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too many number id attributes");
7853 free((yyvsp[(2) - (2)].sval));
7882 addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too many variable coef attributes");
7891 addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"too many variable idx attributes");
7899 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) ) parserData->
parser_errors +=
7900 addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7908 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) ) parserData->
parser_errors +=
7909 addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
7928 osnlData->
sumVec.pop_back();
7952 #ifdef OSINSTANCE_AVAILABLE
7953 osinstance->instanceData->nonlinearExpressions->nl[ osnlData->
tmpnlcount]->osExpressionTree->bADMustReTape =
true;
7975 osnlData->
maxVec.back()->m_mChildren =
new OSnLNode*[ osnlData->
maxVec.back()->inumberOfChildren];
7976 osnlData->
maxVec.pop_back();
7977 #ifdef OSINSTANCE_AVAILABLE
7978 osinstance->instanceData->nonlinearExpressions->nl[ osnlData->
tmpnlcount]->osExpressionTree->bADMustReTape =
true;
7985 { osnlData->
maxVec.back()->inumberOfChildren++; }
8000 osnlData->
minVec.back()->m_mChildren =
new OSnLNode*[ osnlData->
minVec.back()->inumberOfChildren];
8001 osnlData->
minVec.pop_back();
8002 #ifdef OSINSTANCE_AVAILABLE
8003 osinstance->instanceData->nonlinearExpressions->nl[ osnlData->
tmpnlcount]->osExpressionTree->bADMustReTape =
true;
8010 { osnlData->
minVec.back()->inumberOfChildren++; }
8032 { osnlData->
productVec.back()->inumberOfChildren++; }
8053 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
8054 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
8077 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
8078 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
8101 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
8102 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
8125 if ( *(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval) )
8126 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"start and end quotes are not the same");
8198 else parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"osnlData->includeDiagonal attribute must be \"true\" or \"false\"");
8199 free((yyvsp[(2) - (3)].sval));
8206 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"matrix merge not yet implemented");
8294 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"actual number of matrix expressions less than number attribute");
8301 #ifdef OSINSTANCE_AVAILABLE
8302 osinstance->instanceData->matrixProgramming->matrixExpressions =
new MatrixExpressions();
8311 #ifdef OSINSTANCE_AVAILABLE
8312 if (*(yyvsp[(2) - (4)].sval) != *(yyvsp[(4) - (4)].sval))
8314 if ((yyvsp[(3) - (4)].ival) < 0) parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
8315 "number of expressions cannot be negative");
8317 osinstance->instanceData->matrixProgramming->matrixExpressions->numberOfExpr = (yyvsp[(3) - (4)].
ival);
8318 if (osinstance->instanceData->matrixProgramming->matrixExpressions->numberOfExpr > 0 )
8319 osinstance->instanceData->matrixProgramming->matrixExpressions->expr
8322 i < osinstance->instanceData->matrixProgramming->matrixExpressions->numberOfExpr;
8324 osinstance->instanceData->matrixProgramming->matrixExpressions->expr[i]
8334 #ifdef OSINSTANCE_AVAILABLE
8347 addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"actual number of matrix expressions greater than number attribute");
8353 osnlData->
sumVec.clear();
8355 osnlData->
maxVec.clear();
8356 osnlData->
minVec.clear();
8367 parserData->
parser_errors +=
addErrorMsg( NULL, osinstance, parserData, osglData, osnlData,
"mandatory attribute idx is missing");
8374 #ifdef OSINSTANCE_AVAILABLE
8375 osinstance->instanceData->matrixProgramming->matrixExpressions->expr[ osnlData->
tmpnlcount]->idx = osglData->
idx;
8376 osinstance->instanceData->matrixProgramming->matrixExpressions->expr[ osnlData->
tmpnlcount]->matrixExpressionTree
8385 #ifdef OSINSTANCE_AVAILABLE
8387 osinstance->instanceData->matrixProgramming->matrixExpressions
8392 "unknown shape specified in matrix transformation");
8417 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
8433 #if ! YYERROR_VERBOSE
8434 yyerror (&yylloc, osinstance, parserData, osglData, osnlData,
YY_(
"syntax error"));
8443 if (yymsg != yymsgbuf)
8447 yymsg_alloc = yyalloc;
8455 if (0 < yysize && yysize <= yymsg_alloc)
8458 yyerror (&yylloc, osinstance, parserData, osglData, osnlData, yymsg);
8462 yyerror (&yylloc, osinstance, parserData, osglData, osnlData,
YY_(
"syntax error"));
8470 yyerror_range[0] =
yylloc;
8472 if (yyerrstatus == 3)
8477 if (yychar <=
YYEOF)
8480 if (yychar ==
YYEOF)
8485 yydestruct (
"Error: discarding",
8486 yytoken, &yylval, &yylloc, osinstance, parserData, osglData, osnlData);
8507 yyerror_range[0] = yylsp[1-
yylen];
8541 yyerror_range[0] = *
yylsp;
8542 yydestruct (
"Error: popping",
8543 yystos[yystate], yyvsp, yylsp, osinstance, parserData, osglData, osnlData);
8551 yyerror_range[1] =
yylloc;
8578 #if !defined(yyoverflow) || YYERROR_VERBOSE
8583 yyerror (&yylloc, osinstance, parserData, osglData, osnlData,
YY_(
"memory exhausted"));
8590 yydestruct (
"Cleanup: discarding lookahead",
8591 yytoken, &yylval, &yylloc, osinstance, parserData, osglData, osnlData);
8596 while (yyssp != yyss)
8598 yydestruct (
"Cleanup: popping",
8599 yystos[*yyssp], yyvsp, yylsp, osinstance, parserData, osglData, osnlData);
8607 if (yymsg != yymsgbuf)
8611 return YYID (yyresult);
8632 std::ostringstream outStr;
8635 outStr << errormsg << std::endl;
8637 return outStr.str();
8655 if( osilparse( osinstance, parserData, osglData, osnlData) != 0) {
8665 if(c !=
'\n')
return false;
8673 const char *pchar = *p;
8677 const char *startOSiL =
"<osil";
8678 const char *pOSiLStart = strstr(pchar, startOSiL);
8679 if(pOSiLStart == NULL){
8684 const char *pOSiLEnd = strstr(pOSiLStart,
">");
8685 if(pOSiLEnd == NULL) {
osilerror_wrapper( pchar,osillineno,
"end of <osil> element missing");
return false;
8694 const char *startInstanceHeader =
"<instanceHeader";
8695 const char *endInstanceHeader =
"instanceHeader";
8696 const char *startName =
"ame";
8697 const char *startSource =
"ource";
8698 const char *startDescription =
"escription";
8699 const char *startFileCreator =
"ileCreator";
8700 const char *startLicence =
"icence";
8701 const char *endName =
"</name";
8702 const char *endSource =
"</source";
8703 const char *endDescription =
"</description";
8704 const char *endFileCreator =
"</fileCreator";
8705 const char *endLicence =
"</licence";
8706 const char *pinstanceHeadStart = strstr(pchar, startInstanceHeader);
8707 char *pelementText = NULL;
8708 const char *ptemp = NULL;
8711 bool namePresent =
false;
8712 bool sourcePresent =
false;
8713 bool descriptionPresent =
false;
8714 bool fileCreatorPresent =
false;
8715 bool licencePresent =
false;
8717 if(pinstanceHeadStart == NULL ) {
8718 const char *startInstanceData =
"<instanceData";
8719 *p = strstr(pchar, startInstanceData);
8724 int kount = pinstanceHeadStart - pchar;
8725 while( kount-- > 0)
if(*(pchar++) ==
'\n') (*osillineno)++;
8738 if(*pchar !=
'>') {
osilerror_wrapper( pchar,osillineno,
"improperly formed <instanceHeader> element");
return false;}
8746 if(*pchar !=
'>') {
osilerror_wrapper( pchar,osillineno,
"improperly formed <instanceHeader> element");
return false;}
8765 if (*pchar !=
'<') {
osilerror_wrapper( pchar,osillineno,
"improperly formed <name> element");
return false;}
8778 while(*startName++ == *pchar) pchar++;
8779 if( (pchar - *p) != 5)
8811 ptemp = strstr( pchar, endName);
8817 elementSize = ptemp - pchar;
8818 pelementText =
new char[ elementSize + 1];
8819 strncpy(pelementText, pchar, elementSize);
8820 pelementText[ elementSize] =
'\0';
8823 delete [] pelementText;
8825 while(elementSize-- > 0)
8827 if(*pchar++ ==
'\n') (*osillineno)++;
8851 sourcePresent =
true;
8853 while(*startSource++ == *pchar) pchar++;
8854 if( (pchar - *p) != 7)
8886 ptemp = strstr( pchar, endSource);
8892 elementSize = ptemp - pchar;
8893 pelementText =
new char[ elementSize + 1];
8894 strncpy(pelementText, pchar, elementSize);
8895 pelementText[ elementSize] =
'\0';
8898 delete [] pelementText;
8900 while(elementSize-- > 0)
8902 if(*pchar++ ==
'\n') (*osillineno)++;
8920 if (descriptionPresent)
8926 descriptionPresent =
true;
8928 while(*startDescription++ == *pchar) pchar++;
8929 if( (pchar - *p) != 12)
8961 ptemp = strstr( pchar, endDescription);
8964 osilerror_wrapper( pchar,osillineno,
"improperly formed </description> element");
8967 elementSize = ptemp - pchar;
8968 pelementText =
new char[ elementSize + 1];
8969 strncpy(pelementText, pchar, elementSize);
8970 pelementText[ elementSize] =
'\0';
8973 delete [] pelementText;
8975 while(elementSize-- > 0)
8977 if(*pchar++ ==
'\n') (*osillineno)++;
8987 osilerror_wrapper( pchar,osillineno,
"improperly formed </description> element");
8995 if (fileCreatorPresent)
9001 fileCreatorPresent =
true;
9003 while(*startFileCreator++ == *pchar) pchar++;
9004 if( (pchar - *p) != 12)
9036 ptemp = strstr( pchar, endFileCreator);
9039 osilerror_wrapper( pchar,osillineno,
"improperly formed </fileCreator> element");
9042 elementSize = ptemp - pchar;
9043 pelementText =
new char[ elementSize + 1];
9044 strncpy(pelementText, pchar, elementSize);
9045 pelementText[ elementSize] =
'\0';
9048 delete [] pelementText;
9050 while(elementSize-- > 0)
9052 if(*pchar++ ==
'\n') (*osillineno)++;
9062 osilerror_wrapper( pchar,osillineno,
"improperly formed </fileCreator> element");
9076 licencePresent =
true;
9078 while(*startLicence++ == *pchar) pchar++;
9079 if( (pchar - *p) != 8)
9111 ptemp = strstr( pchar, endLicence);
9117 elementSize = ptemp - pchar;
9118 pelementText =
new char[ elementSize + 1];
9119 strncpy(pelementText, pchar, elementSize);
9120 pelementText[ elementSize] =
'\0';
9123 delete [] pelementText;
9125 while(elementSize-- > 0)
9127 if(*pchar++ ==
'\n') (*osillineno)++;
9146 while(*endInstanceHeader++ == *pchar) pchar++;
9147 if( (pchar - *p) != 16)
9149 osilerror_wrapper( pchar,osillineno,
"improperly formed </instanceHeader> element");
9158 osilerror_wrapper( pchar,osillineno,
"improperly formed </instanceHeader> element");
9175 const char *pchar = *p;
9176 const char *startInstanceData =
"<instanceData";
9181 if(*pchar !=
'<'){
osilerror_wrapper( pchar,osillineno,
"improperly formed <instanceData element");
return false;}
9184 while(*startInstanceData++ == *pchar) pchar++;
9185 if( (pchar - *p) != 13) {
osilerror_wrapper( pchar,osillineno,
"improperly formed <instanceData> element");
return false;}
9210 clock_t start, finish;
9211 #ifdef CHECK_PARSE_TIME
9216 const char *ch = *p;
9218 const char *c_numberOfVariables =
"numberOfVariables";
9219 const char *startVariables =
"<variables";
9220 const char *endVariables =
"</variables";
9221 const char *startVar =
"<var";
9222 const char *endVar =
"</var";
9224 char *attText = NULL;
9225 const char *name =
"name";
9227 const char *type =
"type";
9228 const char *
mult =
"mult";
9233 int numberOfVariables = 0;
9235 bool varlbattON =
false;
9236 bool varubattON = false ;
9237 bool vartypeattON =
false;
9238 bool varnameattON = false ;
9241 bool varmultattON =
false;
9242 bool foundVar =
false;
9249 while(*startVariables++ == *ch) ch++;
9251 if( (ch - *p) != 10) {
return true;}
9259 while(*c_numberOfVariables++ == *ch) ch++;
9260 if( (ch - *p) != 17) {
osilerror_wrapper( ch,osillineno,
"incorrect numberOfVariables attribute in <variables tag>");
return false;}
9264 numberOfVariables =
atoimod1( osillineno, attText, attTextEnd);
9266 if(numberOfVariables < 0) {
9267 osilerror_wrapper( ch,osillineno,
"there must be a nonnegative number of variables");
return false;
9270 if(numberOfVariables > 0){
9272 for(i = 0; i < numberOfVariables; i++){
9279 if(numberOfVariables > 0){
9281 if(*ch !=
'>' ) {
osilerror_wrapper( ch,osillineno,
"variables element does not have a proper closing >");
return false;}
9287 while(*startVar++ == *ch) ch++;
9288 if( (ch - *p) == 4) foundVar =
true;
9289 else {
osilerror_wrapper( ch,osillineno,
"there must be at least one <var> element");
return false;}
9294 vartypeattON =
false;
9295 varnameattON =
false;
9296 varmultattON =
false;
9303 while(*ch !=
'/' && *ch !=
'>'){
9307 while(*name++ == *ch) ch++;
9308 if( (ch - *p) != 4 ) {
osilerror_wrapper( ch,osillineno,
"error in variables name attribute");
return false;}
9310 if(varnameattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many variable name attributes");
return false;}
9311 varnameattON =
true;
9318 while(*type++ == *ch) ch++;
9319 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in variables type attribute");
return false;}
9321 if(vartypeattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many variable type attributes");
return false;}
9322 vartypeattON =
true;
9325 if( vt == 0 ) {
osilerror_wrapper( ch,osillineno,
"variable type not recognized");
return false;}
9331 if(*ch++ !=
'b') {
osilerror_wrapper( ch,osillineno,
"error in variables lower bound attribute");
return false;}
9332 if(varlbattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many variable lb attributes");
return false;}
9340 if(*ch++ !=
'b') {
osilerror_wrapper( ch,osillineno,
"error in variables upper bound attribute");
return false;}
9341 if(varubattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many variable ub attributes");
return false;}
9349 while(*mult++ == *ch) ch++;
9350 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in variables mult attribute");
return false;}
9352 if(varmultattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many variable mult attributes");
return false;}
9353 varmultattON =
true;
9355 varmult =
atoimod1( osillineno,attText, attTextEnd);
9375 if (varubattON ==
false)
9383 if( *ch !=
'/' && *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"incorrect end of <var> element");
return false;}
9386 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"incorrect end of <var> element");
return false;}
9392 while(*startVar++ == *ch) ch++;
9393 if( (ch - *p) == 4) {
9405 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improper ending to a <var> element");
return false;}
9412 while(*endVar++ == *ch) ch++;
9414 if( (ch - *p) != 5) {
osilerror_wrapper( ch,osillineno,
"</var> element missing");
return false;}
9418 if(*ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"</var> element missing >");
return false;}
9425 while(*startVar++ == *ch) ch++;
9426 if( (ch - *p) == 4) {
9435 if( ((varcount+varmult) == numberOfVariables) && (foundVar ==
true) ) {
osilerror_wrapper( ch,osillineno,
"attribute numberOfVariables is less than actual number found");
return false;}
9436 for (
int k=1;
k < varmult;
k++)
9447 varcount += varmult;
9449 if(varcount < numberOfVariables) {
osilerror_wrapper( ch,osillineno,
"attribute numberOfVariables is greater than actual number found");
return false;}
9452 while(*endVariables++ == *ch) ch++;
9453 if( (ch - *p) != 11) {
osilerror_wrapper( ch,osillineno,
"cannot find </variables> tag");
return false;}
9456 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </variables> tag");
return false;}
9460 if(numberOfVariables < 0) {
osilerror_wrapper( ch,osillineno,
"cannot have a negative number of variables");
return false;}
9468 if( *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly closed variables tag");
return false;}
9473 if( *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly closed variables tag");
return false;}
9478 while( *endVariables++ == *ch) ch++;
9479 if( (ch - *p) != 11) {
osilerror_wrapper( ch,osillineno,
"cannot find </variables> tag");
return false; }
9482 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </variables> tag");
return false;}
9487 #ifdef CHECK_PARSE_TIME
9488 duration = (double) (finish - start) / CLOCKS_PER_SEC;
9489 printf(
"TIME TO PARSE VARIABLES = %f\n", duration);
9497 clock_t start, finish;
9498 #ifdef CHECK_PARSE_TIME
9503 const char *ch = *p;
9505 const char *c_numberOfObjectives =
"numberOfObjectives";
9506 const char *startObjectives =
"<objectives";
9507 const char *endObjectives =
"</objectives";
9508 const char *startObj =
"<obj";
9509 const char *endObj =
"</obj";
9511 char *attText = NULL;
9512 const char *constant =
"constant";
9513 const char *maxOrMin =
"maxOrMin";
9514 const char *numberOfObjCoef =
"numberOfObjCoef";
9515 const char *weight =
"weight";
9516 const char *name =
"name";
9517 const char *
mult =
"mult";
9521 bool objmaxOrMinattON =
false;
9522 bool objnameattON =
false;
9523 bool objconstantattON =
false;
9524 bool objweightattON =
false;
9525 bool objmultattON =
false;
9526 bool objnumberOfObjCoefattON =
false;
9528 int numberOfObjectives;
9536 while( *startObjectives++ == *ch) ch++;
9537 if( (ch - *p) != 11) {
9551 numberOfObjectives = 1;
9556 while( *c_numberOfObjectives++ == *ch) ch++;
9557 if( (ch - *p) != 18) {
osilerror_wrapper( ch,osillineno,
"incorrect numberOfObjectives attribute in <objectives> tag");
return false;}
9559 numberOfObjectives =
atoimod1( osillineno, attText, attTextEnd);
9563 if(numberOfObjectives > 0){
9576 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"the objectives element does not have a proper closing");
return false;}
9579 for(i = 0; i < numberOfObjectives; i++){
9586 while( *startObj++ == *ch) ch++;
9587 if( (ch - *p) == 4) foundObj =
true;
9588 else {
osilerror_wrapper( ch,osillineno,
"there must be at least one <obj> element");
return false;}
9592 objmaxOrMinattON =
false;
9593 objnameattON =
false;
9594 objconstantattON =
false;
9595 objweightattON =
false;
9596 objmultattON =
false;
9597 objnumberOfObjCoefattON =
false;
9602 while(*ch !=
'/' && *ch !=
'>'){
9605 if( *(ch+1) ==
'u'){
9607 while( *numberOfObjCoef++ == *ch) ch++;
9608 numberOfObjCoef -= 16;
9609 if( ( (ch - *p) != 15) ) {
osilerror_wrapper( ch,osillineno,
"error in objective numberOfObjCoef attribute");
return false;}
9611 if(objnumberOfObjCoefattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many obj numberOfObjCoef attributes");
return false;}
9612 objnumberOfObjCoefattON =
true;
9623 while( *name++ == *ch) ch++;
9625 if( ( (ch - *p) != 4) ) {
osilerror_wrapper( ch,osillineno,
"error in objective name attribute");
return false;}
9627 if(objnameattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many obj name attributes");
return false;}
9628 objnameattON =
true;
9637 while( *constant++ == *ch) ch++;
9639 if( ( (ch - *p) != 8) ) {
osilerror_wrapper( ch,osillineno,
"error in objective constant attribute");
return false;}
9641 if(objconstantattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many obj constant attributes");
return false;}
9642 objconstantattON =
true;
9650 while( *weight++ == *ch) ch++;
9652 if( ( (ch - *p) != 6) ) {
osilerror_wrapper( ch,osillineno,
"error in objective weight attribute");
return false;}
9654 if(objweightattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many obj weight attributes");
return false;}
9655 objweightattON =
true;
9664 while( *maxOrMin++ == *ch) ch++;
9666 if( ( ( ch - *p) != 8) ) {
osilerror_wrapper( ch,osillineno,
"error in objective maxOrMin attribute");
return false;}
9668 if(objmaxOrMinattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many obj maxOrMin attributes");
return false;}
9669 objmaxOrMinattON =
true;
9671 if( (strcmp(
"max", attText) != 0 ) && (strcmp(
"min", attText) != 0 ) ){
osilerror_wrapper( ch,osillineno,
"maxOrMin attribute in objective must be a max or min");
return false;}
9678 while( *mult++ == *ch) ch++;
9680 if( ( (ch - *p) != 4) ) {
osilerror_wrapper( ch,osillineno,
"error in objective mult attribute");
return false;}
9682 if(objmultattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many obj mult attributes");
return false;}
9683 objmultattON =
true;
9685 objmult =
atoimod1( osillineno,attText, attTextEnd);
9711 if( *ch !=
'/' && *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"incorrect end of <obj> element");
return false;}
9714 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"incorrect end of <obj> element");
return false;}
9719 for(i = 0; startObj[i] == *ch; i++, ch++);
9720 if(i == 4) foundObj =
true;
9721 else foundObj =
false;
9726 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improper ending to a <obj> element");
return false;}
9734 for(i = 0; endObj[i] == *ch; i++, ch++);
9735 if(i != 5) {
osilerror_wrapper( ch,osillineno,
"</obj> element missing");
return false;}
9739 if(*ch++ !=
'>'){
osilerror_wrapper( ch,osillineno,
"</obj> element missing");
return false;}
9744 for(i = 0; startObj[i] == *ch; i++, ch++);
9745 if(i == 4) foundObj =
true;
9746 else foundObj =
false;
9748 if( ((objcount+objmult) == numberOfObjectives) && (foundObj ==
true)) {
osilerror_wrapper( ch,osillineno,
"attribute numberOfObjectives is less than actual number found");
return false;}
9749 for (
int k=1;
k < objmult;
k++)
9774 objcount += objmult;
9776 if(objcount < numberOfObjectives) {
osilerror_wrapper( ch,osillineno,
"attribute numberOfObjectives is greater than actual number found");
return false;}
9779 for(i = 0; endObjectives[i] == *ch; i++, ch++);
9780 if(i != 12) {
osilerror_wrapper( ch,osillineno,
"cannot find </objectives> tag");
return false; }
9783 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </objectives> tag");
return false;}
9788 if(numberOfObjectives < 0) {
osilerror_wrapper( ch,osillineno,
"cannot have a negative number of objectives");
return false;}
9796 if( *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly closed objectives tag");
return false;}
9801 if( *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly closed objectives tag");
return false;}
9805 for(i = 0; endObjectives[i] == *ch; i++, ch++);
9806 if(i != 12) {
osilerror_wrapper( ch,osillineno,
"cannot find </objectives> tag");
return false; }
9809 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </objectives> tag");
return false;}
9814 #ifdef CHECK_PARSE_TIME
9815 duration = (double) (finish - start) / CLOCKS_PER_SEC;
9816 printf(
"TIME TO PARSE OBJECTIVES = %f\n", duration);
9823 clock_t start, finish;
9824 #ifdef CHECK_PARSE_TIME
9829 const char *ch = *p;
9831 const char *c_numberOfConstraints =
"numberOfConstraints";
9832 const char *startConstraints =
"<constraints";
9833 const char *endConstraints =
"</constraints";
9834 const char *startCon =
"<con";
9835 const char *endCon =
"</con";
9837 char *attText = NULL;
9838 const char *name =
"name";
9839 const char *constant =
"constant";
9840 const char *
mult =
"mult";
9844 int numberOfConstraints = 0;
9846 bool conlbattON = false ;
9847 bool conubattON =
false;
9848 bool connameattON =
false;
9849 bool conconstantattON =
false;
9850 bool conmultattON =
false;
9851 bool foundCon =
false;
9859 for(i = 0; startConstraints[i] == *ch; i++, ch++);
9860 while( *startConstraints++ == *ch) ch++;
9861 if( (ch - *p) != 12) {
9872 while( *c_numberOfConstraints++ == *ch) ch++;
9873 if( (ch - *p) != 19) {
osilerror_wrapper( ch,osillineno,
"incorrect numberOfConstraints attribute in <constraints> tag");
return false;}
9877 numberOfConstraints =
atoimod1( osillineno, attText, attTextEnd);
9881 if(numberOfConstraints > 0){
9884 for(i = 0; i < numberOfConstraints; i++){
9890 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"the constraints element does not have a proper closing");
return false;}
9895 while( *startCon++ == *ch) ch++;
9896 if( (ch - *p) == 4) foundCon =
true;
9897 else {
osilerror_wrapper( ch,osillineno,
"there must be at least one <con> element");
return false;}
9900 conlbattON = false ;
9902 connameattON =
false;
9903 conconstantattON =
false;
9904 conmultattON =
false;
9910 while(*ch !=
'/' && *ch !=
'>'){
9914 while( *name++ == *ch) ch++;
9915 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in constraints name attribute");
return false;}
9916 if(connameattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many con name attributes");
return false;}
9918 connameattON =
true;
9925 while( *constant++ == *ch) ch++;
9926 if( ((ch - *p) != 8) ) {
osilerror_wrapper( ch,osillineno,
"error in constraint constant attribute");
return false;}
9927 if(conconstantattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many con constant attributes");
return false;}
9929 conconstantattON =
true;
9936 if(*ch++ !=
'b') {
osilerror_wrapper( ch,osillineno,
"error in constraint lb attribute");
return false;}
9937 if(conlbattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many con lb attributes");
return false;}
9945 if(*ch++ !=
'b') {
osilerror_wrapper( ch,osillineno,
"error in constraint ub attribute");
return false;}
9946 if(conubattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many con ub attributes");
return false;}
9954 while( *mult++ == *ch) ch++;
9955 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in constraints mult attribute");
return false;}
9956 if(conmultattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many con mult attributes");
return false;}
9958 conmultattON =
true;
9960 conmult =
atoimod1( osillineno,attText, attTextEnd);
9982 if( *ch !=
'/' && *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"incorrect end of <con> element");
return false;}
9985 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"incorrect end of <con> element");
return false;}
9991 while( *startCon++ == *ch) ch++;
9992 if( (ch - *p) == 4){
10004 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improper ending to a <con> element");
return false;}
10011 while( *endCon++ == *ch) ch++;
10012 if( (ch - *p) != 5) {
osilerror_wrapper( ch,osillineno,
"</con> element missing");
return false;}
10017 if(*ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"</con> element missing >");
return false;}
10024 while( *startCon++ == *ch) ch++;
10025 if( (ch - *p) == 4){
10034 if( ((concount+conmult) == numberOfConstraints) && (foundCon ==
true) ) {
osilerror_wrapper( ch,osillineno,
"attribute numberOfConstraints is less than actual number found");
return false;}
10035 for (
int k=1;
k < conmult;
k++)
10046 concount += conmult;
10048 if(concount < numberOfConstraints) {
osilerror_wrapper( ch,osillineno,
"attribute numberOfConstraints is greater than actual number found");
return false;}
10051 while( *endConstraints++ == *ch) ch++;
10052 if( (ch - *p) != 13) {
osilerror_wrapper( ch,osillineno,
"cannot find </constraints> tag");
return false;}
10055 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </constraints> tag");
return false;}
10060 if(numberOfConstraints < 0) {
osilerror_wrapper( ch,osillineno,
"cannot have a negative number of constraints");
return false;}
10068 if( *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly closed constraints tag");
return false;}
10073 if( *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly closed constraints tag");
return false;}
10078 while( *endConstraints++ == *ch) ch++;
10079 if( (ch - *p) != 13) {
osilerror_wrapper( ch,osillineno,
"cannot find </constraints> tag");
return false; }
10082 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </constraints> tag");
return false;}
10087 #ifdef CHECK_PARSE_TIME
10088 duration = (double) (finish - start) / CLOCKS_PER_SEC;
10089 printf(
"TIME TO PARSE CONSTRAINTS = %f\n", duration);
10098 const char *ch = *p;
10099 const char *c_numberOfValues =
"numberOfValues";
10100 const char *startlinearConstraintCoefficients =
"<linearConstraintCoefficients";
10101 const char *endlinearConstraintCoefficients =
"</linearConstraintCoefficients";
10103 char *attText = NULL;
10105 int numberOfValues;
10111 while( *startlinearConstraintCoefficients++ == *ch) ch++;
10112 if( (ch - *p) != 29) {
10124 while( *c_numberOfValues++ == *ch) ch++;
10125 if( (ch - *p) != 14) {
osilerror_wrapper( ch,osillineno,
"incorrect numberOfValues attribute in <linearConstraintCoefficients> tag");
return false;}
10129 numberOfValues =
atoimod1( osillineno, attText, attTextEnd);
10132 if(numberOfValues <= 0) {
osilerror_wrapper( ch,osillineno,
"the number of nonlinear nonzeros must be positive");
return false;}
10139 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"the linearConstraintCoefficients element does not have a proper closing");
return false;}
10141 if(numberOfValues > 0) {
osilerror_wrapper( ch,osillineno,
"numberOfValues positive, but there are no values");
return false;}
10146 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"the <linearConstraintCoefficients> element does not have a proper closing");
return false;}
10149 if(
parseStart( &ch, osinstance, osillineno) !=
true) {
osilerror_wrapper( ch,osillineno,
"error processing <start> element");
return false;}
10153 if(
parseColIdx( &ch, osinstance, osillineno) ==
true)
10155 if(
parseRowIdx( &ch, osinstance, osillineno) ==
true)
10163 if(
parseRowIdx( &ch, osinstance, osillineno) !=
true)
10170 if (
parseColIdx( &ch, osinstance, osillineno) ==
true )
10178 if(
parseValue( &ch, osinstance, osillineno) !=
true) {
osilerror_wrapper( ch,osillineno,
"could not parse <value> element");
return false;}
10182 while( *endlinearConstraintCoefficients++ == *ch) ch++;
10183 if( (ch - *p) != 30) {
osilerror_wrapper( ch,osillineno,
"cannot find </linearConstraintCoefficients> tag");
return false;}
10186 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </linearConstraintCoefficients> tag");
return false;}
10193 clock_t start, finish;
10194 #ifdef CHECK_PARSE_TIME
10199 const char *ch = *p;
10201 const char* startStart =
"<start";
10202 const char* endStart =
"</start";
10203 const char* startEl =
"<el";
10204 const char* endEl =
"</el";
10206 char *attText = NULL;
10207 const char *incr =
"incr";
10208 const char *
mult =
"mult";
10212 bool elmultattON = false ;
10213 bool elincrattON =
false;
10214 bool foundEl =
false;
10220 while( *startStart++ == *ch) ch++;
10221 if( (ch - *p) != 6) {
10229 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed <start> element");
return false;}
10235 while( *startEl++ == *ch) ch++;
10237 if( (ch - *p) != 3) {
10242 char* b64string =
parseBase64(&ch, &dataSize, osillineno );
10243 if( b64string == NULL) {
osilerror_wrapper( ch,osillineno,
"<start> must have children or base64 data");
return false;}
10245 int base64decodeddatalength = base64decodeddata.length();
10246 int *intvec = NULL;
10248 intvec = (
int*)&base64decodeddata[0];
10249 for (i = 0; i < (base64decodeddatalength/dataSize); i++){
10252 delete [] b64string;
10261 elmultattON = false ;
10262 elincrattON =
false;
10269 while(*ch !=
'/' && *ch !=
'>'){
10273 while( *incr++ == *ch) ch++;
10274 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in starts incr attribute");
return false;}
10275 if(elincrattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many el incr attributes");
return false;}
10277 elincrattON =
true;
10279 elincr =
atoimod1( osillineno,attText, attTextEnd);
10284 while( *mult++ == *ch) ch++;
10285 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in starts mult attribute");
return false;}
10286 if(elmultattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many el mult attributes");
return false;}
10288 elmultattON =
true;
10290 elmult =
atoimod1( osillineno,attText, attTextEnd);
10312 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed <el> tag");
return false;}
10319 while( *ch !=
'<' && *ch != EOF){
10323 if(*ch !=
'<') {
osilerror_wrapper( ch,osillineno,
"cannot find an </el>");
return false;}
10329 osilerror_wrapper( ch, osillineno,
"number of start elements exceeds the maximum number of rows or columns plus 1");
10332 for (
int k=1;
k < elmult;
k++)
10340 while( *endEl++ == *ch) ch++;
10342 if( (ch - *p) != 4 ) {
osilerror_wrapper( ch,osillineno,
"cannot find an </el>");
return false;}
10345 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </el> tag");
return false;}
10350 while( *startEl++ == *ch) ch++;
10351 if( (ch - *p) == 3){
10363 osilerror_wrapper( ch, osillineno,
"the value of the last start element is not equal to numberOfValues");
10367 while( *endStart++ == *ch) ch++;
10368 if( (ch - *p) != 7) {
osilerror_wrapper( ch,osillineno,
"cannot find </start> tag");
return false;}
10371 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </start> tag");
return false;}
10375 #ifdef CHECK_PARSE_TIME
10376 duration = (double) (finish - start) / CLOCKS_PER_SEC;
10377 printf(
"TIME TO PARSE STARTS = %f\n", duration);
10386 clock_t start, finish;
10387 #ifdef CHECK_PARSE_TIME
10392 const char *ch = *p;
10394 const char* startRowIdx =
"<rowIdx";
10395 const char* endRowIdx =
"</rowIdx";
10396 const char* startEl =
"<el";
10397 const char* endEl =
"</el";
10399 char *attText = NULL;
10400 const char *incr =
"incr";
10401 const char *
mult =
"mult";
10405 bool elmultattON = false ;
10406 bool elincrattON =
false;
10407 bool foundEl =
false;
10415 while( *startRowIdx++ == *ch) ch++;
10416 if( (ch - *p) != 7) {
10424 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed <rowIdx> element");
return false;}
10430 while( *startEl++ == *ch) ch++;
10432 if( (ch - *p) != 3) {
10437 char* b64string =
parseBase64(&ch, &dataSize, osillineno );
10438 if( b64string == NULL) {
osilerror_wrapper( ch,osillineno,
"<rowIdx> must have children or base64 data");
return false;}
10440 int base64decodeddatalength = base64decodeddata.length();
10441 int *intvec = NULL;
10442 numberOfEl = (base64decodeddatalength/dataSize);
10448 intvec = (
int*)&base64decodeddata[0];
10449 for(i = 0; i < numberOfEl; i++){
10453 delete [] b64string;
10460 osilerror_wrapper( ch, osillineno,
"we are storing in column major format, but number of start elements not equal number of variables + 1");
10468 elmultattON = false ;
10469 elincrattON =
false;
10476 while(*ch !=
'/' && *ch !=
'>'){
10480 while( *incr++ == *ch) ch++;
10481 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in rowIdx incr attribute");
return false;}
10482 if(elincrattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many el incr attributes");
return false;}
10484 elincrattON =
true;
10486 elincr =
atoimod1( osillineno,attText, attTextEnd);
10491 while( *mult++ == *ch) ch++;
10492 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in rowIdx mult attribute");
return false;}
10493 if(elmultattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many el mult attributes");
return false;}
10495 elmultattON =
true;
10497 elmult =
atoimod1( osillineno,attText, attTextEnd);
10519 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed <el> tag");
return false;}
10526 while( *ch !=
'<' && *ch != EOF){
10530 if(*ch !=
'<') {
osilerror_wrapper( ch,osillineno,
"cannot find an </el>");
return false;}
10535 osilerror_wrapper( ch, osillineno,
"number of rowIdx elements exceeds the number declared");
10538 for (
int k=1;
k < elmult;
k++)
10546 while( *endEl++ == *ch) ch++;
10548 if( (ch - *p) != 4 ) {
osilerror_wrapper( ch,osillineno,
"cannot find an </el>");
return false;}
10551 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </el> tag");
return false;}
10556 while( *startEl++ == *ch) ch++;
10557 if( (ch - *p) == 3){
10569 while( *endRowIdx++ == *ch) ch++;
10570 if( (ch - *p) != 8) {
osilerror_wrapper( ch,osillineno,
"cannot find </rowIdx> tag");
return false;}
10573 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </rowIdx> tag");}
10576 if(kount < osinstance->instanceData->linearConstraintCoefficients->numberOfValues) {
osilerror_wrapper( ch,osillineno,
"numberOfLinearCoefficients attribute greater than number of row indices found");
return false;}
10578 #ifdef CHECK_PARSE_TIME
10579 duration = (double) (finish - start) / CLOCKS_PER_SEC;
10580 printf(
"TIME TO PARSE ROW INDEXES = %f\n", duration);
10588 clock_t start, finish;
10589 #ifdef CHECK_PARSE_TIME
10594 const char *ch = *p;
10596 const char* startColIdx =
"<colIdx";
10597 const char* endColIdx =
"</colIdx";
10598 const char* startEl =
"<el";
10599 const char* endEl =
"</el";
10601 char *attText = NULL;
10602 const char *incr =
"incr";
10603 const char *
mult =
"mult";
10607 bool elmultattON = false ;
10608 bool elincrattON =
false;
10609 bool foundEl =
false;
10617 while( *startColIdx++ == *ch) ch++;
10618 if( (ch - *p) != 7) {
10626 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed <colIdx> element");
return false;}
10632 while( *startEl++ == *ch) ch++;
10634 if( (ch - *p) != 3) {
10639 char* b64string =
parseBase64(&ch, &dataSize, osillineno );
10640 if( b64string == NULL) {
osilerror_wrapper( ch,osillineno,
"<colIdx> must have children or base64 data");
return false;}
10642 int base64decodeddatalength = base64decodeddata.length();
10643 int *intvec = NULL;
10644 numberOfEl = (base64decodeddatalength/dataSize);
10650 intvec = (
int*)&base64decodeddata[0];
10651 for(i = 0; i < numberOfEl; i++){
10655 delete [] b64string;
10662 osilerror_wrapper( ch, osillineno,
"we are storing in row major format, but number of start elements not equal number of rows + 1");
10670 elmultattON = false ;
10671 elincrattON =
false;
10678 while(*ch !=
'/' && *ch !=
'>'){
10682 while( *incr++ == *ch) ch++;
10683 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in colIdx incr attribute");
return false;}
10684 if(elincrattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many el incr attributes");
return false;}
10686 elincrattON =
true;
10688 elincr =
atoimod1( osillineno,attText, attTextEnd);
10693 while( *mult++ == *ch) ch++;
10694 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in colIdx mult attribute");
return false;}
10695 if(elmultattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many el mult attributes");
return false;}
10697 elmultattON =
true;
10699 elmult =
atoimod1( osillineno,attText, attTextEnd);
10721 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed <el> tag");
return false;}
10728 while( *ch !=
'<' && *ch != EOF){
10732 if(*ch !=
'<') {
osilerror_wrapper( ch,osillineno,
"cannot find an </el>");
return false;}
10736 osilerror_wrapper( ch, osillineno,
"number of colIdx elements exceeds the number declared");
10739 for (
int k=1;
k < elmult;
k++)
10747 while( *endEl++ == *ch) ch++;
10749 if( (ch - *p) != 4 ) {
osilerror_wrapper( ch,osillineno,
"cannot find an </el>");
return false;}
10752 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </el> tag");
return false;}
10757 while( *startEl++ == *ch) ch++;
10758 if( (ch - *p) == 3){
10770 while( *endColIdx++ == *ch) ch++;
10771 if( (ch - *p) != 8) {
osilerror_wrapper( ch,osillineno,
"cannot find </colIdx> tag");
return false;}
10774 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </colIdx> tag");
return false;}
10777 if(kount < osinstance->instanceData->linearConstraintCoefficients->numberOfValues) {
osilerror_wrapper( ch,osillineno,
"numberOfLinearCoefficients attribute greater than number of column indices found");
return false;}
10779 #ifdef CHECK_PARSE_TIME
10780 duration = (double) (finish - start) / CLOCKS_PER_SEC;
10781 printf(
"TIME TO PARSE COLUMN INDEXES = %f\n", duration);
10789 clock_t start, finish;
10790 #ifdef CHECK_PARSE_TIME
10795 const char *ch = *p;
10797 const char* startValue =
"<value";
10798 const char* endValue =
"</value";
10799 const char* startEl =
"<el";
10800 const char* endEl =
"</el";
10802 char *attText = NULL;
10803 const char *incr =
"incr";
10804 const char *
mult =
"mult";
10808 bool elmultattON = false ;
10809 bool elincrattON =
false;
10810 bool foundEl =
false;
10816 while( *startValue++ == *ch) ch++;
10817 if( (ch - *p) != 6) {
10825 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed <value> element");
return false;}
10831 while( *startEl++ == *ch) ch++;
10833 if( (ch - *p) != 3) {
10838 char* b64string =
parseBase64(&ch, &dataSize, osillineno );
10839 if( b64string == NULL) {
osilerror_wrapper( ch,osillineno,
"<start> must have children or base64 data");
return false;};
10841 int base64decodeddatalength = base64decodeddata.length();
10847 if(
sizeof(
double) != dataSize ) {
10849 "base 64 encoded with a size of double different than on this machine");
10852 union doubleBuffer{
10853 char memAlign[
sizeof(double)];
10857 for(i = 0; i < (base64decodeddatalength/dataSize); i++){
10858 for(kj = 0; kj < dataSize; kj++){
10859 dbuf.memAlign[ kj] = base64decodeddata[kountChar];
10866 delete [] b64string;
10874 elmultattON = false ;
10875 elincrattON =
false;
10882 while(*ch !=
'/' && *ch !=
'>'){
10886 while( *incr++ == *ch) ch++;
10887 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in values incr attribute");
return false;}
10888 if(elincrattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many el incr attributes");
return false;}
10890 elincrattON =
true;
10892 elincr =
atofmod1( osillineno,attText, attTextEnd);
10897 while( *mult++ == *ch) ch++;
10898 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in values mult attribute");
return false;}
10899 if(elmultattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many el mult attributes");
return false;}
10901 elmultattON =
true;
10903 elmult =
atoimod1( osillineno,attText, attTextEnd);
10925 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed <el> tag");
return false;}
10931 while( *ch !=
'<' && *ch != EOF){
10935 if(*ch !=
'<') {
osilerror_wrapper( ch,osillineno,
"cannot find an </el>");
return false;}
10939 osilerror_wrapper( ch, osillineno,
"number of nonzero elements exceeds the number declared");
10942 for (
int k=1;
k < elmult;
k++)
10950 while( *endEl++ == *ch) ch++;
10952 if( (ch - *p) != 4 ) {
osilerror_wrapper( ch,osillineno,
"cannot find an </el>");
return false;}
10955 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </el> tag");
return false;}
10960 while( *startEl++ == *ch) ch++;
10961 if( (ch - *p) == 3){
10975 while( *endValue++ == *ch) ch++;
10976 if( (ch - *p) != 7) {
osilerror_wrapper( ch,osillineno,
"cannot find </value> tag");
return false;}
10979 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </value> tag");
return false;}
10981 if(kount < osinstance->instanceData->linearConstraintCoefficients->numberOfValues){
osilerror_wrapper( ch,osillineno,
"numberOfLinearCoefficients greater than number of values found");
return false;}
10984 #ifdef CHECK_PARSE_TIME
10985 duration = (double) (finish - start) / CLOCKS_PER_SEC;
10986 printf(
"TIME TO PARSE VALUES = %f\n", duration);
10995 const char *ch = *p;
10996 const char* startCoef =
"<coef";
10997 const char* endCoef =
"</coef";
10998 const char* c_idx =
"idx";
10999 char *attText = NULL;
11001 int numberOfObjCoef = 0;
11004 if(numberOfObjCoef > 0) {
11005 for(k = 0; k < numberOfObjCoef; k++){
11009 while( *startCoef++ == *ch) ch++;
11010 if( (ch - *p) != 5) {
osilerror_wrapper( ch,osillineno,
"improper <coef> element");
return false;}
11016 while( *c_idx++ == *ch) ch++;
11017 if( (ch - *p) != 3) {
osilerror_wrapper( ch,osillineno,
"incorrect idx attribute in objective function <idx> tag");
return false;}
11027 if(*ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"incorrect <coef> element") ;
return false;}
11031 for(; *ch !=
'<' && *ch != EOF; ch++);
11035 if(*ch !=
'<') {
osilerror_wrapper( ch,osillineno,
"improper </coef> tag");
return false;}
11038 while( *endCoef++ == *ch) ch++;
11039 if( (ch - *p) != 6) {
osilerror_wrapper( ch,osillineno,
"improper </coef> element");
return false;}
11044 if(*ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"incorrect </coef> element") ;
return false;}
11054 const char *ch = *p;
11055 const char *sizeOf =
"sizeOf";
11057 const char *startBase64BinaryData =
"<base64BinaryData";
11058 const char *endBase64BinaryData =
"</base64BinaryData";
11059 char *attText = NULL;
11060 char *b64string = NULL;
11063 for(i = 0; startBase64BinaryData[i] == *ch; i++, ch++);
11072 for(i = 0; sizeOf[i] == *ch; i++, ch++);
11073 if(i != 6) {
osilerror_wrapper( ch,osillineno,
"incorrect sizeOf attribute in <base64BinaryData> element");
return NULL;}
11076 if( *ch !=
'=') {
osilerror_wrapper( ch, osillineno,
"found an attribute not defined");
return NULL;} \
11083 for( ; *ch !=
'\"'; ch++); \
11086 if(*ch ==
'\'') { \
11090 for( ; *ch !=
'\''; ch++); \
11094 numChar = ch - *p; \
11095 attText =
new char[numChar + 1];
\
11096 for(ki = 0; ki < numChar; ki++) attText[ki] = *((*p)++); \
11097 attText[ki] =
'\0'; \
11098 attTextEnd = &attText[ki];
11100 *dataSize =
atoimod1( osillineno, attText, attTextEnd);
11106 if(*ch !=
'>' ) {
osilerror_wrapper( ch,osillineno,
"<base64BinaryData> element does not have a proper closing >");
return NULL;}
11109 const char *b64textstart = ch;
11111 for(; *ch !=
'<' && *ch != EOF; ch++);
11112 const char *b64textend = ch;
11114 for(i = 0; endBase64BinaryData[i] == *ch; i++, ch++);
11115 if(i != 18) {
osilerror_wrapper( ch,osillineno,
" problem with <base64BinaryData> element");
return NULL;}
11116 int b64len = b64textend - b64textstart;
11117 b64string =
new char[ b64len + 1];
11118 for(ki = 0; ki < b64len; ki++) b64string[ki] = b64textstart[ ki];
11119 b64string[ki] =
'\0';
11123 if(*ch !=
'>' ) {
osilerror_wrapper( ch,osillineno,
"</base64BinaryData> element does not have a proper closing >");
return NULL;}
11131 double atofmod1(
int* osillineno,
const char *number,
const char *numberend){
11139 if(pEnd != numberend)
osilerror_wrapper( pEnd, osillineno,
"error in parsing an XSD:double");
11145 int atoimod1(
int* osillineno,
const char *number,
const char *numberend){
11152 sign = (number[ i] ==
'-') ? -1 : 1;
11153 if (number[ i] ==
'+' || number[ i] ==
'-') i++;
11154 for(ival = 0;
ISDIGIT( number[ i]); i++){
11155 ival = 10*ival + (number[ i] -
'0') ;
11157 if(i == endWhiteSpace) {
osilerror_wrapper( number,osillineno,
"error in parsing an XSD:int" ); }
11160 if(number[i] == *numberend){
11167 const int numErrorChar = 20;
11168 char errorArray[100] =
"";
11169 strncpy(errorArray, ch, numErrorChar);
11170 std::ostringstream outStr;
11171 std::string error = errormsg;
11172 error =
"PARSER ERROR: Input is either not valid or well formed: " + error;
11173 outStr << error << endl;
11174 outStr <<
"Here are " ;
11175 outStr << numErrorChar ;
11176 outStr <<
" characters currently being pointed to in the input string: ";
11177 outStr << errorArray;
11179 outStr <<
"See line number: " << *osillineno << endl;
11180 error = outStr.str();
#define BASEMATRIXSTARTCOLATT
#define EMPTYMATRIXTYPEATT
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
bool targetMatrixFirstColPresent
bool targetMatrixFirstRowPresent
bool stageVariablesOrdered
...we need to track whether the variables, constraints, objectives are given in temporal order...
bool isnewline(char c, int *osillineno)
int idx
The index of the matrix.
#define SEMIDEFINITECONESTART
double coef
coef is an option coefficient on the variable, the default value is 1.0
bool intervalstartON
intervalstartON is true if we have found a start time for the time interval
#define POLYHEDRALCONESTART
std::string name
name corresponds to the optional attribute that holds the variable name, the default value is empty ...
Constraints * constraints
constraints is a pointer to a Constraints object
bool parseStart(const char **pchar, OSInstance *osinstance, int *osillineno)
void yygetOSInstance(const char *osil, OSInstance *osinstance, OSiLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData)
#define FILEDESCRIPTIONSTART
bool referenceMatrixIdxPresent
std::string name
the name of the objective function
#define INSTANCENAMESTART
This file defines the OSnLNode class along with its derived classes.
The in-memory representation of a polyhedral cone.
The in-memory representation of a rotated quadratic cone.
#define MATRIXOBJECTIVESSTART
a data structure to represent row reference elements in a MatrixType object Each nonzero element is o...
bool numberOfConesPresent
int tmpnlcount
tmpnlcount counts the number of nl nodes actually found.
The in-memory representation of the <matrices> element.
bool parseInstanceData(const char **pchar, OSInstance *osinstance, int *osillineno)
#define FILELICENCESTARTANDEND
The in-memory representation of the <obj> element.
int idx
idx gives the index of this variable
std::vector< MatrixNode * > mtxBlocksVec
The in-memory representation of the <matrixObj> element.
IntVector * rowIdx
a pointer of row indices if the problem is stored by column
#define MATRIXSUBMATRIXATSTART
unsigned short int yytype_uint16
bool stagenameON
stagenameON is true if the current stage was given a name
int matrixCounter
We also need to keep track locally of the number of matrices.
The OSnLNodeMatrixTrace Class.
OSnLMNode * createExpressionTreeFromPrefix(std::vector< ExprNode * > nlNodeVec)
Take a vector of ExprNodes (OSnLNodes and OSnLMNodes) in prefix format and create a matrix-valued OSE...
int * osglIntArray
data structure to process an IntVector and hold the data temporarily
#define MATRIXTOSCALARSTART
bool distortionMatrixPresent
a data structure to represent the nonzeros in a generalMatrix element
#define IDENTITYMATRIXEND
bool parseLinearConstraintCoefficients(const char **pchar, OSInstance *osinstance, int *osillineno)
#define CONREFERENCEELEMENTSEND
a data structure to represent the constant elements in a MatrixType object
#define MATRIXCONSTRAINTSSTART
unsigned char yytype_uint8
#define MATRIXCONSTRAINTSEND
#define EMPTYMATRIXVARTYPEATT
int idx
idx gives the index of this variable
std::vector< ExprNode * > minVec
the OSnLNodeMin node can have any number of children, including other children with an indeterminate ...
ENUM_MATRIX_TYPE
An enum to track the many different types of values that a matrix can contain Note that these types a...
static const yytype_uint16 yytable[]
#define LINEARELEMENTSEND
static const yytype_int16 yypgoto[]
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
int idx
idx is the index of the variable
std::string errormsg
errormsg is the error that is causing the exception to be thrown
#define NUMBEROFOBJIDXATT
#define NUMBEROFVALUESATT
bool parseValue(const char **pchar, OSInstance *osinstance, int *osillineno)
The in-memory representation of the <matrixProgramming> element.
#define MATRIXDIAGONALSTART
int atoimod1(int *osillineno, const char *ch1, const char *ch2)
to represent the nonzeros in a constantMatrix element
IntVector * colIdx
a pointer of column indices if the problem is stored by row
std::string maxOrMin
declare the objective function to be a max or a min
bool parseRowIdx(const char **pchar, OSInstance *osinstance, int *osillineno)
a data structure to represent an entry in a conReferenceMatrix element, which consists of a constrain...
#define MATRIXREFERENCEEND
a data structure to represent the linear expressions in a LinearMatrixElement object ...
The in-memory representation of the <linearConstraintCoefficients> element.
#define NUMBEROFMATRIXOBJATT
bool parseInstanceHeader(const char **pchar, OSInstance *osinstance, int *osillineno)
ObjCoef ** coef
coef is pointer to an array of ObjCoef object pointers
#define BASEMATRIXSTARTROWATT
bool suppressFurtherErrorMessages
bool varReferenceMatrixIdxPresent
The in-memory representation of the objective function <coef> element.
#define QUADRATICCOEFFICIENTSSTART
#define YY_LOCATION_PRINT(File, Loc)
#define MATRIXEXPRESSIONSEND
Constraint ** con
con is pointer to an array of Constraint object pointers
bool conReferenceMatrixIdxPresent
std::vector< int > nBlocksVec
int idx
The index of the matrixCon.
#define MATRIXDETERMINANTSTART
bool stageVariablesON
for each stage we need to track whether the <variables>, <constraints>, <objectives> elements are pre...
int returnNlExprShape(std::string shape)
#define SECONDAXISDIRECTIONATT
#define NUMBEROFMATRIXTERMSATT
std::vector< ExprNode * > maxVec
the OSnLNodeMax node can have any number of children, including other children with an indeterminate ...
a data structure to represent the nonzeroes of a matrix in a blockwise fashion. Each block can be giv...
int idx
The index of the matrixObj.
bool ignoreDataAfterErrors
if the parser finds invalid text it is held here and we delete if the file was not valid ...
The in-memory representation of a generic cone Specific cone types are derived from this generic clas...
a data structure to represent a MatrixBlock object (derived from MatrixType)
OSnLMNodeMatrixCon * nlMNodeMatrixCon
a pointer to an OSnLMNode object that is a matrixCon reference
#define TARGETMATRIXFIRSTCOLATT
int idx
The index of the matrixVar.
#define LINEARELEMENTSSTART
int returnVarType(char vt)
The OSnLMNode Class for nonlinear expressions involving matrices.
a generic class from which we derive matrix constructors (BaseMatrix, MatrixElements, MatrixTransformation and MatrixBlocks) as well as matrix types (OSMatrix and MatrixBlock).
The in-memory representation of the element.
#define EMPTYMATRIXCONTYPEATT
#define INSTANCEDATASTARTEND
char type
type corresponds to the attribute that holds the variable type: C (Continuous), B (binary)...
bool axisDirectionPresent
#define MATRIXOBJECTIVESEND
double atofmod1(int *osillineno, const char *ch1, const char *ch2)
#define FILEDESCRIPTIONSTARTANDEND
OSnLMNodeMatrixObj * nlMNodeMatrixObj
a pointer to an OSnLMNode object that is a matrixObj reference
bool numberOfMatricesPresent
int objReferenceMatrixIdx
int numberOfVariables
numberOfVariables is the number of variables in the instance
void osilerror(YYLTYPE *mytype, OSInstance *osinstance, OSiLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData, std::string errormsg)
this class extends OSMatrix for use, e.g., in the matrixVar section of OSoL and OSrL ...
#define INTERSECTIONCONESTART
#define SEMIDEFINITECONEEND
void osgl_empty_vectors(OSgLParserData *osglData)
OSMatrix ** matrix
We need to hold an array of <matrix> elements temporarily.
#define QUADRATICCOEFFICIENTSEND
#define MATRIXDOTTIMESSTART
std::vector< ExprNode * > matrixSumVec
the OSnLMNodeMatrixSum node can have any number of children, including other children with an indeter...
#define MATRIXREFERENCESTART
OSnLParserData * osnlData
bool numberOfVarIdxPresent
The in-memory representation of the <constraints> child of the <stage> element.
std::string semidefiniteness
bool stageObjectivesOrdered
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 TARGETMATRIXFIRSTROWATT
int stageObjectiveStartIdx
OSgLParserData * osglData
#define EMPTYVALUETYPEATT
a data structure to represent a MatrixType object (from which we derive OSMatrix and MatrixBlock) ...
double lb
lb is the lower bound on the constraint
std::string addErrorMsg(YYLTYPE *mytype, OSInstance *osinstance, OSiLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData, std::string errormsg)
The in-memory representation of the <constraints> element.
int numberOfObjectives
numberOfObjectives is the number of objective functions in the instance
#define NONPOSITIVECONEEND
bool baseMatrixStartRowPresent
OSiLParserData * parserData
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
std::string id
later, e.g.
double os_strtod_wrap(const char *str, char **strEnd)
bool verifyMatrixSymmetry(std::string symmetry)
OSnLNodeNumber * nlNodeNumberPoint
a pointer to an OSnLNode object that is a number
#define GENERALELEMENTSEND
struct yy_buffer_state * YY_BUFFER_STATE
void osilset_lineno(int line_number, yyscan_t yyscanner)
Set the current line number.
IntVector * start
a pointer to the start of each row or column stored in sparse format
double ub
ub is the upper bound on the constraint
bool numberOfBlocksPresent
Data elements for parsing number-valued attributes and elements.
char * parseBase64(const char **p, int *dataSize, int *osillineno)
The in-memory representation of an intersection cone.
#define MATRIXPRODUCTSTART
std::vector< int * > rowOffsets
Vectors to hold rowOffset and colOffset arrays in a place where they are easily accessible while the ...
#define FILEDESCRIPTIONEND
The in-memory representation of the <nonlinearExpressions> element.
std::vector< int * > colOffsets
#define MATRIXTRANSPOSEEND
The OSnLNodeNumber Class.
MatrixNode * tempC
This matrix constructor is needed in order to properly push the constructor vector.
Used to hold part of the instance in memory.
this class extends OSMatrix for use, e.g., in the matrixCon section of OSoL and OSrL ...
std::vector< MatrixNode * > mtxConstructorVec
Several vectors to process the matrix nodes into the right order.
OSnLNodeVariable * nlNodeVariablePoint
a pointer to an OSnLNode object that is a variable
#define FILENAMESTARTANDEND
#define OBJREFERENCEELEMENTSEND
The next few nodes evaluate to a scalar even though one or more of its arguments are matrices...
#define NONPOSITIVECONESTART
a data structure to represent a term in a linearMatrix element A term has the form c*x_{k}...
A concrete class that is used to store a specific type of matrix values, references to variable index...
#define MATRIXSCALARTIMESEND
#define BASEMATRIXENDROWATT
char * osilget_text(yyscan_t yyscanner)
Get the current token.
bool semidefinitenessPresent
#define NONLINEAREXPRESSIONSSTART
to represent the nonzeros in an objReferenceMatrix element
std::string parser_errors
used to accumulate error message so the parser does not die on the first error encountered ...
#define NUMBEROFVARIABLESATT
The OSnLNodeNegate Class.
#define INTERSECTIONCONEEND
a data structure to represent objective reference elements in a MatrixType object Each nonzero elemen...
int osillex_init(void **ptr_yy_globals)
a data structure to represent a point of departure for constructing a matrix by modifying parts of a ...
The in-memory representation of the <matrixCon> element.
static YYSIZE_T yysyntax_error(char *yyresult, int yystate, int yychar)
#define NUMBEROFENUMERATIONSATT
bool numberOfColumnsPresent
bool objReferenceMatrixIdxPresent
double weight
weight is the weight applied to the given objective function, 1.0 by default
int qtermcount
These variables are used for processing the <quadraticCoefficients> element.
int stageConstraintStartIdx
The in-memory representation of the <obj> element.
OSnLMNodeMatrixVar * nlMNodeMatrixVar
a pointer to an OSnLMNode object that is a matrixVar reference
int osillex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param, yyscan_t yyscanner)
void osilerror_wrapper(const char *ch, int *osillineno, const char *errormsg)
The OSnLNodeSquare Class.
#define YY_REDUCE_PRINT(Rule)
static void const char * yymsg
#define OBJREFERENCEELEMENTSSTART
DoubleVector * value
a pointer to the array of nonzero values being stored
#define MATRIXUPPERTRIANGLESTART
#define NORMSCALEFACTORATT
#define CONREFERENCEMATRIXIDXATT
bool qtermidxattON
qtermidxattON is true if we have found the row index of the of a quadratic term
The in-memory representation of the <objectives> element.
static const yytype_uint16 yytranslate[]
#define POLYHEDRALCONEEND
double lb
lb corresponds to the optional attribute that holds the variable lower bound.
double constant
constant is the constant term added to the objective function, 0 by default
#define MATRIXPROGRAMMINGSTART
#define NUMBEROFMATRIXVARATT
#define MATRIXLOWERTRIANGLESTART
int nvarcovered
these two integers track how many variables and constraints have been assigned to a stage; this is us...
bool constantMatrixIdxPresent
bool qtermcoefattON
qtermcoefattON is true if we have found the coefficient of the quadratic term
bool stageConstraintsOrdered
void osilset_extra(OSiLParserData *parserData, void *yyscanner)
Variable ** var
Here we define a pointer to an array of var pointers.
#define MATRIXVARIABLESSTART
The in-memory representation of the <matrixVariables> element.
a data structure to represent the nonzeros in a conReferenceMatrix element
#define ROTATEDQUADRATICCONEEND
void osil_empty_vectors(OSiLParserData *parserData)
int osillineno
if there is a parser error, osillineno holds the line number in the OSiL file where the error occured...
bool baseTransposePresent
Data elements for parsing string-valued attributes and text elements.
std::vector< MatrixNode * > mtxBlkVec
The in-memory representation of a quadratic cone.
The OSnLNodeVariable Class.
#define NONNEGATIVECONEEND
ExprNode * nlNodePoint
These entities are used for parsing <nonlinearExpressions>
The OSnLNodeAllDiff Class.
#define MATRIXINVERSESTART
double value
value is the value of the objective function coefficient corresponding to the variable with index idx...
a data structure to represent the nonzero values in a generalMatrix element
The in-memory representation of the <quadraticCoefficients> element.
The in-memory representation of the <stages> element.
#define FILECREATORSTARTANDEND
#define OPTIMIZATIONSTART
OSnLMNodeMatrixReference * nlMNodeMatrixRef
a pointer to an OSnLMNode object that is a simple matrix reference
int numberOfValues
numberOfValues is the number of nonzero elements stored in the <linearConstraintCoefficients> element...
#define REFERENCEMATRIXIDXATT
#define NUMBEROFBLOCKSATT
#define QUADRATICCONESTART
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
bool baseMatrixIdxPresent
bool normScaleFactorPresent
#define ISWHITESPACE(char_)
double value
value is the value of the number
double ub
ub corresponds to the optional attribute that holds the variable upper bound.
bool parseObjectives(const char **pchar, OSInstance *osinstance, int *osillineno)
void osnl_empty_vectors(OSnLParserData *osnlData)
int idx
idx gives the index of this constraint
The OSnLNodeDivide Class.
int returnMatrixType(std::string type)
bool parseColIdx(const char **pchar, OSInstance *osinstance, int *osillineno)
Variables * variables
variables is a pointer to a Variables object
static const yytype_int16 yydefgoto[]
#define NUMBEROFMATRIXCONATT
OSnLNode ** m_mChildren
m_mChildren holds all the operands, that is, nodes that the current node operates on...
The in-memory representation of the <timeDomain> element.
int returnMatrixSymmetry(std::string symmetry)
The in-memory representation of the <con> element.
#define NUMBEROFNONLINEAREXPRESSIONS
#define FILESOURCESTARTANDEND
static const yytype_uint16 yystos[]
#define MATRIXDIAGONALEND
GeneralFileHeader * instanceHeader
the instanceHeader is implemented as a general file header object to allow sharing of classes between...
MatrixExpressionTree * matrixExpressionTree
matrixExpressionTree contains the root of the MatrixExpressionTree
The in-memory representation of the <matrixObjectives> element.
YYLTYPE yylsa[YYINITDEPTH]
#define MATRIXTOSCALAREND
int numberOfConstraints
numberOfConstraints is the number of constraints in the instance
#define FILEDESCRIPTIONEMPTY
#define IDENTITYMATRIXSTART
int osilget_lineno(yyscan_t yyscanner)
Get the current line number.
int * m_miVarStageInfo
m_miVarStageInfo is an array that for each variable gives the stage to which it belongs.
#define MATRIXNEGATESTART
InstanceData * instanceData
A pointer to an InstanceData object.
#define EMPTYSEMIDEFINITENESSATT
#define YY_STACK_PRINT(Bottom, Top)
bool templateMatrixIdxPresent
#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)
#define TRANSFORMATIONEND
OSnLMNode * m_treeRoot
m_treeRoot holds the root node (of OSnLMNode type) of the expression tree.
The in-memory representation of the <nl> element.
an abstract class to help represent the elements in a MatrixType object From this we derive concrete ...
#define INCLUDEDIAGONALATT
an integer Vector data structure
bool qtermidattON
qtermidattON is true if we have found the id of the quadratic term
static Bigint * mult(Bigint *a, Bigint *b)
#define DISTORTIONMATRIXIDXATT
#define GENERALELEMENTSSTART
#define SEMIDEFINITENESSATT
#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
Objective ** obj
coef is pointer to an array of ObjCoef object pointers
double intervalstart
intervalstart holds the value for the start of the planning horizon
bool intervalhorizonON
intervalhorizonON is true if we have found a horizon for the time interval
static const yytype_int16 yypact[]
a data structure to represent variable reference elements in a MatrixType object Each nonzero element...
#define OBJREFERENCEMATRIXIDXATT
bool parseVariables(const char **pchar, OSInstance *osinstance, int *osillineno)
bool baseMatrixEndColPresent
#define MATRIXEXPRESSIONSSTART
#define MATRIXDOTTIMESEND
#define STRINGVALUEDELEMENTSEND
static const yytype_uint8 yyr2[]
#define NUMBEROFOBJECTIVESATT
std::vector< ExprNode * > sumVec
the OSnLNodeSum node can have any number of children, including other children with an indeterminate ...
The in-memory representation of the <variables> child of the <stage> element.
bool qtermidxOneattON
qtermidxOneattON is true if we have found the first index of the quadratic term
bool baseMatrixEndRowPresent
#define VARREFERENCEELEMENTSSTART
The in-memory representation of a cone of semidefinite matrices.
Objectives * objectives
objectives is a pointer to a Objectives object
#define EMPTYMATRIXOBJTYPEATT
The in-memory representation of the <stage> element.
bool qtermidxTwoattON
qtermidxTwoattON is true if we have found the second index of the quadratic term
static const char *const yytname[]
#define CONSTANTELEMENTSSTART
The in-memory representation of the <matrixVar> element.
int nonzeroCounter
Linear matrices need a counter to count the number of terms within each element.
#define YYSTACK_ALLOC_MAXIMUM
The OSnLNodeMatrixTrace Class.
The in-memory representation of the <cones> element.
yytype_int16 yyssa[YYINITDEPTH]
int * m_miConStageInfo
m_miConStageInfo is an array that for each constraint gives the stage to which it belongs...
#define MATRIXSCALARTIMESSTART
#define TRANSFORMATIONSTART
OSMatrix * createConstructorTreeFromPrefix(std::vector< MatrixNode * > mtxConstructorVec)
static const yytype_uint16 yyr1[]
int nlnodenumber
nlnodenumber is the number of nl nodes in the instance
#define NUMBEROFCOLUMNSATT
#define VARREFERENCEELEMENTSEND
#define ROTATEDQUADRATICCONESTART
#define MATRIXLOWERTRIANGLEEND
#define MATRIXVARIABLESEND
The in-memory representation of the <matrixConstraints> element.
#define CONSTANTELEMENTSEND
The OSnLNodeProduct Class.
bool baseMatrixStartColPresent
The in-memory representation of the <objectives> child of the <stage> element.
#define CONREFERENCEELEMENTSSTART
int numberOfObjCoef
numberOfObjCoef is the number of variables with a nonzero objective function coefficient ...
#define MATRIXPROGRAMMINGEND
a data structure to represent the nonzero values in a linearMatrix element
#define NUMBEROFCONSTRAINTSATT
bool firstAxisDirectionPresent
static const yytype_int16 yycheck[]
YY_BUFFER_STATE osil_scan_string(yyconst char *yy_str, yyscan_t yyscanner)
Setup the input buffer state to scan a string.
double intervalhorizon
intervalhorizon holds the value of the end of the planning horizon
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
int stageVariableStartIdx
...we need to track the first variable, constraint, objective...
std::string type
in the C++ type is real
ENUM_CONREFERENCE_VALUETYPE
An enum to track the type of value contained in a reference to a constraint.
#define MATRIXDETERMINANTEND
#define NONLINEAREXPRESSIONSEND
static const yytype_uint16 yydefact[]
static char *char * yydest
#define NONNEGATIVECONESTART
bool includeDiagonalAttribute
bool parseConstraints(const char **pchar, OSInstance *osinstance, int *osillineno)
int stagevarcount
...and we need to track the number of variables we have seen
The in-memory representation of an OSiL instance..
The in-memory representation of the variables element.
The OSnLNode Class for nonlinear expressions.
static std::string decodeb64(char *b64bytes)
decode the data in base 64
The OSnLMNodeMatrixProduct Class.
bool secondAxisDirectionPresent
#define NUMBEROFVARIDXATT
int idx
idx is the index of the variable corresponding to the coefficient
this class extends OSMatrix for use, e.g., in the matrixObj section of OSoL and OSrL ...
int conReferenceMatrixIdx
bool numberOfValuesPresent
#define YYLLOC_DEFAULT(Current, Rhs, N)
#define NUMBEROFCONIDXATT
int stagecount
store the number of stages
The OSgLParserData Class.
int varReferenceMatrixIdx
The OSiLParserData Class, used to store parser data.
The in-memory representation of a product cone.
#define TEMPLATEMATRIXIDXATT
#define EMPTYINCLUDEDIAGONALATT
#define NUMBEROFQTERMSATT
used for throwing exceptions.
#define NUMBEROFSTAGESATT
Used to hold the instance in memory.
LinearConstraintCoefficients * linearConstraintCoefficients
linearConstraintCoefficients is a pointer to a LinearConstraintCoefficients object ...
The OSnLParserData Class.
int * m_miObjStageInfo
m_miObjStageInfo is an array that for each objective gives the stage to which it belongs.
bool numberidattON
numberidattON is set to true if the id attribute has been parsed for an OSnLNodeNumber object...
The in-memory representation of the <qTerm> element.
#define NUMBEROFMATRICESATT
The in-memory representation of the <expr> element, which is like a nonlinear expression, but since it involves matrices, the expression could be linear, so a "shape" attribute is added to distinguish linear and nonlinear expressions.
a data structure to represent a matrix object (derived from MatrixType)
#define EMPTYBASETRANSPOSEATT
#define MATRIXUPPERTRIANGLEEND
int osillex_destroy(void *scanner)
double constant
constant is a value that is added to the constraint
#define CONSTANTMATRIXIDXATT
#define VARREFERENCEMATRIXIDXATT
The in-memory representation of the variable element.
a data structure to represent an expression in a linearMatrix element A LinearMatrixElement is a (fin...
#define FIRSTAXISDIRECTIONATT
The NonnegativeCone Class.
int iNumberOfStartElements
iNumberOfStartElements counts the number of elements in the <start> section of <linearConstraintCoeff...
static YYSIZE_T const char * yystr
#define STRINGVALUEDELEMENTSSTART
bool parseObjCoef(const char **pchar, int objcount, OSInstance *osinstance, int *osillineno)
YYSTYPE yyvsa[YYINITDEPTH]
std::vector< ExprNode * > matrixProductVec
the OSnLMNodeProduct node can have any number of children, including other children with an indetermi...
The in-memory representation of the <con> element.
std::string name
name is the name of the constraint
std::vector< ExprNode * > nlNodeVec
nlNodeVec holds a vector of pointers to OSnLNodes and OSnLMNodes In order to build the expression tre...
#define EMPTYDESCRIPTIONATT
#define BASEMATRIXENDCOLATT
The in-memory representation of the <matrixExpressions> element.
The NonpositiveCone Class.
#define MATRIXTRANSPOSESTART