/* A Bison parser, made from GetDP.y by GNU Bison version 1.28 */ #define YYBISON 1 /* Identify Bison output. */ #define tINT 257 #define tFLOAT 258 #define tSTRING 259 #define tBIGSTR 260 #define tEND 261 #define tDOTS 262 #define tStrCat 263 #define tSprintf 264 #define tPrintf 265 #define tRead 266 #define tFor 267 #define tEndFor 268 #define tIf 269 #define tElse 270 #define tEndIf 271 #define tFlag 272 #define tHelp 273 #define tCpu 274 #define tCheck 275 #define tInclude 276 #define tConstant 277 #define tList 278 #define tListAlt 279 #define tLinSpace 280 #define tLogSpace 281 #define tListFromFile 282 #define tDefineConstant 283 #define tPi 284 #define t0D 285 #define t1D 286 #define t2D 287 #define t3D 288 #define tExp 289 #define tLog 290 #define tLog10 291 #define tSqrt 292 #define tSin 293 #define tAsin 294 #define tCos 295 #define tAcos 296 #define tTan 297 #define tAtan 298 #define tAtan2 299 #define tSinh 300 #define tCosh 301 #define tTanh 302 #define tFabs 303 #define tFloor 304 #define tCeil 305 #define tFmod 306 #define tModulo 307 #define tHypot 308 #define tSolidAngle 309 #define tTrace 310 #define tOrder 311 #define tCrossProduct 312 #define tDofValue 313 #define tMHTransform 314 #define tMHJacNL 315 #define tGroup 316 #define tDefineGroup 317 #define tAll 318 #define tInSupport 319 #define tMovingBand2D 320 #define tDefineFunction 321 #define tConstraint 322 #define tRegion 323 #define tSubRegion 324 #define tRegionRef 325 #define tSubRegionRef 326 #define tFilter 327 #define tCoefficient 328 #define tValue 329 #define tTimeFunction 330 #define tBranch 331 #define tNode 332 #define tLoop 333 #define tNameOfResolution 334 #define tJacobian 335 #define tCase 336 #define tIntegration 337 #define tFMMIntegration 338 #define tMatrix 339 #define tType 340 #define tSubType 341 #define tCriterion 342 #define tGeoElement 343 #define tNumberOfPoints 344 #define tMaxNumberOfPoints 345 #define tNumberOfDivisions 346 #define tMaxNumberOfDivisions 347 #define tStoppingCriterion 348 #define tFunctionSpace 349 #define tName 350 #define tBasisFunction 351 #define tNameOfCoef 352 #define tFunction 353 #define tdFunction 354 #define tSubFunction 355 #define tSubdFunction 356 #define tSupport 357 #define tEntity 358 #define tSubSpace 359 #define tNameOfBasisFunction 360 #define tGlobalQuantity 361 #define tEntityType 362 #define tEntitySubType 363 #define tNameOfConstraint 364 #define tFormulation 365 #define tQuantity 366 #define tNameOfSpace 367 #define tIndexOfSystem 368 #define tSymmetry 369 #define tEquation 370 #define tGalerkin 371 #define tdeRham 372 #define tGlobalTerm 373 #define tGlobalEquation 374 #define tDiscreteGeometry 375 #define tDt 376 #define tDtDof 377 #define tDtDt 378 #define tDtDtDof 379 #define tJacNL 380 #define tNeverDt 381 #define tDtNL 382 #define tAtAnteriorTimeStep 383 #define tIn 384 #define tFull_Matrix 385 #define tResolution 386 #define tDefineSystem 387 #define tNameOfFormulation 388 #define tNameOfMesh 389 #define tFrequency 390 #define tSolver 391 #define tOriginSystem 392 #define tDestinationSystem 393 #define tOperation 394 #define tOperationEnd 395 #define tSetTime 396 #define tDTime 397 #define tSetFrequency 398 #define tFourierTransform 399 #define tFourierTransformJ 400 #define tLanczos 401 #define tEigenSolve 402 #define tEigenSolveJac 403 #define tPerturbation 404 #define tUpdate 405 #define tUpdateConstraint 406 #define tBreak 407 #define tEvaluate 408 #define tTimeLoopTheta 409 #define tTime0 410 #define tTimeMax 411 #define tTheta 412 #define tTimeLoopNewmark 413 #define tBeta 414 #define tGamma 415 #define tIterativeLoop 416 #define tNbrMaxIteration 417 #define tRelaxationFactor 418 #define tIterativeTimeReduction 419 #define tDivisionCoefficient 420 #define tChangeOfState 421 #define tChangeOfCoordinates 422 #define tChangeOfCoordinates2 423 #define tSystemCommand 424 #define tGenerateFMMGroups 425 #define tGenerateOnly 426 #define tGenerateOnlyJac 427 #define tSolveJac_AdaptRelax 428 #define tSaveSolutionExtendedMH 429 #define tSaveSolutionMHtoTime 430 #define tInit_MovingBand2D 431 #define tMesh_MovingBand2D 432 #define tGenerate_MH_Moving 433 #define tGenerate_MH_Moving_Separate 434 #define tAdd_MH_Moving 435 #define tGenerateGroup 436 #define tGenerateJacGroup 437 #define tSaveMesh 438 #define tDeformeMesh 439 #define tDummyFrequency 440 #define tPostProcessing 441 #define tNameOfSystem 442 #define tPostOperation 443 #define tNameOfPostProcessing 444 #define tUsingPost 445 #define tAppend 446 #define tPlot 447 #define tPrint 448 #define tPrintGroup 449 #define tEcho 450 #define tWrite 451 #define tAdapt 452 #define tOnGlobal 453 #define tOnRegion 454 #define tOnElementsOf 455 #define tOnGrid 456 #define tOnSection 457 #define tOnPoint 458 #define tOnLine 459 #define tOnPlane 460 #define tOnBox 461 #define tWithArgument 462 #define tFile 463 #define tDepth 464 #define tDimension 465 #define tComma 466 #define tTimeStep 467 #define tHarmonicToTime 468 #define tFormat 469 #define tHeader 470 #define tFooter 471 #define tSkin 472 #define tSmoothing 473 #define tTarget 474 #define tSort 475 #define tIso 476 #define tNoNewLine 477 #define tDecomposeInSimplex 478 #define tChangeOfValues 479 #define tTimeLegend 480 #define tFrequencyLegend 481 #define tEigenvalueLegend 482 #define tEvaluationPoints 483 #define tStore 484 #define tLastTimeStepOnly 485 #define tStr 486 #define tDate 487 #define tDEF 488 #define tOR 489 #define tAND 490 #define tEQUAL 491 #define tNOTEQUAL 492 #define tAPPROXEQUAL 493 #define tLESSOREQUAL 494 #define tGREATEROREQUAL 495 #define tLESSLESS 496 #define tGREATERGREATER 497 #define tCROSSPRODUCT 498 #define UNARYPREC 499 #define tSHOW 500 #line 1 "GetDP.y" /* $Id: GetDP.tab.c,v 1.104 2006/03/10 18:09:23 geuzaine Exp $ */ /* * Copyright (C) 1997-2006 P. Dular, C. Geuzaine * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA. * * Please report all bugs and problems to . * * Contributor(s): * Ruth Sabariego * Johan Gyselinck */ /* Modifs a faire: Patrick: definir des structures avec valeurs par defaut, e.g. BasisFunction_D = ... (dans un fichier a part). Christophe: introduire les listes au sein des expressions (comme c'est fait dans les expression-cst), afin de gerer les vecteurs, tenseurs, etc., directement, et pas par l'intermediaire d'une fonction de creation. */ #include #include #include #include #include #include #include "Data_Passive.h" #include "Data_Active.h" #include "Data_DefineE.h" #include "Malloc.h" #include "Tools.h" #include "Init_Problem.h" #include "Print_ProblemStructure.h" #include "BF_Function.h" #include "Quadrature.h" #include "Cal_Value.h" #include "Parser.h" #include "Message.h" #include "Magic.h" void hack_fsetpos(void) ; void hack_fsetpos_printf(void) ; void Check_NameOfStructNotExist(char * Struct, List_T * List_L, void * data, int (*fcmp)(const void *a, const void *b)) ; int Add_Group(struct Group * Group_P, char * Name, int Flag_Plus, int Num_Index) ; int Add_Group_2(struct Group * Group_P, char * Name, int Flag_Add, int Flag_Plus, int Num_Index1, int Num_Index2) ; int Num_Group(struct Group * Group_P, char * Name, int Num_Group) ; int Add_Expression(struct Expression * Expression_P, char * Name, int Flag_Plus) ; void Pro_DefineQuantityIndex(List_T * WholeQuantity_L,int DefineQuantityIndexEqu, int * NbrQuantityIndex, int ** QuantityIndexTable, int ** QuantityTraceGroupIndexTable) ; void Pro_DefineQuantityIndex_1(List_T * WholeQuantity_L, int TraceGroupIndex) ; void Help(char *topic) ; int Print_ListOfDouble(char *format, List_T *list, char *buffer) ; void yyerror(char *s) ; void vyyerror(char *fmt, ...) ; int yylex(); extern FILE *yyin ; extern long int yylinenum ; extern char yyname[MAX_FILE_NAME_LENGTH], yyincludename[MAX_FILE_NAME_LENGTH] ; extern int yycolnum, yyincludenum ; extern char *yytext ; extern int ErrorLevel, InteractiveLevel ; extern struct Problem Problem_S ; extern struct PostProcessing InteractivePostProcessing_S ; extern struct PostSubOperation InteractivePostSubOperation_S ; extern int InteractiveCompute ; List_T * ConstantTable_L, * ListDummy_L ; List_T * ListOfInt_L, * ListOfTwoInt_L ; List_T * ListOfPointer_L, * ListOfPointer2_L, * ListOfChar_L ; List_T * Current_BasisFunction_L, * Current_SubSpace_L, * Current_GlobalQuantity_L ; List_T * Current_WholeQuantity_L, * Current_System_L ; List_T * Operation_L ; int Nbr_Index, Flag_MultipleIndex, Flag1 ; List_T * ListOfFormulation ; List_T * ListOfBasisFunction, * ListOfEntityIndex ; List_T * ListOfInt_Lnew ; int * ListOfInt_P ; char tmpstr[1024] ; int i, j, k, l, FlagError ; int Num_BasisFunction = 1 ; int YaccLevel = 0 ; int Type_TermOperator, Type_Function, Type_SuppList ; int Quantity_TypeOperator, Quantity_Index ; int Current_DofIndexInWholeQuantity, Last_DofIndexInWholeQuantity ; int Current_NoDofIndexInWholeQuantity ; int Current_System ; int Nbr_Arguments ; int Constraint_Index ; int TypeOperatorDofInTrace, DefineQuantityIndexDofInTrace ; double d ; time_t date_info; FILE* File; struct Constant Constant_S, Constant1_S, Constant2_S ; struct Expression Expression_S, * Expression_P ; struct ExpressionPerRegion ExpressionPerRegion_S ; struct Group Group_S ; struct Constraint Constraint_S, * Constraint_P ; struct ConstraintPerRegion ConstraintPerRegion_S, * ConstraintPerRegion_P ; struct MultiConstraintPerRegion MultiConstraintPerRegion_S ; struct JacobianMethod JacobianMethod_S ; struct JacobianCase JacobianCase_S ; struct IntegrationMethod IntegrationMethod_S ; struct IntegrationCase IntegrationCase_S ; struct Quadrature QuadratureCase_S ; struct FunctionSpace FunctionSpace_S ; struct BasisFunction BasisFunction_S ; void (*FunctionDummy)(); struct GlobalBasisFunction GlobalBasisFunction_S ; struct SubSpace SubSpace_S ; struct GlobalQuantity GlobalQuantity_S ; struct ConstraintInFS ConstraintInFS_S ; struct Formulation Formulation_S ; struct DefineQuantity DefineQuantity_S ; struct EquationTerm EquationTerm_S ; struct WholeQuantity WholeQuantity_S, *WholeQuantity_P ; struct GlobalEquationTerm GlobalEquationTerm_S ; struct Resolution Resolution_S ; struct DefineSystem DefineSystem_S ; struct Operation Operation_S, * Operation_P ; struct ChangeOfState ChangeOfState_S ; struct PostProcessing PostProcessing_S ; struct PostQuantity PostQuantity_S ; struct PostQuantityTerm PostQuantityTerm_S ; struct PostOperation PostOperation_S ; struct PostSubOperation PostSubOperation_S ; #define MAX_RECUR_LOOPS 100 static double x0, x1, step; static int ImbricatedLoop = 0, do_next; static fpos_t yyposImbricatedLoopsTab[MAX_RECUR_LOOPS]; static int yylinenoImbricatedLoopsTab[MAX_RECUR_LOOPS]; static double LoopControlVariablesTab[MAX_RECUR_LOOPS][3]; static char *LoopControlVariablesNameTab[MAX_RECUR_LOOPS]; #line 183 "GetDP.y" typedef union { char *c ; int i ; double d ; List_T *l ; struct TwoInt t ; } YYSTYPE; #include #ifndef __cplusplus #ifndef __STDC__ #define const #endif #endif #define YYFINAL 2035 #define YYFLAG -32768 #define YYNTBASE 269 #define YYTRANSLATE(x) ((unsigned)(x) <= 500 ? yytranslate[x] : 459) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 253, 2, 261, 262, 251, 2, 2, 256, 257, 249, 247, 266, 248, 260, 250, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 241, 2, 243, 235, 267, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 258, 2, 259, 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 264, 2, 265, 268, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 236, 237, 238, 239, 240, 242, 244, 245, 246, 252, 254, 263 }; #if YYDEBUG != 0 static const short yyprhs[] = { 0, 0, 1, 4, 5, 6, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 62, 64, 67, 69, 72, 76, 80, 84, 88, 92, 96, 99, 102, 106, 110, 114, 118, 122, 126, 130, 134, 138, 142, 146, 147, 150, 151, 154, 159, 165, 171, 177, 179, 185, 187, 189, 190, 191, 210, 211, 218, 221, 223, 225, 228, 230, 232, 234, 236, 237, 241, 245, 247, 249, 253, 254, 258, 263, 265, 269, 273, 277, 283, 289, 297, 299, 300, 304, 311, 312, 314, 319, 320, 323, 327, 328, 331, 337, 344, 352, 354, 356, 357, 361, 366, 371, 372, 375, 376, 380, 382, 386, 387, 390, 392, 393, 394, 402, 406, 410, 417, 421, 425, 429, 433, 437, 441, 445, 449, 453, 457, 461, 465, 469, 473, 476, 479, 482, 486, 488, 492, 495, 497, 500, 501, 507, 508, 516, 517, 529, 539, 544, 549, 550, 558, 565, 568, 571, 574, 577, 581, 584, 588, 592, 595, 599, 601, 605, 606, 610, 617, 618, 623, 624, 627, 631, 636, 637, 642, 643, 646, 650, 654, 659, 660, 665, 666, 669, 673, 677, 682, 683, 688, 689, 692, 696, 700, 705, 706, 711, 712, 715, 719, 723, 727, 731, 735, 739, 740, 743, 747, 749, 751, 752, 755, 759, 764, 768, 773, 779, 780, 785, 788, 789, 792, 796, 800, 804, 808, 812, 816, 824, 828, 832, 836, 840, 844, 852, 860, 868, 869, 872, 876, 878, 880, 881, 884, 888, 893, 897, 902, 907, 912, 917, 918, 923, 926, 927, 930, 934, 938, 943, 948, 956, 960, 964, 968, 972, 973, 974, 975, 994, 995, 1000, 1001, 1004, 1008, 1012, 1016, 1018, 1022, 1023, 1027, 1029, 1033, 1034, 1038, 1039, 1044, 1045, 1048, 1052, 1056, 1060, 1061, 1066, 1069, 1070, 1073, 1077, 1081, 1085, 1089, 1090, 1093, 1097, 1099, 1101, 1102, 1105, 1109, 1114, 1118, 1123, 1128, 1129, 1134, 1137, 1138, 1141, 1145, 1149, 1153, 1157, 1161, 1162, 1168, 1172, 1173, 1179, 1183, 1187, 1191, 1195, 1199, 1200, 1204, 1205, 1208, 1211, 1214, 1219, 1224, 1229, 1234, 1235, 1238, 1242, 1246, 1250, 1251, 1254, 1258, 1262, 1266, 1270, 1271, 1274, 1275, 1276, 1286, 1290, 1294, 1298, 1301, 1305, 1311, 1312, 1315, 1319, 1320, 1321, 1331, 1332, 1334, 1336, 1338, 1340, 1342, 1344, 1346, 1351, 1355, 1356, 1359, 1363, 1365, 1367, 1368, 1371, 1375, 1380, 1385, 1386, 1392, 1394, 1395, 1400, 1403, 1404, 1407, 1411, 1415, 1419, 1423, 1427, 1431, 1435, 1439, 1441, 1443, 1447, 1448, 1452, 1454, 1458, 1459, 1463, 1464, 1467, 1471, 1475, 1480, 1485, 1490, 1495, 1501, 1507, 1510, 1518, 1530, 1538, 1552, 1564, 1574, 1582, 1590, 1598, 1608, 1618, 1628, 1640, 1652, 1664, 1670, 1688, 1702, 1718, 1730, 1744, 1745, 1753, 1754, 1762, 1770, 1782, 1788, 1794, 1804, 1814, 1824, 1830, 1836, 1848, 1858, 1873, 1888, 1896, 1909, 1920, 1928, 1936, 1944, 1946, 1948, 1950, 1951, 1954, 1958, 1962, 1965, 1966, 1969, 1973, 1977, 1981, 1985, 1990, 1991, 1994, 1998, 2002, 2006, 2010, 2014, 2019, 2020, 2023, 2027, 2031, 2035, 2039, 2044, 2045, 2048, 2052, 2056, 2060, 2064, 2068, 2073, 2078, 2083, 2084, 2089, 2090, 2093, 2097, 2101, 2105, 2109, 2113, 2117, 2118, 2121, 2125, 2127, 2129, 2130, 2133, 2137, 2142, 2146, 2150, 2155, 2156, 2161, 2164, 2167, 2168, 2171, 2175, 2180, 2181, 2187, 2193, 2194, 2197, 2198, 2205, 2209, 2213, 2217, 2221, 2222, 2225, 2229, 2231, 2233, 2234, 2237, 2241, 2245, 2249, 2253, 2258, 2259, 2268, 2269, 2270, 2274, 2282, 2290, 2299, 2311, 2318, 2319, 2330, 2332, 2336, 2343, 2345, 2347, 2349, 2351, 2352, 2356, 2358, 2361, 2364, 2377, 2380, 2396, 2401, 2414, 2432, 2455, 2468, 2469, 2472, 2476, 2481, 2486, 2490, 2493, 2496, 2500, 2504, 2508, 2512, 2516, 2519, 2523, 2527, 2531, 2535, 2539, 2543, 2547, 2553, 2556, 2559, 2563, 2573, 2577, 2580, 2590, 2593, 2603, 2606, 2616, 2622, 2626, 2629, 2630, 2633, 2640, 2649, 2658, 2669, 2671, 2676, 2678, 2684, 2689, 2694, 2702, 2707, 2715, 2721, 2725, 2729, 2737, 2743, 2752, 2753, 2757, 2763, 2769, 2771, 2773, 2775, 2777, 2779, 2781, 2783, 2785, 2787, 2789, 2791, 2793, 2795, 2797, 2799, 2801, 2803, 2805, 2807, 2809, 2811, 2813, 2817, 2820, 2823, 2827, 2831, 2835, 2839, 2843, 2847, 2851, 2855, 2859, 2863, 2867, 2871, 2875, 2879, 2884, 2889, 2894, 2899, 2904, 2909, 2914, 2919, 2924, 2929, 2936, 2941, 2946, 2951, 2956, 2961, 2966, 2973, 2980, 2987, 2990, 2992, 2994, 2996, 2998, 3000, 3002, 3004, 3006, 3007, 3009, 3011, 3015, 3017, 3019, 3023, 3027, 3031, 3037, 3041, 3046, 3051, 3058, 3067, 3076, 3082, 3088, 3090, 3092, 3094, 3096, 3098, 3103, 3110, 3112 }; static const short yyrhs[] = { -1, 270, 271, 0, 0, 0, 271, 272, 273, 0, 62, 264, 276, 265, 0, 99, 264, 297, 265, 0, 68, 264, 332, 265, 0, 81, 264, 317, 265, 0, 83, 264, 323, 265, 0, 95, 264, 339, 265, 0, 111, 264, 362, 265, 0, 132, 264, 388, 265, 0, 187, 264, 418, 265, 0, 189, 264, 429, 265, 0, 433, 0, 447, 0, 22, 457, 0, 274, 0, 19, 7, 0, 19, 194, 7, 0, 19, 21, 7, 0, 19, 36, 7, 0, 19, 20, 7, 0, 19, 19, 7, 0, 19, 5, 7, 0, 20, 7, 0, 21, 7, 0, 21, 62, 7, 0, 21, 99, 7, 0, 21, 68, 7, 0, 21, 81, 7, 0, 21, 83, 7, 0, 21, 95, 7, 0, 21, 111, 7, 0, 21, 132, 7, 0, 21, 187, 7, 0, 21, 189, 7, 0, 21, 3, 7, 0, 0, 275, 437, 0, 0, 276, 277, 0, 456, 234, 281, 7, 0, 5, 296, 234, 281, 7, 0, 5, 294, 234, 281, 7, 0, 63, 258, 292, 259, 7, 0, 278, 0, 456, 247, 234, 281, 7, 0, 447, 0, 446, 0, 0, 0, 456, 258, 450, 259, 234, 66, 279, 258, 261, 289, 280, 266, 261, 289, 266, 450, 259, 7, 0, 0, 285, 258, 286, 282, 287, 259, 0, 261, 289, 0, 281, 0, 456, 0, 456, 295, 0, 69, 0, 5, 0, 289, 0, 64, 0, 0, 293, 288, 289, 0, 293, 65, 456, 0, 5, 0, 291, 0, 264, 290, 265, 0, 0, 290, 293, 291, 0, 290, 293, 248, 291, 0, 3, 0, 256, 450, 257, 0, 267, 453, 267, 0, 3, 8, 450, 0, 256, 450, 257, 8, 450, 0, 3, 8, 450, 8, 450, 0, 256, 450, 257, 8, 450, 8, 450, 0, 456, 0, 0, 292, 293, 5, 0, 292, 293, 5, 264, 450, 265, 0, 0, 266, 0, 264, 261, 450, 265, 0, 0, 264, 265, 0, 264, 450, 265, 0, 0, 297, 298, 0, 67, 258, 299, 259, 7, 0, 5, 258, 259, 234, 300, 7, 0, 5, 258, 283, 259, 234, 300, 7, 0, 447, 0, 446, 0, 0, 299, 293, 5, 0, 23, 258, 450, 259, 0, 99, 258, 5, 259, 0, 0, 301, 304, 0, 0, 264, 303, 265, 0, 300, 0, 303, 266, 300, 0, 0, 305, 306, 0, 309, 0, 0, 0, 306, 235, 307, 306, 8, 308, 306, 0, 306, 249, 306, 0, 306, 252, 306, 0, 58, 258, 306, 266, 306, 259, 0, 306, 250, 306, 0, 306, 247, 306, 0, 306, 248, 306, 0, 306, 251, 306, 0, 306, 255, 306, 0, 306, 241, 306, 0, 306, 243, 306, 0, 306, 242, 306, 0, 306, 244, 306, 0, 306, 238, 306, 0, 306, 239, 306, 0, 306, 240, 306, 0, 306, 237, 306, 0, 306, 236, 306, 0, 248, 306, 0, 247, 306, 0, 253, 306, 0, 256, 306, 257, 0, 451, 0, 449, 314, 316, 0, 5, 387, 0, 387, 0, 387, 314, 0, 0, 122, 310, 258, 304, 259, 0, 0, 129, 311, 258, 304, 266, 3, 259, 0, 0, 60, 258, 5, 258, 312, 304, 259, 259, 264, 450, 265, 0, 61, 258, 5, 259, 264, 450, 266, 450, 265, 0, 55, 258, 387, 259, 0, 57, 258, 387, 259, 0, 0, 56, 313, 258, 304, 266, 283, 259, 0, 241, 5, 243, 258, 304, 259, 0, 262, 5, 0, 262, 213, 0, 262, 143, 0, 262, 3, 0, 309, 261, 3, 0, 261, 3, 0, 309, 263, 450, 0, 258, 260, 259, 0, 258, 259, 0, 258, 315, 259, 0, 306, 0, 315, 266, 306, 0, 0, 264, 453, 265, 0, 264, 69, 258, 283, 259, 265, 0, 0, 317, 264, 318, 265, 0, 0, 318, 319, 0, 96, 5, 7, 0, 82, 264, 320, 265, 0, 0, 320, 264, 321, 265, 0, 0, 321, 322, 0, 69, 283, 7, 0, 69, 64, 7, 0, 81, 5, 316, 7, 0, 0, 323, 264, 324, 265, 0, 0, 324, 325, 0, 96, 5, 7, 0, 88, 300, 7, 0, 82, 264, 326, 265, 0, 0, 326, 264, 327, 265, 0, 0, 327, 328, 0, 86, 5, 7, 0, 87, 5, 7, 0, 82, 264, 329, 265, 0, 0, 329, 264, 330, 265, 0, 0, 330, 331, 0, 89, 5, 7, 0, 90, 450, 7, 0, 91, 450, 7, 0, 92, 450, 7, 0, 93, 450, 7, 0, 94, 450, 7, 0, 0, 332, 333, 0, 264, 334, 265, 0, 447, 0, 446, 0, 0, 334, 335, 0, 96, 456, 7, 0, 96, 5, 294, 7, 0, 86, 5, 7, 0, 82, 264, 336, 265, 0, 82, 5, 264, 336, 265, 0, 0, 336, 264, 337, 265, 0, 336, 446, 0, 0, 337, 338, 0, 86, 5, 7, 0, 69, 283, 7, 0, 70, 283, 7, 0, 76, 300, 7, 0, 75, 300, 7, 0, 80, 456, 7, 0, 77, 264, 451, 293, 451, 265, 7, 0, 71, 283, 7, 0, 72, 283, 7, 0, 99, 300, 7, 0, 74, 300, 7, 0, 73, 300, 7, 0, 99, 258, 300, 266, 300, 259, 7, 0, 74, 258, 300, 266, 300, 259, 7, 0, 73, 258, 300, 266, 300, 259, 7, 0, 0, 339, 340, 0, 264, 341, 265, 0, 447, 0, 446, 0, 0, 341, 342, 0, 96, 456, 7, 0, 96, 5, 294, 7, 0, 86, 5, 7, 0, 97, 264, 343, 265, 0, 105, 264, 349, 265, 0, 107, 264, 356, 265, 0, 68, 264, 359, 265, 0, 0, 343, 264, 344, 265, 0, 343, 446, 0, 0, 344, 345, 0, 96, 5, 7, 0, 98, 5, 7, 0, 98, 5, 294, 7, 0, 99, 5, 346, 7, 0, 100, 264, 5, 293, 5, 265, 7, 0, 101, 302, 7, 0, 102, 302, 7, 0, 103, 283, 7, 0, 104, 283, 7, 0, 0, 0, 0, 264, 112, 5, 7, 111, 5, 294, 7, 347, 62, 284, 7, 348, 132, 5, 295, 7, 265, 0, 0, 349, 264, 350, 265, 0, 0, 350, 351, 0, 96, 5, 7, 0, 106, 352, 7, 0, 98, 354, 7, 0, 5, 0, 264, 353, 265, 0, 0, 353, 293, 5, 0, 5, 0, 264, 355, 265, 0, 0, 355, 293, 5, 0, 0, 356, 264, 357, 265, 0, 0, 357, 358, 0, 96, 456, 7, 0, 86, 5, 7, 0, 98, 5, 7, 0, 0, 359, 264, 360, 265, 0, 359, 446, 0, 0, 360, 361, 0, 98, 5, 7, 0, 108, 285, 7, 0, 109, 288, 7, 0, 110, 456, 7, 0, 0, 362, 363, 0, 264, 364, 265, 0, 447, 0, 446, 0, 0, 364, 365, 0, 96, 456, 7, 0, 96, 5, 294, 7, 0, 86, 5, 7, 0, 112, 264, 366, 265, 0, 116, 264, 372, 265, 0, 0, 366, 264, 367, 265, 0, 366, 446, 0, 0, 367, 368, 0, 96, 456, 7, 0, 86, 107, 7, 0, 86, 117, 7, 0, 86, 5, 7, 0, 186, 452, 7, 0, 0, 113, 456, 369, 371, 7, 0, 114, 3, 7, 0, 0, 258, 370, 304, 259, 7, 0, 130, 283, 7, 0, 83, 5, 7, 0, 84, 5, 7, 0, 81, 5, 7, 0, 115, 3, 7, 0, 0, 258, 456, 259, 0, 0, 372, 373, 0, 372, 447, 0, 372, 446, 0, 117, 264, 378, 265, 0, 118, 264, 378, 265, 0, 119, 264, 382, 265, 0, 120, 264, 374, 265, 0, 0, 374, 375, 0, 86, 5, 7, 0, 110, 5, 7, 0, 264, 376, 265, 0, 0, 376, 377, 0, 78, 387, 7, 0, 79, 387, 7, 0, 116, 387, 7, 0, 130, 283, 7, 0, 0, 378, 379, 0, 0, 0, 386, 258, 380, 304, 381, 266, 304, 259, 7, 0, 130, 283, 7, 0, 81, 5, 7, 0, 83, 5, 7, 0, 131, 7, 0, 84, 5, 7, 0, 85, 258, 3, 259, 7, 0, 0, 382, 383, 0, 130, 283, 7, 0, 0, 0, 386, 258, 384, 304, 385, 266, 387, 259, 7, 0, 0, 122, 0, 123, 0, 124, 0, 125, 0, 126, 0, 127, 0, 128, 0, 264, 5, 456, 265, 0, 264, 456, 265, 0, 0, 388, 389, 0, 264, 390, 265, 0, 447, 0, 446, 0, 0, 390, 391, 0, 96, 456, 7, 0, 96, 5, 294, 7, 0, 133, 264, 393, 265, 0, 0, 140, 392, 264, 400, 265, 0, 446, 0, 0, 393, 264, 394, 265, 0, 393, 446, 0, 0, 394, 395, 0, 96, 456, 7, 0, 86, 5, 7, 0, 134, 396, 7, 0, 135, 457, 7, 0, 138, 398, 7, 0, 139, 456, 7, 0, 136, 452, 7, 0, 137, 457, 7, 0, 446, 0, 456, 0, 264, 397, 265, 0, 0, 397, 293, 456, 0, 456, 0, 264, 399, 265, 0, 0, 399, 293, 456, 0, 0, 400, 401, 0, 5, 456, 7, 0, 142, 300, 7, 0, 155, 264, 407, 265, 0, 159, 264, 409, 265, 0, 162, 264, 411, 265, 0, 165, 264, 413, 265, 0, 5, 258, 456, 259, 7, 0, 142, 258, 300, 259, 7, 0, 153, 7, 0, 15, 258, 300, 259, 264, 400, 265, 0, 15, 258, 300, 259, 264, 400, 265, 16, 264, 400, 265, 0, 144, 258, 456, 266, 300, 259, 7, 0, 171, 258, 456, 266, 300, 266, 300, 266, 300, 266, 300, 259, 7, 0, 171, 258, 456, 266, 300, 266, 300, 266, 300, 259, 7, 0, 171, 258, 456, 266, 300, 266, 300, 259, 7, 0, 172, 258, 456, 266, 452, 259, 7, 0, 173, 258, 456, 266, 452, 259, 7, 0, 151, 258, 456, 266, 300, 259, 7, 0, 152, 258, 456, 266, 283, 266, 456, 259, 7, 0, 145, 258, 456, 266, 456, 266, 452, 259, 7, 0, 146, 258, 456, 266, 456, 266, 450, 259, 7, 0, 147, 258, 456, 266, 450, 266, 452, 266, 450, 259, 7, 0, 148, 258, 456, 266, 450, 266, 450, 266, 450, 259, 7, 0, 149, 258, 456, 266, 450, 266, 450, 266, 450, 259, 7, 0, 154, 258, 300, 259, 7, 0, 150, 258, 456, 266, 456, 266, 456, 266, 450, 266, 452, 266, 450, 266, 450, 259, 7, 0, 155, 258, 450, 266, 450, 266, 300, 266, 300, 259, 264, 400, 265, 0, 159, 258, 450, 266, 450, 266, 300, 266, 450, 266, 450, 259, 264, 400, 265, 0, 162, 258, 450, 266, 450, 266, 300, 259, 264, 400, 265, 0, 162, 258, 450, 266, 450, 266, 300, 266, 450, 259, 264, 400, 265, 0, 0, 194, 402, 258, 404, 405, 259, 7, 0, 0, 197, 403, 258, 404, 405, 259, 7, 0, 168, 258, 283, 266, 300, 259, 7, 0, 168, 258, 283, 266, 300, 266, 450, 266, 300, 259, 7, 0, 189, 258, 456, 259, 7, 0, 170, 258, 457, 259, 7, 0, 174, 258, 456, 266, 452, 266, 450, 259, 7, 0, 175, 258, 456, 266, 450, 266, 457, 259, 7, 0, 176, 258, 456, 266, 452, 266, 457, 259, 7, 0, 177, 264, 456, 265, 7, 0, 178, 264, 456, 265, 7, 0, 184, 264, 456, 266, 283, 266, 457, 266, 300, 265, 7, 0, 184, 264, 456, 266, 283, 266, 457, 265, 7, 0, 179, 258, 456, 266, 456, 266, 450, 266, 450, 259, 264, 400, 265, 7, 0, 180, 258, 456, 266, 456, 266, 450, 266, 450, 259, 264, 400, 265, 7, 0, 181, 258, 456, 266, 450, 259, 7, 0, 185, 264, 5, 266, 5, 266, 135, 457, 266, 4, 265, 7, 0, 185, 264, 5, 266, 5, 266, 135, 457, 265, 7, 0, 185, 264, 5, 266, 5, 265, 7, 0, 182, 258, 456, 266, 456, 259, 7, 0, 183, 258, 456, 266, 456, 259, 7, 0, 446, 0, 302, 0, 456, 0, 0, 405, 406, 0, 266, 209, 457, 0, 266, 213, 452, 0, 266, 452, 0, 0, 407, 408, 0, 156, 450, 7, 0, 157, 450, 7, 0, 143, 300, 7, 0, 158, 300, 7, 0, 140, 264, 400, 265, 0, 0, 409, 410, 0, 156, 450, 7, 0, 157, 450, 7, 0, 143, 300, 7, 0, 160, 450, 7, 0, 161, 450, 7, 0, 140, 264, 400, 265, 0, 0, 411, 412, 0, 163, 450, 7, 0, 88, 450, 7, 0, 164, 300, 7, 0, 18, 450, 7, 0, 140, 264, 400, 265, 0, 0, 413, 414, 0, 163, 450, 7, 0, 166, 450, 7, 0, 88, 450, 7, 0, 18, 450, 7, 0, 133, 456, 7, 0, 167, 264, 415, 265, 0, 140, 264, 400, 265, 0, 141, 264, 400, 265, 0, 0, 415, 264, 416, 265, 0, 0, 416, 417, 0, 86, 5, 7, 0, 112, 5, 7, 0, 130, 283, 7, 0, 88, 450, 7, 0, 99, 300, 7, 0, 18, 5, 7, 0, 0, 418, 419, 0, 264, 420, 265, 0, 447, 0, 446, 0, 0, 420, 421, 0, 96, 456, 7, 0, 96, 5, 294, 7, 0, 134, 456, 7, 0, 188, 456, 7, 0, 112, 264, 422, 265, 0, 0, 422, 264, 423, 265, 0, 422, 447, 0, 422, 446, 0, 0, 423, 424, 0, 96, 456, 7, 0, 75, 264, 425, 265, 0, 0, 425, 117, 264, 426, 265, 0, 425, 5, 264, 426, 265, 0, 0, 426, 427, 0, 0, 386, 258, 428, 304, 259, 7, 0, 86, 5, 7, 0, 130, 283, 7, 0, 81, 5, 7, 0, 83, 5, 7, 0, 0, 429, 430, 0, 264, 431, 265, 0, 447, 0, 446, 0, 0, 431, 432, 0, 96, 456, 7, 0, 190, 456, 7, 0, 215, 5, 7, 0, 192, 457, 7, 0, 140, 264, 435, 265, 0, 0, 189, 456, 191, 456, 434, 264, 435, 265, 0, 0, 0, 435, 436, 437, 0, 193, 258, 439, 442, 443, 259, 7, 0, 194, 258, 439, 442, 443, 259, 7, 0, 194, 258, 6, 266, 300, 443, 259, 7, 0, 194, 258, 6, 266, 232, 258, 457, 259, 443, 259, 7, 0, 196, 258, 6, 443, 259, 7, 0, 0, 195, 258, 283, 438, 266, 130, 283, 443, 259, 7, 0, 446, 0, 456, 441, 266, 0, 456, 441, 440, 5, 441, 266, 0, 249, 0, 250, 0, 247, 0, 248, 0, 0, 258, 283, 259, 0, 199, 0, 200, 283, 0, 201, 283, 0, 203, 264, 264, 453, 265, 264, 453, 265, 264, 453, 265, 265, 0, 202, 283, 0, 202, 264, 300, 266, 300, 266, 300, 265, 264, 452, 266, 452, 266, 452, 265, 0, 204, 264, 453, 265, 0, 205, 264, 264, 453, 265, 264, 453, 265, 265, 264, 450, 265, 0, 206, 264, 264, 453, 265, 264, 453, 265, 264, 453, 265, 265, 264, 450, 266, 450, 265, 0, 207, 264, 264, 453, 265, 264, 453, 265, 264, 453, 265, 264, 453, 265, 265, 264, 450, 266, 450, 266, 450, 265, 0, 200, 283, 208, 5, 264, 450, 266, 450, 265, 264, 450, 265, 0, 0, 443, 444, 0, 266, 209, 457, 0, 266, 209, 243, 457, 0, 266, 209, 246, 457, 0, 266, 210, 450, 0, 266, 218, 0, 266, 219, 0, 266, 214, 450, 0, 266, 215, 5, 0, 266, 216, 445, 0, 266, 217, 445, 0, 266, 215, 445, 0, 266, 212, 0, 266, 211, 450, 0, 266, 213, 452, 0, 266, 198, 5, 0, 266, 221, 5, 0, 266, 220, 450, 0, 266, 75, 452, 0, 266, 222, 450, 0, 266, 222, 264, 453, 265, 0, 266, 223, 0, 266, 224, 0, 266, 136, 452, 0, 266, 168, 264, 300, 266, 300, 266, 300, 265, 0, 266, 225, 302, 0, 266, 226, 0, 266, 226, 264, 450, 266, 450, 266, 450, 265, 0, 266, 227, 0, 266, 227, 264, 450, 266, 450, 266, 450, 265, 0, 266, 228, 0, 266, 228, 264, 450, 266, 450, 266, 450, 265, 0, 266, 229, 264, 453, 265, 0, 266, 230, 3, 0, 266, 231, 0, 0, 445, 6, 0, 13, 256, 450, 8, 450, 257, 0, 13, 256, 450, 8, 450, 8, 450, 257, 0, 13, 5, 130, 264, 450, 8, 450, 265, 0, 13, 5, 130, 264, 450, 8, 450, 8, 450, 265, 0, 14, 0, 15, 256, 450, 257, 0, 17, 0, 29, 258, 448, 259, 7, 0, 456, 234, 452, 7, 0, 456, 234, 6, 7, 0, 456, 234, 232, 258, 457, 259, 7, 0, 456, 234, 458, 7, 0, 456, 234, 28, 258, 457, 259, 7, 0, 11, 256, 6, 257, 7, 0, 11, 456, 7, 0, 11, 261, 7, 0, 11, 256, 6, 266, 453, 257, 7, 0, 12, 256, 456, 257, 7, 0, 12, 256, 456, 257, 258, 450, 259, 7, 0, 0, 448, 293, 5, 0, 448, 293, 5, 234, 450, 0, 448, 293, 5, 234, 6, 0, 35, 0, 36, 0, 37, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, 45, 0, 46, 0, 47, 0, 48, 0, 49, 0, 50, 0, 51, 0, 52, 0, 53, 0, 54, 0, 456, 0, 451, 0, 256, 450, 257, 0, 248, 450, 0, 253, 450, 0, 450, 248, 450, 0, 450, 247, 450, 0, 450, 249, 450, 0, 450, 250, 450, 0, 450, 251, 450, 0, 450, 255, 450, 0, 450, 241, 450, 0, 450, 243, 450, 0, 450, 242, 450, 0, 450, 244, 450, 0, 450, 238, 450, 0, 450, 239, 450, 0, 450, 237, 450, 0, 450, 236, 450, 0, 35, 258, 450, 259, 0, 36, 258, 450, 259, 0, 37, 258, 450, 259, 0, 38, 258, 450, 259, 0, 39, 258, 450, 259, 0, 40, 258, 450, 259, 0, 41, 258, 450, 259, 0, 42, 258, 450, 259, 0, 43, 258, 450, 259, 0, 44, 258, 450, 259, 0, 45, 258, 450, 266, 450, 259, 0, 46, 258, 450, 259, 0, 47, 258, 450, 259, 0, 48, 258, 450, 259, 0, 49, 258, 450, 259, 0, 50, 258, 450, 259, 0, 51, 258, 450, 259, 0, 52, 258, 450, 266, 450, 259, 0, 53, 258, 450, 266, 450, 259, 0, 54, 258, 450, 266, 450, 259, 0, 450, 261, 0, 4, 0, 3, 0, 30, 0, 31, 0, 32, 0, 33, 0, 34, 0, 456, 0, 0, 450, 0, 454, 0, 264, 453, 265, 0, 450, 0, 454, 0, 453, 266, 450, 0, 453, 266, 454, 0, 450, 8, 450, 0, 450, 8, 450, 8, 450, 0, 5, 264, 265, 0, 5, 264, 453, 265, 0, 24, 258, 5, 259, 0, 25, 258, 5, 266, 5, 259, 0, 26, 258, 450, 266, 450, 266, 450, 259, 0, 27, 258, 450, 266, 450, 266, 450, 259, 0, 5, 268, 264, 450, 265, 0, 455, 268, 264, 450, 265, 0, 5, 0, 455, 0, 6, 0, 456, 0, 458, 0, 10, 256, 457, 257, 0, 10, 256, 457, 266, 453, 257, 0, 233, 0, 9, 258, 457, 266, 457, 259, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, 339, 356, 376, 379, 382, 385, 388, 389, 390, 391, 392, 393, 394, 395, 396, 398, 400, 402, 407, 416, 419, 421, 423, 425, 427, 429, 431, 433, 435, 437, 439, 441, 443, 445, 447, 449, 451, 453, 455, 458, 466, 480, 483, 487, 492, 498, 504, 506, 508, 511, 513, 516, 528, 535, 543, 554, 562, 571, 578, 593, 623, 628, 639, 642, 646, 651, 654, 670, 683, 692, 697, 704, 711, 720, 728, 735, 746, 755, 763, 777, 790, 825, 829, 839, 856, 856, 859, 865, 868, 872, 881, 884, 887, 891, 911, 955, 957, 961, 964, 981, 990, 997, 1000, 1005, 1011, 1015, 1020, 1025, 1031, 1038, 1042, 1055, 1070, 1084, 1090, 1096, 1102, 1108, 1114, 1120, 1126, 1132, 1138, 1144, 1150, 1156, 1162, 1168, 1174, 1180, 1187, 1193, 1195, 1204, 1208, 1214, 1288, 1322, 1331, 1343, 1345, 1357, 1359, 1371, 1373, 1387, 1399, 1405, 1411, 1413, 1442, 1468, 1481, 1487, 1494, 1500, 1507, 1514, 1524, 1527, 1528, 1531, 1534, 1537, 1542, 1545, 1558, 1565, 1570, 1575, 1579, 1586, 1591, 1596, 1601, 1607, 1611, 1616, 1619, 1655, 1663, 1668, 1677, 1681, 1690, 1693, 1698, 1703, 1708, 1716, 1720, 1732, 1742, 1747, 1752, 1757, 1769, 1773, 1823, 1826, 1829, 1832, 1835, 1844, 1851, 1854, 1861, 1863, 1866, 1875, 1879, 1888, 1896, 1905, 1908, 1924, 1931, 1936, 1943, 1953, 1957, 1969, 1974, 1980, 1985, 1993, 2001, 2010, 2028, 2037, 2045, 2053, 2063, 2073, 2083, 2101, 2109, 2112, 2119, 2121, 2125, 2133, 2137, 2146, 2154, 2163, 2166, 2169, 2172, 2177, 2185, 2202, 2209, 2226, 2230, 2235, 2240, 2245, 2259, 2279, 2284, 2289, 2294, 2323, 2327, 2332, 2342, 2404, 2412, 2419, 2426, 2430, 2439, 2442, 2447, 2465, 2470, 2474, 2491, 2505, 2510, 2517, 2530, 2538, 2546, 2554, 2558, 2567, 2578, 2590, 2597, 2634, 2641, 2653, 2657, 2692, 2695, 2698, 2711, 2718, 2721, 2728, 2730, 2734, 2741, 2745, 2754, 2762, 2772, 2774, 2779, 2785, 2790, 2794, 2813, 2817, 2822, 2826, 2829, 2839, 2843, 2851, 2875, 2880, 2886, 3197, 3202, 3211, 3220, 3229, 3234, 3237, 3275, 3282, 3287, 3292, 3299, 3304, 3307, 3310, 3319, 3327, 3330, 3342, 3352, 3364, 3373, 3376, 3380, 3382, 3384, 3390, 3411, 3415, 3426, 3504, 3550, 3555, 3564, 3573, 3578, 3587, 3596, 3613, 3617, 3632, 3641, 3695, 3711, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3724, 3747, 3769, 3776, 3779, 3786, 3788, 3792, 3800, 3804, 3813, 3821, 3824, 3826, 3829, 3833, 3839, 3844, 3852, 3868, 3872, 3877, 3886, 3889, 3894, 3899, 3904, 3909, 3914, 3918, 3929, 3934, 3939, 3949, 3961, 3965, 3970, 3981, 3990, 3999, 4025, 4032, 4038, 4044, 4050, 4058, 4080, 4087, 4093, 4104, 4115, 4128, 4143, 4158, 4173, 4193, 4214, 4226, 4246, 4263, 4282, 4303, 4317, 4331, 4338, 4372, 4385, 4399, 4412, 4425, 4432, 4434, 4441, 4443, 4454, 4466, 4476, 4484, 4497, 4510, 4524, 4534, 4544, 4558, 4572, 4590, 4609, 4620, 4635, 4650, 4665, 4680, 4695, 4705, 4711, 4721, 4727, 4730, 4734, 4744, 4757, 4769, 4773, 4779, 4783, 4787, 4792, 4801, 4814, 4818, 4824, 4828, 4832, 4836, 4841, 4850, 4862, 4865, 4871, 4875, 4879, 4883, 4892, 4907, 4910, 4916, 4920, 4924, 4929, 4939, 4945, 4951, 4960, 4964, 4968, 4982, 4985, 4997, 5026, 5029, 5032, 5040, 5056, 5064, 5067, 5074, 5076, 5079, 5089, 5092, 5100, 5108, 5121, 5126, 5131, 5135, 5138, 5140, 5145, 5152, 5156, 5160, 5165, 5171, 5177, 5190, 5201, 5204, 5212, 5240, 5251, 5256, 5265, 5281, 5289, 5292, 5297, 5299, 5302, 5311, 5314, 5322, 5334, 5345, 5350, 5355, 5373, 5382, 5386, 5391, 5401, 5408, 5413, 5422, 5431, 5440, 5446, 5451, 5458, 5472, 5494, 5497, 5498, 5499, 5502, 5506, 5510, 5518, 5525, 5532, 5556, 5563, 5575, 5588, 5608, 5634, 5667, 5687, 5720, 5723, 5731, 5738, 5745, 5749, 5753, 5757, 5761, 5771, 5776, 5781, 5801, 5805, 5812, 5822, 5831, 5840, 5847, 5855, 5859, 5868, 5872, 5876, 5884, 5890, 5894, 5902, 5909, 5917, 5924, 5932, 5939, 5947, 5951, 5959, 5966, 6014, 6031, 6047, 6067, 6087, 6125, 6129, 6140, 6144, 6159, 6165, 6171, 6177, 6188, 6193, 6209, 6214, 6226, 6236, 6252, 6255, 6261, 6267, 6278, 6280, 6281, 6282, 6283, 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296, 6297, 6298, 6299, 6302, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, 6312, 6313, 6314, 6315, 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6327, 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6338, 6339, 6340, 6344, 6347, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6372, 6377, 6383, 6386, 6391, 6399, 6402, 6405, 6415, 6423, 6434, 6450, 6472, 6487, 6525, 6533, 6543, 6553, 6562, 6567, 6572, 6577, 6592, 6597, 6602, 6621, 6630 }; #endif #if YYDEBUG != 0 || defined (YYERROR_VERBOSE) static const char * const yytname[] = { "$","error","$undefined.","tINT","tFLOAT", "tSTRING","tBIGSTR","tEND","tDOTS","tStrCat","tSprintf","tPrintf","tRead","tFor", "tEndFor","tIf","tElse","tEndIf","tFlag","tHelp","tCpu","tCheck","tInclude", "tConstant","tList","tListAlt","tLinSpace","tLogSpace","tListFromFile","tDefineConstant", "tPi","t0D","t1D","t2D","t3D","tExp","tLog","tLog10","tSqrt","tSin","tAsin", "tCos","tAcos","tTan","tAtan","tAtan2","tSinh","tCosh","tTanh","tFabs","tFloor", "tCeil","tFmod","tModulo","tHypot","tSolidAngle","tTrace","tOrder","tCrossProduct", "tDofValue","tMHTransform","tMHJacNL","tGroup","tDefineGroup","tAll","tInSupport", "tMovingBand2D","tDefineFunction","tConstraint","tRegion","tSubRegion","tRegionRef", "tSubRegionRef","tFilter","tCoefficient","tValue","tTimeFunction","tBranch", "tNode","tLoop","tNameOfResolution","tJacobian","tCase","tIntegration","tFMMIntegration", "tMatrix","tType","tSubType","tCriterion","tGeoElement","tNumberOfPoints","tMaxNumberOfPoints", "tNumberOfDivisions","tMaxNumberOfDivisions","tStoppingCriterion","tFunctionSpace", "tName","tBasisFunction","tNameOfCoef","tFunction","tdFunction","tSubFunction", "tSubdFunction","tSupport","tEntity","tSubSpace","tNameOfBasisFunction","tGlobalQuantity", "tEntityType","tEntitySubType","tNameOfConstraint","tFormulation","tQuantity", "tNameOfSpace","tIndexOfSystem","tSymmetry","tEquation","tGalerkin","tdeRham", "tGlobalTerm","tGlobalEquation","tDiscreteGeometry","tDt","tDtDof","tDtDt","tDtDtDof", "tJacNL","tNeverDt","tDtNL","tAtAnteriorTimeStep","tIn","tFull_Matrix","tResolution", "tDefineSystem","tNameOfFormulation","tNameOfMesh","tFrequency","tSolver","tOriginSystem", "tDestinationSystem","tOperation","tOperationEnd","tSetTime","tDTime","tSetFrequency", "tFourierTransform","tFourierTransformJ","tLanczos","tEigenSolve","tEigenSolveJac", "tPerturbation","tUpdate","tUpdateConstraint","tBreak","tEvaluate","tTimeLoopTheta", "tTime0","tTimeMax","tTheta","tTimeLoopNewmark","tBeta","tGamma","tIterativeLoop", "tNbrMaxIteration","tRelaxationFactor","tIterativeTimeReduction","tDivisionCoefficient", "tChangeOfState","tChangeOfCoordinates","tChangeOfCoordinates2","tSystemCommand", "tGenerateFMMGroups","tGenerateOnly","tGenerateOnlyJac","tSolveJac_AdaptRelax", "tSaveSolutionExtendedMH","tSaveSolutionMHtoTime","tInit_MovingBand2D","tMesh_MovingBand2D", "tGenerate_MH_Moving","tGenerate_MH_Moving_Separate","tAdd_MH_Moving","tGenerateGroup", "tGenerateJacGroup","tSaveMesh","tDeformeMesh","tDummyFrequency","tPostProcessing", "tNameOfSystem","tPostOperation","tNameOfPostProcessing","tUsingPost","tAppend", "tPlot","tPrint","tPrintGroup","tEcho","tWrite","tAdapt","tOnGlobal","tOnRegion", "tOnElementsOf","tOnGrid","tOnSection","tOnPoint","tOnLine","tOnPlane","tOnBox", "tWithArgument","tFile","tDepth","tDimension","tComma","tTimeStep","tHarmonicToTime", "tFormat","tHeader","tFooter","tSkin","tSmoothing","tTarget","tSort","tIso", "tNoNewLine","tDecomposeInSimplex","tChangeOfValues","tTimeLegend","tFrequencyLegend", "tEigenvalueLegend","tEvaluationPoints","tStore","tLastTimeStepOnly","tStr", "tDate","tDEF","'?'","tOR","tAND","tEQUAL","tNOTEQUAL","tAPPROXEQUAL","'<'", "tLESSOREQUAL","'>'","tGREATEROREQUAL","tLESSLESS","tGREATERGREATER","'+'","'-'", "'*'","'/'","'%'","tCROSSPRODUCT","'!'","UNARYPREC","'^'","'('","')'","'['", "']'","'.'","'#'","'$'","tSHOW","'{'","'}'","','","'@'","'~'","Stats","@1","ProblemDefinitions", "@2","ProblemDefinition","Interactive","@3","Groups","Group","MovingBand2DGroup", "@4","@5","ReducedGroupRHS","@6","GroupRHS","GroupRHS_MultipleIndex","FunctionForGroup", "ListOfRegionOrAll","SuppListOfRegion","SuppListTypeForGroup","ListOfRegion", "RecursiveListOfRegion","IRegion","DefineGroups","Comma","DefineDimension","MultipleIndex", "Index","Functions","Function","DefineFunctions","Expression","@7","ListOfExpression", "RecursiveListOfExpression","WholeQuantityExpression","@8","WholeQuantity","@9", "@10","WholeQuantity_Single","@11","@12","@13","@14","ArgumentsForFunction", "RecursiveListOfQuantity","ParametersForFunction","JacobianMethods","JacobianMethod", "JacobianMethodTerm","JacobianCases","JacobianCase","JacobianCaseTerm","IntegrationMethods", "IntegrationMethod","IntegrationMethodTerm","IntegrationCases","IntegrationCase", "IntegrationCaseTerm","QuadratureCases","QuadratureCase","QuadratureCaseTerm", "Constraints","BracedConstraint","Constraint","ConstraintTerm","ConstraintCases", "ConstraintCase","ConstraintCaseTerm","FunctionSpaces","BracedFunctionSpace", "FunctionSpace","FunctionSpaceTerm","BasisFunctions","BasisFunction","BasisFunctionTerm", "OptionalParametersForBasisFunction","@15","@16","SubSpaces","SubSpace","SubSpaceTerm", "ListOfBasisFunction","RecursiveListOfBasisFunction","ListOfBasisFunctionCoef", "RecursiveListOfBasisFunctionCoef","GlobalQuantities","GlobalQuantity","GlobalQuantityTerm", "ConstraintInFSs","ConstraintInFS","ConstraintInFSTerm","Formulations","BracedFormulation", "Formulation","FormulationTerm","DefineQuantities","DefineQuantity","DefineQuantityTerm", "@17","@18","IndexInFunctionSpace","Equations","EquationTerm","GlobalEquation", "GlobalEquationTerm","GlobalEquationTermTerm","GlobalEquationTermTermTerm","LocalTerm", "LocalTermTerm","@19","@20","GlobalTerm","GlobalTermTerm","@21","@22","TermOperator", "Quantity_Def","Resolutions","BracedResolution","Resolution","ResolutionTerm", "@23","DefineSystems","DefineSystem","DefineSystemTerm","ListOfFormulation", "RecursiveListOfFormulation","ListOfSystem","RecursiveListOfSystem","Operation", "OperationTerm","@24","@25","PrintOperation","PrintOperationOptions","PrintOperationOption", "TimeLoopTheta","TimeLoopThetaTerm","TimeLoopNewmark","TimeLoopNewmarkTerm", "IterativeLoop","IterativeLoopTerm","IterativeTimeReduction","IterativeTimeReductionTerm", "ChangeOfStates","ChangeOfState","ChangeOfStateTerm","PostProcessings","BracedPostProcessing", "PostProcessing","PostProcessingTerm","PostQuantities","PostQuantity","PostQuantityTerm", "SubPostQuantities","SubPostQuantity","SubPostQuantityTerm","@26","PostOperations", "BracedPostOperation","PostOperation","PostOperationTerm","SeparatePostOperation", "@27","PostSubOperations","@28","PostSubOperation","@29","PostQuantitiesToPrint", "Combination","PostQuantitySupport","PrintSubType","PrintOptions","PrintOption", "ParsedStrings","Loop","Affectation","DefineConstants","NameForFunction","FExpr", "OneFExpr","ListOfFExpr","RecursiveListOfFExpr","MultiFExpr","StringIndex","String__Index", "CharExpr","StrCat", NULL }; #endif static const short yyr1[] = { 0, 270, 269, 271, 272, 271, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 275, 274, 276, 276, 277, 277, 277, 277, 277, 277, 277, 277, 279, 280, 278, 282, 281, 281, 283, 283, 284, 285, 285, 286, 286, 287, 287, 287, 288, 289, 289, 290, 290, 290, 291, 291, 291, 291, 291, 291, 291, 291, 292, 292, 292, 293, 293, 294, 295, 295, 296, 297, 297, 298, 298, 298, 298, 298, 299, 299, 300, 300, 301, 300, 302, 302, 303, 303, 305, 304, 306, 307, 308, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 309, 309, 309, 309, 309, 309, 310, 309, 311, 309, 312, 309, 309, 309, 309, 313, 309, 309, 309, 309, 309, 309, 309, 309, 309, 314, 314, 314, 315, 315, 316, 316, 316, 317, 317, 318, 318, 319, 319, 320, 320, 321, 321, 322, 322, 322, 323, 323, 324, 324, 325, 325, 325, 326, 326, 327, 327, 328, 328, 328, 329, 329, 330, 330, 331, 331, 331, 331, 331, 331, 332, 332, 333, 333, 333, 334, 334, 335, 335, 335, 335, 335, 336, 336, 336, 337, 337, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 339, 339, 340, 340, 340, 341, 341, 342, 342, 342, 342, 342, 342, 342, 343, 343, 343, 344, 344, 345, 345, 345, 345, 345, 345, 345, 345, 345, 346, 347, 348, 346, 349, 349, 350, 350, 351, 351, 351, 352, 352, 353, 353, 354, 354, 355, 355, 356, 356, 357, 357, 358, 358, 358, 359, 359, 359, 360, 360, 361, 361, 361, 361, 362, 362, 363, 363, 363, 364, 364, 365, 365, 365, 365, 365, 366, 366, 366, 367, 367, 368, 368, 368, 368, 368, 369, 368, 368, 370, 368, 368, 368, 368, 368, 368, 371, 371, 372, 372, 372, 372, 373, 373, 373, 373, 374, 374, 375, 375, 375, 376, 376, 377, 377, 377, 377, 378, 378, 380, 381, 379, 379, 379, 379, 379, 379, 379, 382, 382, 383, 384, 385, 383, 386, 386, 386, 386, 386, 386, 386, 386, 387, 387, 388, 388, 389, 389, 389, 390, 390, 391, 391, 391, 392, 391, 391, 393, 393, 393, 394, 394, 395, 395, 395, 395, 395, 395, 395, 395, 395, 396, 396, 397, 397, 398, 398, 399, 399, 400, 400, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 402, 401, 403, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 404, 404, 405, 405, 406, 406, 406, 407, 407, 408, 408, 408, 408, 408, 409, 409, 410, 410, 410, 410, 410, 410, 411, 411, 412, 412, 412, 412, 412, 413, 413, 414, 414, 414, 414, 414, 414, 414, 414, 415, 415, 416, 416, 417, 417, 417, 417, 417, 417, 418, 418, 419, 419, 419, 420, 420, 421, 421, 421, 421, 421, 422, 422, 422, 422, 423, 423, 424, 424, 425, 425, 425, 426, 426, 428, 427, 427, 427, 427, 427, 429, 429, 430, 430, 430, 431, 431, 432, 432, 432, 432, 432, 434, 433, 435, 436, 435, 437, 437, 437, 437, 437, 438, 437, 437, 439, 439, 440, 440, 440, 440, 441, 441, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 443, 443, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 445, 445, 446, 446, 446, 446, 446, 446, 446, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 448, 448, 448, 448, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 451, 451, 451, 451, 451, 451, 451, 451, 452, 452, 452, 452, 453, 453, 453, 453, 454, 454, 454, 454, 454, 454, 454, 454, 455, 455, 456, 456, 457, 457, 457, 457, 457, 457, 458 }; static const short yyr2[] = { 0, 0, 2, 0, 0, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 2, 1, 2, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 2, 0, 2, 4, 5, 5, 5, 1, 5, 1, 1, 0, 0, 18, 0, 6, 2, 1, 1, 2, 1, 1, 1, 1, 0, 3, 3, 1, 1, 3, 0, 3, 4, 1, 3, 3, 3, 5, 5, 7, 1, 0, 3, 6, 0, 1, 4, 0, 2, 3, 0, 2, 5, 6, 7, 1, 1, 0, 3, 4, 4, 0, 2, 0, 3, 1, 3, 0, 2, 1, 0, 0, 7, 3, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 3, 1, 3, 2, 1, 2, 0, 5, 0, 7, 0, 11, 9, 4, 4, 0, 7, 6, 2, 2, 2, 2, 3, 2, 3, 3, 2, 3, 1, 3, 0, 3, 6, 0, 4, 0, 2, 3, 4, 0, 4, 0, 2, 3, 3, 4, 0, 4, 0, 2, 3, 3, 4, 0, 4, 0, 2, 3, 3, 4, 0, 4, 0, 2, 3, 3, 3, 3, 3, 3, 0, 2, 3, 1, 1, 0, 2, 3, 4, 3, 4, 5, 0, 4, 2, 0, 2, 3, 3, 3, 3, 3, 3, 7, 3, 3, 3, 3, 3, 7, 7, 7, 0, 2, 3, 1, 1, 0, 2, 3, 4, 3, 4, 4, 4, 4, 0, 4, 2, 0, 2, 3, 3, 4, 4, 7, 3, 3, 3, 3, 0, 0, 0, 18, 0, 4, 0, 2, 3, 3, 3, 1, 3, 0, 3, 1, 3, 0, 3, 0, 4, 0, 2, 3, 3, 3, 0, 4, 2, 0, 2, 3, 3, 3, 3, 0, 2, 3, 1, 1, 0, 2, 3, 4, 3, 4, 4, 0, 4, 2, 0, 2, 3, 3, 3, 3, 3, 0, 5, 3, 0, 5, 3, 3, 3, 3, 3, 0, 3, 0, 2, 2, 2, 4, 4, 4, 4, 0, 2, 3, 3, 3, 0, 2, 3, 3, 3, 3, 0, 2, 0, 0, 9, 3, 3, 3, 2, 3, 5, 0, 2, 3, 0, 0, 9, 0, 1, 1, 1, 1, 1, 1, 1, 4, 3, 0, 2, 3, 1, 1, 0, 2, 3, 4, 4, 0, 5, 1, 0, 4, 2, 0, 2, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 0, 3, 1, 3, 0, 3, 0, 2, 3, 3, 4, 4, 4, 4, 5, 5, 2, 7, 11, 7, 13, 11, 9, 7, 7, 7, 9, 9, 9, 11, 11, 11, 5, 17, 13, 15, 11, 13, 0, 7, 0, 7, 7, 11, 5, 5, 9, 9, 9, 5, 5, 11, 9, 14, 14, 7, 12, 10, 7, 7, 7, 1, 1, 1, 0, 2, 3, 3, 2, 0, 2, 3, 3, 3, 3, 4, 0, 2, 3, 3, 3, 3, 3, 4, 0, 2, 3, 3, 3, 3, 4, 0, 2, 3, 3, 3, 3, 3, 4, 4, 4, 0, 4, 0, 2, 3, 3, 3, 3, 3, 3, 0, 2, 3, 1, 1, 0, 2, 3, 4, 3, 3, 4, 0, 4, 2, 2, 0, 2, 3, 4, 0, 5, 5, 0, 2, 0, 6, 3, 3, 3, 3, 0, 2, 3, 1, 1, 0, 2, 3, 3, 3, 3, 4, 0, 8, 0, 0, 3, 7, 7, 8, 11, 6, 0, 10, 1, 3, 6, 1, 1, 1, 1, 0, 3, 1, 2, 2, 12, 2, 15, 4, 12, 17, 22, 12, 0, 2, 3, 4, 4, 3, 2, 2, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 5, 2, 2, 3, 9, 3, 2, 9, 2, 9, 2, 9, 5, 3, 2, 0, 2, 6, 8, 8, 10, 1, 4, 1, 5, 4, 4, 7, 4, 7, 5, 3, 3, 7, 5, 8, 0, 3, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, 4, 4, 4, 6, 6, 6, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 3, 1, 1, 3, 3, 3, 5, 3, 4, 4, 6, 8, 8, 5, 5, 1, 1, 1, 1, 1, 4, 6, 1, 6 }; static const short yydefact[] = { 1, 3, 4, 40, 741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 19, 0, 16, 17, 742, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 27, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 743, 0, 0, 748, 744, 18, 745, 651, 42, 204, 167, 180, 236, 91, 299, 379, 519, 550, 0, 0, 636, 0, 638, 0, 0, 0, 0, 41, 574, 0, 723, 0, 0, 647, 646, 0, 26, 25, 24, 22, 23, 21, 39, 29, 31, 32, 33, 34, 30, 35, 36, 37, 38, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 716, 715, 741, 0, 0, 0, 0, 0, 0, 717, 718, 719, 720, 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 724, 676, 0, 725, 722, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 741, 0, 6, 43, 48, 51, 50, 0, 209, 8, 205, 208, 207, 169, 9, 182, 10, 241, 11, 237, 240, 239, 741, 0, 7, 92, 97, 96, 304, 12, 300, 303, 302, 384, 13, 380, 383, 382, 524, 14, 520, 523, 522, 555, 15, 551, 554, 553, 562, 0, 0, 0, 0, 581, 0, 0, 741, 61, 0, 58, 572, 0, 59, 594, 0, 0, 641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 678, 679, 0, 727, 0, 728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 714, 640, 643, 739, 645, 0, 649, 0, 0, 746, 0, 639, 652, 0, 0, 0, 82, 723, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 637, 583, 0, 0, 0, 0, 0, 0, 0, 0, 594, 0, 0, 102, 594, 74, 0, 71, 0, 57, 69, 81, 0, 0, 0, 740, 733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 677, 726, 0, 731, 693, 692, 690, 691, 686, 688, 687, 689, 681, 680, 682, 683, 684, 685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 741, 0, 0, 0, 0, 0, 0, 206, 210, 0, 0, 168, 170, 0, 102, 0, 181, 183, 0, 0, 0, 0, 0, 0, 238, 242, 0, 0, 85, 0, 0, 0, 0, 301, 305, 0, 0, 389, 381, 385, 391, 0, 0, 0, 0, 521, 525, 0, 0, 0, 0, 0, 552, 556, 564, 0, 0, 584, 585, 102, 587, 0, 0, 0, 0, 0, 0, 0, 579, 580, 577, 578, 575, 0, 0, 0, 0, 594, 108, 0, 0, 0, 85, 0, 0, 64, 55, 63, 0, 0, 595, 734, 735, 0, 0, 0, 0, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 0, 705, 706, 707, 708, 709, 710, 0, 0, 0, 0, 729, 730, 0, 648, 0, 749, 747, 654, 653, 0, 90, 62, 0, 0, 0, 0, 44, 0, 0, 0, 216, 0, 741, 0, 173, 0, 187, 0, 0, 290, 0, 741, 0, 250, 268, 283, 102, 0, 0, 0, 0, 741, 0, 311, 333, 741, 0, 392, 0, 741, 0, 531, 0, 0, 0, 564, 0, 0, 0, 565, 0, 0, 632, 0, 0, 0, 0, 0, 0, 0, 0, 582, 581, 0, 0, 0, 0, 103, 0, 0, 77, 75, 70, 0, 76, 0, 85, 571, 723, 723, 0, 0, 0, 0, 0, 607, 723, 0, 630, 630, 630, 600, 601, 0, 0, 0, 616, 617, 104, 621, 623, 625, 0, 0, 629, 0, 0, 0, 644, 0, 0, 0, 0, 642, 732, 650, 87, 46, 45, 47, 83, 49, 0, 216, 0, 213, 0, 0, 211, 0, 171, 0, 185, 184, 0, 245, 0, 243, 0, 0, 0, 0, 102, 93, 99, 308, 0, 306, 0, 0, 0, 386, 0, 414, 0, 526, 0, 528, 529, 557, 565, 558, 560, 559, 563, 0, 0, 0, 0, 102, 0, 589, 0, 0, 0, 567, 0, 0, 0, 0, 0, 741, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 0, 149, 0, 0, 0, 0, 140, 142, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 138, 0, 135, 722, 568, 0, 0, 0, 72, 594, 0, 0, 613, 618, 102, 610, 0, 0, 596, 599, 608, 609, 602, 603, 606, 604, 605, 612, 611, 0, 614, 102, 620, 0, 0, 0, 0, 628, 736, 0, 0, 704, 711, 712, 713, 0, 52, 0, 219, 214, 218, 212, 175, 172, 189, 186, 293, 249, 292, 244, 253, 246, 252, 270, 247, 285, 248, 94, 0, 307, 314, 309, 313, 0, 0, 0, 0, 310, 334, 336, 335, 387, 395, 388, 394, 0, 527, 535, 530, 534, 533, 561, 566, 0, 634, 633, 0, 0, 0, 0, 0, 0, 576, 100, 101, 594, 569, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 131, 133, 0, 157, 155, 152, 154, 153, 741, 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 164, 79, 78, 73, 0, 56, 68, 0, 0, 0, 597, 598, 631, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 95, 0, 352, 352, 363, 341, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, 448, 390, 415, 469, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 108, 108, 0, 134, 0, 378, 0, 130, 129, 126, 127, 128, 122, 124, 123, 125, 118, 119, 114, 117, 120, 115, 121, 156, 158, 160, 0, 162, 0, 0, 136, 0, 0, 67, 66, 102, 615, 105, 102, 0, 0, 0, 627, 737, 738, 84, 0, 0, 0, 0, 0, 102, 102, 102, 102, 0, 0, 0, 102, 217, 220, 0, 0, 174, 176, 0, 0, 0, 188, 190, 0, 0, 0, 0, 291, 294, 0, 0, 0, 0, 104, 104, 0, 0, 251, 254, 0, 0, 0, 269, 271, 0, 0, 0, 284, 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 723, 324, 312, 315, 369, 369, 369, 0, 0, 0, 0, 0, 723, 0, 0, 0, 393, 396, 405, 0, 0, 102, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 424, 102, 0, 477, 0, 484, 0, 492, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 532, 536, 635, 0, 0, 0, 0, 0, 0, 0, 147, 0, 148, 0, 144, 0, 0, 0, 108, 377, 0, 159, 161, 0, 0, 0, 80, 573, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, 102, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 164, 194, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 279, 281, 0, 275, 277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 321, 0, 0, 0, 0, 108, 0, 0, 0, 0, 370, 371, 372, 373, 374, 375, 376, 0, 0, 337, 353, 0, 338, 0, 339, 364, 0, 0, 0, 346, 340, 342, 0, 0, 408, 0, 406, 0, 0, 0, 412, 0, 410, 0, 0, 416, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 104, 539, 0, 0, 0, 0, 0, 0, 0, 570, 0, 0, 108, 0, 141, 0, 0, 112, 163, 0, 165, 102, 0, 0, 0, 53, 222, 223, 228, 229, 0, 232, 0, 231, 225, 224, 85, 226, 221, 0, 230, 178, 177, 0, 0, 191, 192, 295, 296, 297, 298, 255, 256, 0, 0, 0, 85, 260, 261, 262, 263, 272, 85, 274, 85, 273, 288, 287, 289, 329, 327, 328, 319, 317, 318, 316, 331, 323, 330, 326, 320, 0, 0, 0, 0, 0, 0, 360, 354, 0, 366, 0, 0, 0, 398, 397, 85, 399, 400, 403, 404, 85, 401, 402, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 102, 0, 0, 102, 418, 478, 0, 0, 102, 0, 0, 0, 0, 419, 485, 0, 0, 0, 0, 0, 102, 420, 493, 0, 0, 0, 0, 0, 0, 0, 0, 421, 500, 102, 0, 102, 723, 723, 723, 0, 723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 470, 472, 471, 472, 0, 537, 0, 723, 0, 0, 0, 0, 0, 116, 0, 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, 102, 102, 0, 102, 179, 196, 193, 257, 0, 258, 0, 280, 0, 276, 0, 0, 0, 0, 358, 359, 361, 0, 357, 108, 365, 108, 343, 344, 0, 0, 0, 0, 345, 347, 407, 0, 411, 0, 422, 414, 423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 440, 0, 414, 0, 0, 0, 0, 0, 414, 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, 0, 0, 0, 0, 414, 414, 0, 0, 509, 0, 453, 0, 0, 0, 0, 0, 0, 457, 458, 0, 0, 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, 538, 0, 0, 0, 0, 0, 0, 150, 0, 0, 143, 113, 0, 619, 622, 624, 626, 0, 0, 0, 0, 0, 0, 0, 0, 282, 278, 0, 322, 325, 0, 355, 367, 0, 0, 0, 0, 409, 413, 0, 0, 723, 0, 723, 0, 0, 0, 0, 0, 102, 0, 481, 479, 480, 482, 102, 0, 488, 486, 487, 489, 490, 102, 497, 495, 0, 494, 496, 504, 503, 505, 0, 0, 501, 502, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 723, 473, 0, 542, 542, 0, 723, 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, 197, 0, 0, 332, 362, 0, 0, 348, 349, 350, 351, 425, 427, 0, 0, 0, 0, 0, 0, 433, 0, 0, 483, 0, 491, 0, 498, 507, 508, 511, 506, 450, 0, 0, 431, 432, 0, 0, 0, 0, 0, 463, 467, 468, 0, 466, 0, 447, 0, 723, 476, 449, 369, 369, 593, 0, 586, 590, 0, 0, 0, 146, 0, 235, 234, 227, 233, 0, 0, 0, 0, 0, 0, 0, 259, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 102, 0, 102, 0, 0, 0, 0, 0, 0, 102, 0, 474, 475, 0, 0, 0, 0, 541, 0, 543, 540, 723, 0, 0, 0, 0, 198, 199, 200, 201, 202, 203, 0, 0, 0, 414, 435, 436, 0, 0, 0, 0, 434, 0, 0, 414, 0, 0, 0, 0, 102, 0, 0, 510, 512, 0, 430, 0, 454, 455, 456, 0, 0, 460, 0, 0, 0, 0, 0, 0, 0, 544, 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 465, 0, 548, 549, 546, 547, 108, 588, 0, 0, 0, 265, 356, 368, 426, 437, 438, 439, 0, 414, 0, 444, 414, 518, 513, 516, 517, 514, 515, 451, 429, 0, 414, 414, 459, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 464, 0, 591, 0, 0, 0, 442, 414, 445, 428, 0, 0, 545, 0, 0, 88, 0, 0, 461, 462, 0, 266, 0, 60, 0, 443, 0, 0, 89, 0, 0, 0, 441, 592, 88, 0, 0, 267, 0, 0, 0 }; static const short yydefgoto[] = { 2033, 1, 2, 3, 22, 23, 24, 110, 186, 187, 932, 1536, 242, 616, 243, 2009, 244, 498, 770, 917, 349, 494, 350, 411, 182, 311, 2018, 312, 115, 208, 440, 489, 490, 1512, 924, 607, 608, 758, 1010, 1530, 759, 874, 875, 1354, 869, 908, 1032, 1034, 112, 318, 424, 669, 935, 1068, 113, 319, 429, 671, 936, 1073, 1386, 1659, 1756, 111, 193, 317, 420, 664, 934, 1064, 114, 202, 320, 437, 678, 938, 1089, 1397, 1987, 2022, 679, 939, 1094, 1246, 1406, 1243, 1404, 680, 940, 1099, 674, 937, 1079, 116, 213, 323, 446, 688, 942, 1112, 1418, 1262, 1553, 689, 838, 1116, 1288, 1435, 1570, 1113, 1277, 1560, 1761, 1115, 1282, 1562, 1762, 1278, 760, 117, 218, 324, 451, 578, 692, 947, 1126, 1292, 1438, 1298, 1443, 845, 987, 1169, 1170, 1513, 1633, 1731, 1317, 1466, 1319, 1475, 1321, 1483, 1322, 1493, 1712, 1845, 1900, 118, 223, 325, 458, 696, 989, 1174, 1516, 1808, 1865, 1953, 119, 228, 326, 465, 25, 327, 589, 705, 81, 352, 235, 485, 342, 340, 354, 502, 784, 988, 26, 109, 761, 279, 169, 170, 280, 281, 27, 172, 59, 60 }; static const short yypact[] = {-32768, -32768, 67, 4472, -190, 79, -170, 406, 99, 2544, 359, -169, -145, -138, -111, -108, -61, -17, 32, 46, 57, 26,-32768,-32768, 783,-32768,-32768, -54, 18, 77, 345, 395, 409, 423, 434,-32768, 464, 487, 497, 500, 513, -32768, 521,-32768, 524, 530, 539, 562, 567, 582, 604, 626, 634, 674,-32768, 223, 298,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768, 422, 42,-32768, 330,-32768, 448, 460, 472, 480, -32768,-32768, 428, 2454, 4422, -58,-32768,-32768, 484,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768, 359, 359, 151, 180, 80, -221, -77, 244, 265, 450, 461, 488, 527, 423, 625, 4422, 4422, 423, 229, 82, 737, 4422,-32768,-32768, -97, 759, 514, 529, 535, 537, 543,-32768,-32768,-32768, -32768,-32768, 552, 559, 574, 576, 581, 605, 607, 647, 661, 666, 688, 699, 707, 745, 747, 752, 784, 798, 800, 801, 802, 4422, 4422, 4422, 4234, 679,-32768, 815, -32768,-32768, 945, 5115, 994, 4234, 91, 751, -50, 1021, -32768, 1028, -96, 803,-32768,-32768,-32768,-32768,-32768, 172, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768, -189, 817,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768, 809, 3149, 5595, 972, 818, 811, 972, -79,-32768, 37,-32768,-32768, 820,-32768,-32768, 5145, 613,-32768, 1075, 1076, 4422, 4422, 359, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 359, -44, -44, 5621, 679, 410, -32768, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422, 4422,-32768,-32768,-32768,-32768, -32768, 50,-32768, 4422, 359,-32768, 4234,-32768, 851, 2046, 852, 854,-32768, 2392, 855, 4422, 227, 178, 312, 660, 61,-32768, 615, 862, 454, 814, 826, 4422, 4422,-32768, -32768, 82, 82, 7, 827, 839, 840, 842, 843,-32768, 82, 474, 138,-32768, 1100, 4422,-32768, 4234,-32768,-32768, -32768, 845, 36, 155,-32768,-32768, 414, 850, 847, 2040, 2422, 859, 5647, 5673, 5699, 5725, 5751, 5777, 5803, 5829, 5855, 5881, 4261, 5907, 5933, 5959, 5985, 6011, 6037, 4282, 4337, 4443, 864,-32768,-32768, 4234, 3393, 2690, 2473, 2725, 2725, 719, 719, 719, 719, 261, 261, -44, -44, -44, -44, 1103, 6063, 865, 141, 4370, 4422, 5175, 85, 85, 181, -140, 1119, 85, 6089, 27, 1123, 1124,-32768,-32768, 876, 1136,-32768,-32768, 878, 113, 1138,-32768,-32768, 880, 1140, 1141, 883, 902, 903,-32768,-32768, 934, 931, 211, 1191, 1192, 935, 936,-32768,-32768, 1193, 938,-32768,-32768, -32768,-32768, 1196, 940, 423, 423,-32768,-32768, 423, 971, 423, 359, 1200,-32768,-32768,-32768, 3437, 3107, 1029,-32768, 113,-32768, 980, 4234, 985, 992, 993, 260, 977,-32768, -32768,-32768,-32768,-32768, 1253, 1002, 1005, 1006,-32768,-32768, 270, 4422, 6115, 443, 171, 1132,-32768,-32768,-32768, 1259, 4421,-32768,-32768,-32768, 1262, 4422, 4422, 1261,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 4422,-32768, -32768,-32768,-32768,-32768,-32768, 4422, 4422, 4422, 1265, 679, -32768, 4422,-32768, 1266,-32768,-32768,-32768, 6661, 5205,-32768, -32768, 1271, 1272, 1273, 1264,-32768, 1278, 1056, 1027,-32768, 1290, -14, 1291,-32768, 1292,-32768, 1295, 1296,-32768, 1297, -14, 1298,-32768,-32768,-32768, 113, 1073, 1301, 1304, 1303, -14, 1305,-32768,-32768, -14, 1306,-32768, 1047, -14, 1307, -32768, 1313, 1318, 1319,-32768, 1325, 1326, 1327, 1072, 4422, 4422,-32768, 1335, 1077, 4234, 505, 4234, 4234, 4234, 1337, -32768, 818, 4422, 1341, 359, 324,-32768, 2130, 1343, 3681, 1334,-32768, 58,-32768, 82, 340,-32768, 1893, 1893, 1087, 1348, 352, 4422, 4422,-32768, 1893, 4422, 1349,-32768,-32768, -32768,-32768, 4422, 1350, 1177,-32768,-32768, 1092, 1093, 1095, 1096, 1097, 1382,-32768, 1127, 4464, 4485,-32768, 6141, 6167, 6193, 6219,-32768, 6661,-32768,-32768,-32768,-32768,-32768, 1125, -32768, 1321,-32768, 132,-32768, 1129, 1381,-32768, 511,-32768, 541,-32768,-32768, 231,-32768, 1384,-32768, 249, 544, 549, 1400, 113,-32768,-32768,-32768, 1402,-32768, 339, 169, 1404, -32768, 358,-32768, 1405,-32768, 547,-32768,-32768,-32768, 1148, -32768,-32768,-32768,-32768, 783, 599, 6245, 1151, 113, 550, -32768, 564, 579, 586,-32768, 1150, 6271, 1158, 1159, 1412, 69,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768, 1163,-32768, 1164, 1165, 1169, 1170,-32768,-32768, 1424, 2130, 2130, 2130, 2130, 1428, 199, 1429, 6736, 219, 1174, 1174,-32768, 1178,-32768, 4422, 4422, 59,-32768,-32768, 1176, 105,-32768,-32768, 113,-32768, 359, 359,-32768, 6661, 6661, -32768, 6661,-32768, 1431, 1431, 1431, 6661,-32768, 4234, 6661, 113,-32768, 4422, 4422, 4422, 4234,-32768,-32768, 4422, 4422, -32768,-32768,-32768,-32768, 4422,-32768, 418,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1433,-32768,-32768, -32768,-32768, 1179, 1180, 1181, 1182,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768, 2724,-32768,-32768,-32768,-32768,-32768, -32768,-32768, 4422,-32768,-32768, 4422, 1183, 1186, 1187, 1189, 1197,-32768,-32768,-32768,-32768,-32768,-32768, 1203, 1184, 1203, 2130, 1450, 1452, 1214, 1215, 1236, 1226, 1226, 1226, 6713, -32768,-32768,-32768,-32768,-32768, -1, 1224,-32768, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 1494, 4422, 1987,-32768, 1235, 6661, 3730,-32768, 342,-32768,-32768, 423, 37, 1234,-32768,-32768, -32768, 606,-32768, 608, 4506, 4527, 4548, 616, 6297, 6323, 5235, 1245,-32768, 708, 109, -12, 54, 996, 303, 307, -32768, 1427,-32768,-32768,-32768,-32768, 534, 23, 317, 76, 1249, 1251, 1254, 1256, 1257, 1260, 1263, 1267, 1270, 1513, 1274, 193, 196, 269, 1258, 1275, 1276, 1277, 1279, 1280, 1281, 1285, 1287, 1282, 1283, 1293, 1294, 1300, 1302, 1308, 1286, 1299, 1309,-32768,-32768,-32768,-32768,-32768, 52, 5265, 4569, 113, 4234, 4234, 4234, 4234, 365, 1311,-32768, 1314, 2079, 1310, 1315,-32768,-32768, 1320,-32768, 1289,-32768, 2130, 2862, 3192, 1243, 1243, 1243, 937, 937, 937, 937, 657, 657, 1226, 1226, 1226, 1226, 1226,-32768,-32768,-32768, 1317, 6736, 366, 4181,-32768, 4422, 1517,-32768,-32768, 113,-32768, -32768, 113, 4422, 4422, 4422,-32768,-32768,-32768,-32768, 1268, 82, 82, 82, 82, 78, 97, 113, 113, 1333, 423, 1525, 102,-32768,-32768, 8, 1526,-32768,-32768, 1339, 1531, 1550,-32768,-32768, 1551, 33, 1554, 423,-32768,-32768, 1556, 1557, 1559, 1340, 1092, 1092, 82, 82,-32768,-32768, 1567, 31, 41,-32768,-32768, 1572, 423, 1574,-32768,-32768, 1580, 1585, 1586, 98, 423, 423, 1595, 1596, 82, 1893,-32768, -32768,-32768, 941, 1875, 361, 47, 1600, 423, 44, 359, 1893, 359, 60, 423,-32768,-32768,-32768, 423, 1594, 113, 113, 1602, 423, 423, 423, 423, 423, 423, 423, 423, 423,-32768, 113, 4422,-32768, 4422,-32768, 4422,-32768,-32768, 82, 359, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 1605, 423, 1353, 1354, 1351, 423,-32768,-32768,-32768, 4422, 1342, 619, 637, 694, 698, 1607,-32768, 1356,-32768, 2130,-32768, 1355, 1364, 1362, -32768,-32768, 4068,-32768,-32768, 2130, 1372, 716, 6661,-32768, 1365,-32768, 4590, 4611, 4632, 37, 1625, 1626, 1627, 1636, 113, 1637, 113, 1642, 1643, 1669, 982, 1670, 1671, 113, 1672, 1674, 1676, 1235,-32768, 1677, 1679, 1680, 1681, 1682, 1683, 1686, 64, 1430, 1690, 1689, 1691, 1692, 1695, 1697, -32768,-32768, 1699,-32768,-32768, 1700, 1701, 1702, 1703, 1704, 1705, 1707, 1708, 1711, 1712, 1713,-32768, 1714, 1715, 1717, 1718,-32768, 1721, 1722, 1725, 1473,-32768,-32768,-32768,-32768, -32768,-32768,-32768, 82, 1728,-32768,-32768, 1474,-32768, 82, -32768,-32768, 1480, 1734, 1735,-32768,-32768,-32768, 1737, 1739, -32768, 1740,-32768, 1745, 1750, 1751,-32768, 1757,-32768, 1758, 1483,-32768, 1509, 1510,-32768, 1504, 1505, 1506, 1508, 1515, 1520, 1521, 1527, 1529, 1516, 4653, 646, 4674, 602, 4695, 597, 430, 1532, 1538, 1534, 1537, 1542, 1547, 1548, 1555, 1511, 1560, 1558, 1561, 1565, 1566, 1569, 1575, 1581, 1563, 63, 63,-32768, 1813, 5295, 1562, 1582, 1588, 1590, 1591, -32768, 82, 6688,-32768, 4422,-32768, 1830, 1598,-32768, 6736, 82,-32768, 113, 4422, 4422, 4422,-32768,-32768,-32768,-32768, -32768, 1592,-32768, 1597,-32768,-32768,-32768, 1599,-32768,-32768, 1604,-32768,-32768,-32768, 1853, 724,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768, 1854, 1752, 1859, 1599,-32768,-32768, -32768,-32768,-32768, 718,-32768, 725,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1609,-32768,-32768, -32768,-32768, 1612, 1861, 1865, 1866, 1876, 1871,-32768,-32768, 1873,-32768, 1874, 1877, 288,-32768,-32768, 728,-32768,-32768, -32768,-32768, 731,-32768,-32768, 1880, 1618, 1882, 113, 423, 423, 4422, 4422, 4422, 423, 113, 82, 1883, 4422, 1628, 113, 4422, 4422, 113,-32768,-32768, 4422, 1629, 113, 4422, 4422, 4422, 4422,-32768,-32768, 4422, 4422, 4422, 1630, 4422, 113,-32768,-32768, 4422, 4422, 423, 1644, 1647, 4422, 4422, 1648,-32768,-32768, 113, 1900, 113, 1893, 1893, 1893, 4422, 1893, 1906, 1907, 423, 423, 4422, 423, 423, 82, 1911, 1914,-32768,-32768,-32768,-32768, 20,-32768, 1658, 1893, 4234, 1684, 4234, 4234, 1693,-32768, 1694, 4716, 1696,-32768, 2130, 1698, 1685, 5325, 5355, 5385, 1688, 113, 113, 982, 113, -32768,-32768,-32768,-32768, 1944,-32768, 1946,-32768, 1956,-32768, 1957, 423, 1958, 1960,-32768,-32768,-32768, 1710,-32768,-32768, -32768,-32768,-32768,-32768, 1203, 1203, 1203, 82,-32768,-32768, -32768, 423,-32768, 423,-32768,-32768,-32768, 1719, 1706, 1716, 4737, 4758, 4779, 1720, 1724, 1723,-32768, 4800,-32768, 1963, 700, 1004, 1964, 4821,-32768, 1966, 1045, 1080, 1227, 1345, 4842, 1512, 1541,-32768, 1568, 1969, 1601, 1881, 1970,-32768, -32768, 1961, 2105,-32768, 368,-32768, 1727, 1726, 1729, 1738, 4863, 1741,-32768,-32768, 1742, 1743, 6349, 1736, 1753, 1744, 743,-32768, 369, 437, 1730, 1747,-32768, 4422, 1748, 754, 4422, 765, 770,-32768, 1754, 4422,-32768, 6736, 1781,-32768, -32768,-32768,-32768, 1791, 1756, 1794, 1789, 1797, 734, 1972, 1793,-32768,-32768, 1800,-32768,-32768, 1973,-32768,-32768, 1974, 1977, 2053, 2055,-32768,-32768, 2993, 2058, 1893, 4422, 1893, 4422, 4422, 423, 2060, 423, 113, 3047,-32768,-32768,-32768, -32768, 113, 3119,-32768,-32768,-32768,-32768,-32768, 113,-32768, -32768, 3304,-32768,-32768,-32768,-32768,-32768, 3358, 3412,-32768, -32768, 774, 2061, 4422, 113, 2062, 2063, 4422, 359, 359, 4422, 4422, 2064, 2065, 2066, 359, 2067, 1829, 2068, 1621, -32768, 2094,-32768,-32768, 5415, 1893, 1846, 5445, 1848, 1850, 1851, 5475,-32768, 37, 2114, 2119, 2120, 2131, 2132, 4422, 4422, 4422, 4422, 4422,-32768,-32768, 2028, 2136,-32768,-32768, 1878, 1884,-32768,-32768,-32768,-32768, 2135,-32768, 1888, 6375, 1886, 4884, 4905, 1890,-32768, 1889, 1892,-32768, 1923,-32768, 438,-32768,-32768,-32768,-32768,-32768,-32768, 4926, 451,-32768, -32768, 6401, 1933, 1934, 4947, 4968,-32768,-32768,-32768, 775, -32768, 359,-32768, 359, 1893,-32768,-32768, 1980, 2140,-32768, 1928,-32768,-32768, 1895, 4234, 4422,-32768, 1929,-32768,-32768, -32768,-32768, 2189, 2273, 2522, 2558, 2775, 2830, 2196,-32768, -32768, 1203, 1942, 2206, 2207, 4422, 4422, 4422, 4422, 2208, 113, 4422, 1953, 4422, 479, 113, 2211, 113, 2213, 2217, 2218, 4422, 4422, 2220, 113, 779,-32768,-32768, 2224, 2225, 2227, 82,-32768, 1975,-32768,-32768, 1893, 4422, 781, 5505, 4422,-32768,-32768,-32768,-32768,-32768,-32768, 1978, 1979, 1982, -32768,-32768,-32768, 6427, 6453, 6479, 4989,-32768, 1985, 5010, -32768, 6505, 2231, 2232, 4422, 113, 2234, 82,-32768,-32768, 1991,-32768, 473,-32768,-32768,-32768, 6531, 6557,-32768, 1988, 2248, 2253, 2254, 2262, 2264, 2265,-32768, 1995, 5031, 2008, -32768, 6583, 2267, 2268, 2278, 3597, 2285, 2289, 2290, 1893, 2034, 4422, 3651, 2039, 2297, 2302, 3086, 2303, 2304, 2305, 2317, 2325, 113, 2069, 2071, 2329,-32768, 2072,-32768,-32768, -32768,-32768,-32768,-32768, 4422, 2075, 2343,-32768,-32768,-32768, -32768,-32768,-32768,-32768, 2085,-32768, 6609,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768, 2098,-32768,-32768, -32768, 2351, 2100, 5535, 4422,-32768, 2299, 4422, 3705, 2099, 3890, 2355, 3944, 3998,-32768, 2357,-32768, 5052, 423, 5073, -32768,-32768,-32768,-32768, 2358, 2360,-32768, 4422, 2361, 2106, 4422, 4183,-32768,-32768, 5094,-32768, 2104,-32768, 6635,-32768, 4422, 2240,-32768, 2366, 5565, 2369,-32768,-32768, 2106, 2368, 2111,-32768, 2379, 2380,-32768 }; static const short yypgoto[] = {-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768, 280,-32768, -318,-32768, 1312,-32768,-32768, 1323, -336, -32768, -484,-32768, -406, -542, 356,-32768,-32768,-32768,-32768, 844,-32768, -616,-32768, -978,-32768, -671,-32768,-32768,-32768, -32768,-32768,-32768,-32768, 1632,-32768, 1166,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768, 1746,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1444,-32768, -32768,-32768,-32768,-32768,-32768,-32768, -1109, -710,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -1445,-32768,-32768,-32768, 1058, 874,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768, 668,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768, 1818,-32768, 1709,-32768, 2279, -32768, 1804, 2169, -320,-32768, 425, 24, -60,-32768,-32768, 1110, -512, -566, -175, -39,-32768, -3, -99, -49 }; #define YYLAST 6991 static const short yytable[] = { 28, 302, 32, 439, 4, 545, 1283, 58, 178, 179, 667, 867, 239, 239, 469, 470, 472, 499, 72, 676, 478, 1184, 792, 479, 491, 1635, 1189, 1190, 4, 686, 89, 4, 549, 690, 569, 173, 1241, 694, 541, 345, 345, 4, 4, 196, 197, 171, 1244, 121, 82, 4, 189, 195, 772, 773, 204, 210, 215, 220, 225, 230, 781, 345, 345, 4, 4, 4, 239, -2, 4, 321, 1069, 1394, 1222, 357, 1070, 1071, 240, 240, 29, 29, 877, 878, 879, 880, 4, 4, 33, 239, 613, 61, 541, 5, 6, 73, 74, 75, 762, 76, 303, 486, 497, 486, 240, 1253, 58, 58, 41, 190, 28, 11, 915, 28, 28, 28, 28, 28, 28, 231, -62, 62, 486, 236, 236, 245, 248, 486, 63, 1171, 29, 768, 240, 1676, 405, 1284, 188, 194, 486, 1636, 203, 209, 214, 219, 224, 229, 1687, 73, 74, 75, 1172, 76, 1693, 240, 1074, 64, 240, 362, 65, 1285, 998, 1702, 1000, 486, 1075, 1076, 1077, 1708, 1709, 248, 310, 606, 916, 29, 29, 495, 4, 487, 383, 487, 1065, -62, 5, 6, 73, 74, 75, 183, 76, 198, 199, 29, 1066, 5, 6, 73, 74, 75, 487, 76, 11, 175, 1001, 487, 882, 66, 883, 1254, 404, 306, 176, 11, 771, 296, 487, 1358, 83, 1255, 307, 297, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 4, 237, 1031, 487, 351, 762, 762, 762, 762, 184, 73, 74, 75, 67, 76, 4, 666, 58, 84, 1072, 29, 5, 6, 73, 74, 75, 421, 76, 73, 74, 75, 173, 76, 29, 241, 241, 205, 471, 58, 11, 422, 171, 5, 6, 73, 74, 75, 1128, 76, 912, 1423, 1637, 833, 834, 835, 836, 71, 550, 346, 346, 11, 1242, 68, 769, 122, 596, 347, 347, 58, 348, 348, 1245, 767, 402, 1291, 416, 69, 1286, 1287, 417, 346, 346, 386, 1173, 245, 1078, 438, 70, 241, 418, 1297, 348, 348, 791, 666, 245, 245, 245, 206, 757, 1131, 30, 1211, 29, 245, 1193, 31, 85, 884, 241, 191, 192, 241, 531, 452, 304, 351, 86, 73, 74, 75, 1213, 76, 4, 54, 762, 1220, 55, 56, 587, 4, 54, 1565, 1566, 55, 56, 488, 73, 74, 75, 1067, 76, 1526, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 1095, 425, 762, 808, 809, 536, 1090, 426, 1091, 87, 1096, 1567, 1097, 314, 386, 427, 1092, 180, 34, 885, 35, 500, 553, 88, 181, 1568, 315, 710, 501, 712, 713, 714, 36, 37, 38, 4, 562, 316, 73, 74, 75, 837, 76, 1926, 386, 614, 572, 544, 90, 39, 423, 576, 185, 1933, 181, 1484, 913, 580, 1144, 582, 583, 1146, 4, 584, 1145, 586, 58, 1147, 5, 6, 73, 74, 75, 4, 76, 1236, 1237, 568, 91, 5, 6, 73, 74, 75, 181, 76, 11, 905, 107, 906, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 11, 1280, 419, 4, 92, 816, 817, 1893, 762, 5, 6, 73, 74, 75, 93, 76, 719, 94, 200, 201, 293, 294, 295, 820, 821, 1353, 296, 11, 1485, 600, 95, 1989, 297, 778, 1991, 1360, 501, 1148, 96, 609, 207, 97, 4, 1149, 1993, 1994, 501, 98, 5, 6, 73, 74, 75, 1261, 76, 997, 99, 73, 74, 75, 453, 76, 4, 1569, 108, 1295, 11, 2012, 5, 6, 73, 74, 75, 1486, 76, 1894, 454, 1895, 1093, 100, 1487, 1488, 1098, 123, 101, 1130, 11, 428, 1896, 171, 171, 1038, 1668, 720, 1669, 57, 123, 171, 455, 102, 501, 1897, 57, 1489, 413, 776, 1490, 1491, 777, -65, 40, 1036, 58, 830, 831, 763, 181, 853, 501, 1898, 351, 103, 245, 120, 922, 1477, 129, 130, 131, 58, 1117, 928, 842, 843, 1182, 1195, 1281, 1713, 1729, 840, 1118, 501, 1196, 104, 1714, 1730, 850, 133, 134, 135, 136, 105, 456, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 1119, 1120, 1121, 1122, 1123, 1124, 762, 385, 386, 919, 920, 503, 386, 106, 808, 933, 762, 1478, 28, 282, 810, 542, 543, 1395, 128, 28, 547, 1492, 1732, 1843, 818, 1864, 1864, 441, 822, 1730, 1844, 1378, 124, 1689, 612, 181, 1847, 442, 832, 839, 211, 212, 844, 1848, 125, 457, 849, 480, 481, 482, 483, 216, 217, 443, 430, 82, 126, 444, 1942, 1207, 1208, 1209, 1210, 1479, 127, 1943, 484, 177, 1468, 246, 1899, 1469, 431, 1223, 763, 763, 763, 763, 221, 222, 887, 232, 432, 433, 1470, 1471, 1480, 1481, 1472, 1473, 351, 434, 249, 435, 1238, 1239, 711, 386, 250, 58, 58, 812, 813, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1460, 251, 1060, 1461, 1260, 226, 227, 252, 1061, 253, 73, 74, 75, 1125, 76, 254, 1462, 1463, 1464, 814, 815, 1062, 823, 824, 255, 847, 848, 825, 826, 858, 386, 256, 1178, 1179, 1180, 1181, 298, 1749, 1750, 1751, 1752, 1753, 1754, 859, 386, 810, 257, 1323, 258, 283, 284, 285, 286, 259, 287, 288, 289, 290, 860, 386, 291, 292, 293, 294, 295, 861, 386, 1879, 296, 1670, 1671, 1672, 1198, 1648, 297, 164, 1482, 260, 854, 261, 165, 1474, 763, 166, 1367, 1040, 386, 1041, 1042, 73, 74, 75, 356, 76, 445, 1046, 386, 1008, 1347, 386, 763, 763, 763, 763, 763, 763, 763, 763, 763, 763, 763, 763, 763, 763, 763, 763, 1348, 386, 763, 262, 900, 901, 902, 903, 459, 1465, 904, 1037, 351, 283, 284, 285, 286, 263, 287, 288, 289, 290, 264, 436, 291, 292, 293, 294, 295, 1618, 1619, 1620, 296, 1622, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1129, 265, 291, 292, 293, 294, 295, 299, 1639, 460, 296, 1428, 266, 447, 1349, 386, 297, 1431, 1350, 386, 267, 291, 292, 293, 294, 295, 1127, 1539, 1063, 296, 1983, 77, 78, 79, 80, 297, 1362, 386, 1548, 181, 129, 130, 4, 1542, 1543, 1550, 181, 1547, 1571, 181, 448, 1573, 181, 1549, 1755, 1551, 301, 449, 268, 461, 269, 462, 763, 1727, 1728, 270, 1690, 138, 139, 140, 141, 142, 305, 762, 1737, 386, 1294, 1263, 1296, 1264, 1265, 1266, 1657, 308, 463, 1739, 386, 1572, 309, 1524, 1740, 386, 1574, 1785, 1786, 1854, 1855, 271, 1531, 1911, 1912, 1920, 386, 245, 245, 245, 245, 1695, 1324, 785, 786, 272, 1218, 273, 274, 275, 313, 245, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 171, 1274, 1275, 328, 1231, 322, 341, 343, 353, 464, 358, 359, 171, 245, 245, 406, 409, 1696, 410, 414, 466, 473, 1080, 1248, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1256, 1257, 474, 475, 245, 476, 477, 492, 504, 533, 496, 1769, 505, 1771, 1290, 1293, 58, 508, 58, 1299, 1300, 1880, 529, 535, 1301, 546, 450, 551, 552, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1586, 554, 555, 556, 558, 559, 560, 561, 563, 245, 58, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1806, 1340, 564, 565, 566, 1344, 1811, 331, 332, 333, 334, 335, 336, 337, 338, 339, 129, 130, 4, 763, 898, 899, 900, 901, 902, 903, 567, 1630, 904, 763, 168, 174, 570, 571, 575, 573, 574, 579, 577, 351, 581, 588, 1276, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 233, 234, 1697, 585, 601, 593, 247, 1858, 283, 284, 285, 286, 595, 287, 288, 289, 290, 597, 1673, 291, 292, 293, 294, 295, 598, 599, 602, 296, 603, 1088, 615, 604, 605, 297, 617, 645, 648, 660, 557, 245, 653, 655, 276, 277, 278, 245, 657, 658, 659, 283, 284, 285, 286, 661, 287, 288, 289, 290, 662, 663, 291, 292, 293, 294, 295, 665, 668, 670, 296, 1918, 672, 673, 675, 677, 297, 682, 683, 684, 685, 693, 687, 691, 695, 594, 283, 284, 285, 286, 697, 287, 288, 289, 290, 698, 699, 291, 292, 293, 294, 295, 701, 702, 703, 296, 1923, 704, 1514, 1514, 708, 297, 766, 709, 715, 1640, 718, 1642, 1643, 245, 764, 774, 1698, 775, 783, 788, 791, 793, 245, 794, 795, 796, 360, 361, 1965, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 797, 798, 806, 811, 805, 407, 819, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 827, 1818, 829, 681, 841, 846, 851, 403, 856, 862, 864, 865, 866, 408, 868, 870, 871, 168, 164, 415, 872, 873, 876, 165, 881, 907, 166, 886, 914, -675, 921, 467, 468, 941, 789, 999, 943, 944, 945, 946, 1579, 1580, 992, 993, 994, 1584, 995, 245, 1002, 493, 1003, 171, 171, 171, 996, 171, 283, 284, 285, 286, 757, 287, 288, 289, 290, 1004, 1005, 291, 292, 293, 294, 295, 1006, 171, 904, 296, 1609, 894, 895, 896, 897, 297, 1009, 898, 899, 900, 901, 902, 903, 530, 1027, 904, 1033, 1039, 1625, 1626, 1050, 1628, 1629, 245, 1133, 1100, 1134, 1101, 1102, 1135, 1103, 1136, 1137, 538, 539, 1138, 1700, 1142, 1139, 1150, 1104, 1200, 1140, 828, 763, 1141, 1206, 1219, 1224, 1143, 1151, 1152, 1153, 1226, 1154, 1155, 1156, 1105, 1106, 1107, 1157, 1916, 1158, 1159, 1160, 1701, 1664, 1166, 1161, 1162, 857, 1192, 1227, 1228, 1108, 1163, 915, 1164, 1232, 1233, 1167, 1234, 245, 1165, 1168, 1187, 1674, 1183, 1675, 1240, 1185, 1188, 1703, 1194, 1247, 1191, 1249, 1940, 283, 284, 285, 286, 1250, 287, 288, 289, 290, 1251, 1252, 291, 292, 293, 294, 295, 1217, 1258, 1259, 296, 1302, 610, 1225, 1235, 1289, 297, 1346, 1705, 1305, 1339, 1341, 1342, 1109, 1351, 1343, 646, 647, 918, 1355, 1793, 1794, 1352, 1356, 129, 130, 131, 1800, 1357, 649, 1361, 1363, 1368, 1369, 1370, 923, 650, 651, 652, 171, 1869, 171, 654, 1371, 1373, 133, 134, 135, 136, 1375, 1376, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 1377, 1379, 1380, 1382, 1774, 1383, 1776, 1384, 1387, 1110, 1388, 1389, 1390, 1391, 1392, 171, 1111, 1393, 1396, 1398, 1399, 171, 1400, 1401, 706, 707, 1402, 1856, 1403, 1857, 1405, 1407, 1408, 1409, 1410, 1411, 1412, 717, 1413, 1414, 58, 58, 1415, 1416, 1417, 1419, 1420, 58, 1421, 1422, 1424, 1425, 168, 168, 1426, 1427, 1430, 779, 780, 1429, 168, 782, 1432, 1433, 1434, 351, 1446, 787, 1436, 790, 1437, 1439, 283, 284, 285, 286, 1440, 287, 288, 289, 290, 1441, 1442, 291, 292, 293, 294, 295, 1444, 1445, 171, 296, 1447, 1448, 1449, 1450, 1451, 297, 1452, 1458, 1502, 283, 284, 285, 286, 1453, 287, 288, 289, 290, 1454, 1455, 291, 292, 293, 294, 295, 1456, 1132, 1457, 296, 1495, 1494, 58, 1496, 58, 297, 1497, 283, 284, 285, 286, 1498, 287, 288, 289, 290, 1499, 1500, 291, 292, 293, 294, 295, 1517, 1501, 1511, 296, 1504, 1503, 1519, 1505, 171, 297, 1804, 1506, 1507, 1528, 1805, 1508, 1177, 283, 284, 285, 286, 1509, 287, 288, 289, 290, 1520, 1510, 291, 292, 293, 294, 295, 1521, 1522, 1523, 296, 1529, 1537, 245, 1541, 1544, 297, 1538, 1545, 181, 1546, 1552, 1555, 164, 1540, 1554, 1556, 1557, 165, 910, 911, 166, 1559, 1558, 1561, 1563, 1576, 1201, 1564, 167, 1202, 1575, 1706, 1577, 1587, 171, 1589, 1595, 1604, 245, 129, 130, 131, 1212, 1214, 1215, 1216, 925, 926, 927, 1221, 1616, 1610, 929, 930, 1611, 1614, 1623, 1624, 931, 1631, 133, 134, 135, 136, 1632, 1638, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 1641, 1660, 1650, 1661, 1644, 1645, 1654, 1647, 1263, 1649, 1264, 1265, 1266, 1662, 1663, 990, 1802, 1665, 991, 1666, 1710, 1667, 1688, 1691, 1678, 1694, 1303, 1304, 1704, 1707, 1677, 1757, 1760, 1763, 1679, 1684, 1764, 1716, 1683, 1315, 1717, 1685, 129, 130, 721, 1715, 1733, 1724, 2010, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1718, 1274, 1275, 1720, 1721, 1722, 1726, 1734, 1725, 1741, 1736, 1745, 1028, 138, 139, 140, 141, 142, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 1743, 746, 747, 129, 130, 4, 1744, 1746, 1747, 1372, 1748, 1374, 1758, 1759, 1765, 1859, 1766, 1860, 1381, 1768, 1861, 1775, 1787, 1790, 1791, 1797, 1798, 1799, 1801, 1803, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 1807, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 748, 1862, 1812, 1711, 1814, 1815, 1816, 749, 283, 284, 285, 286, 1819, 287, 288, 289, 290, 1820, 1821, 291, 292, 293, 294, 295, 129, 130, 721, 296, 1823, 1822, 1829, 1279, 164, 297, 1830, 1831, 1199, 165, 1834, 1840, 166, 1832, 1833, 1836, 1203, 1204, 1205, 1839, 167, 1841, 1868, 138, 139, 140, 141, 142, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 1842, 746, 747, 1850, 1851, 1867, 1871, 1872, 283, 284, 285, 286, 1878, 287, 288, 289, 290, 1881, 1532, 291, 292, 293, 294, 295, 1882, 1883, 1888, 296, 1891, 1902, 168, 1904, 1859, 297, 1860, 1905, 1906, 1861, 1909, 750, 1913, 1914, 168, 1915, 1917, 751, 752, 1935, 1936, 1924, 1939, 753, 1925, 666, 754, 1931, 1863, 1029, 1030, 755, 756, 1941, 757, 748, 1946, 1316, 1947, 1318, 1948, 1320, 749, 1954, 1949, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1950, 1862, 1951, 1952, 1956, 1958, 1959, 283, 284, 285, 286, 1873, 287, 288, 289, 290, 1960, 1345, 291, 292, 293, 294, 295, 1962, 1578, 164, 296, 1963, 1964, 1966, 165, 1585, 297, 166, 1969, 1970, 1590, 506, 407, 1593, 1971, 1973, 1974, 1975, 1596, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 1976, 1606, 898, 899, 900, 901, 902, 903, 1977, 1979, 904, 1980, 1981, 1982, 1615, 1985, 1617, 283, 284, 285, 286, 1186, 287, 288, 289, 290, 1986, 1988, 291, 292, 293, 294, 295, 1992, 1995, 1996, 296, 1999, 2004, 2002, 2007, 2013, 297, 2014, 2016, 2023, 2017, 750, 2026, 2027, 2029, 2031, 2032, 751, 752, 2034, 2035, 1655, 1656, 753, 1658, 2030, 754, 1229, 1114, 1634, 1385, 755, 756, 909, 757, 129, 130, 412, 132, 1230, 1515, 55, 1809, 700, 238, 1866, 716, 344, 0, 807, 0, 0, 0, 0, 852, 0, 133, 134, 135, 136, 137, 0, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, 132, 240, 0, 55, 0, 1527, 0, 0, 0, 0, 0, 0, 0, 0, 1533, 1534, 1535, 0, 133, 134, 135, 136, 137, 0, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 1874, 1777, 0, 0, 0, 297, 0, 1779, 0, 0, 0, 0, 0, 0, 1781, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 1789, 0, 0, 1581, 1582, 1583, 1875, 0, 0, 0, 1588, 0, 0, 1591, 1592, 0, 0, 0, 1594, 0, 0, 1597, 1598, 1599, 1600, 0, 0, 1601, 1602, 1603, 0, 1605, 0, 0, 0, 1607, 1608, 0, 0, 0, 1612, 1613, 0, 0, 0, 0, 0, 44, 168, 168, 168, 1621, 168, 45, 0, 0, 0, 1627, 0, 0, 0, 0, 0, 0, 0, 163, 46, 0, 47, 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 164, 0, 0, 49, 0, 165, 0, 0, 166, 0, 0, 0, 0, 241, 0, 50, 167, 0, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 51, 296, 0, 0, 0, 0, 0, 297, 0, 1889, 163, 0, 507, 0, 1901, 0, 1903, 0, 0, 0, 0, 0, 0, 1910, 0, 0, 164, 0, 0, 0, 0, 165, 0, 0, 166, 285, 286, 0, 287, 288, 289, 290, 167, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 948, 0, 52, 0, 53, 297, 0, 0, 73, 74, 949, 1938, 76, 0, 0, 0, 0, 0, 0, 1735, 0, 0, 1738, 0, 0, 0, 0, 1742, 0, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 1876, 297, 0, 0, 0, 1978, 168, 1770, 168, 1772, 1773, 0, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 1788, 0, 0, 0, 1792, 0, 0, 1795, 1796, 0, 0, 0, 0, 1877, 0, 0, 168, 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1824, 1825, 1826, 1827, 1828, 0, 950, 0, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 0, 0, 0, 963, 0, 0, 964, 0, 0, 965, 0, 0, 966, 0, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 0, 0, 0, 983, 0, 168, 0, 0, 984, 0, 0, 985, 0, 0, 0, 0, 1870, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 1884, 1885, 1886, 1887, 0, 297, 1890, 0, 1892, 0, 0, 0, 0, 0, 0, 0, 1907, 1908, 0, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 168, 1919, 0, 296, 1922, 0, 0, 0, 0, 297, 0, 0, 986, 0, 0, 0, 0, 0, 0, 0, 0, 948, 0, 0, 0, 0, 0, 0, 1937, 73, 74, 949, 0, 76, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 168, 0, 1967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 948, 0, 0, 0, 0, 0, 0, 0, 73, 74, 949, 0, 76, 1984, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 1972, 0, 1998, 0, 0, 2000, 890, 891, 892, 893, 894, 895, 896, 897, 0, 0, 898, 899, 900, 901, 902, 903, 591, 0, 904, 2015, 0, 0, 2019, 0, 0, 948, 0, 0, 0, 0, 0, 0, 2025, 73, 74, 949, 950, 76, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 0, 0, 0, 963, 0, 0, 964, 0, 329, 965, 0, 0, 966, 0, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 0, 0, 0, 983, 0, 0, 0, 0, 984, 0, 950, 985, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 0, 0, 0, 963, 0, 0, 964, 0, 0, 965, 0, 0, 966, 0, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 0, 0, 0, 983, 0, 0, 0, 0, 984, 0, 0, 985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1767, 0, 0, 950, 0, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 0, 0, 0, 963, 0, 0, 964, 0, 0, 965, 0, 0, 966, 0, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 0, 0, 0, 983, 948, 0, 0, 1778, 984, 0, 0, 985, 73, 74, 949, 0, 76, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 948, 592, 0, 0, 0, 297, 0, 0, 73, 74, 949, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 1780, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 532, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 0, 948, 0, 0, 0, 0, 0, 0, 0, 73, 74, 949, 0, 76, 891, 892, 893, 894, 895, 896, 897, 0, 0, 898, 899, 900, 901, 902, 903, 590, 950, 904, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 0, 0, 0, 963, 0, 0, 964, 0, 0, 965, 0, 0, 966, 0, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 0, 0, 0, 983, 0, 0, 0, 0, 984, 0, 950, 985, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 0, 0, 0, 963, 0, 0, 964, 0, 0, 965, 0, 0, 966, 0, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 0, 0, 0, 983, 0, 0, 0, 0, 984, 0, 950, 985, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 0, 1782, 0, 963, 0, 0, 964, 0, 0, 965, 0, 0, 966, 0, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 0, 0, 0, 983, 948, 0, 0, 0, 984, 0, 0, 985, 73, 74, 949, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 1783, 0, 0, 0, 0, 0, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 948, 0, 0, 0, 0, 0, 0, 0, 73, 74, 949, 0, 76, 0, 0, 0, 0, 283, 284, 285, 286, 1784, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 765, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 948, 0, 0, 0, 0, 0, 0, 0, 73, 74, 949, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1035, 950, 0, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 0, 0, 0, 963, 0, 0, 964, 0, 0, 965, 0, 0, 966, 0, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 0, 0, 0, 983, 0, 0, 0, 0, 984, 0, 950, 985, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 0, 0, 0, 963, 0, 0, 964, 0, 0, 965, 0, 0, 966, 0, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 0, 0, 0, 983, 0, 0, 0, 0, 984, 0, 950, 985, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 0, 1961, 0, 963, 0, 0, 964, 0, 0, 965, 0, 0, 966, 0, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 0, 0, 0, 983, 948, 0, 0, 0, 984, 0, 0, 985, 73, 74, 949, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 1968, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 0, 948, 0, 0, 0, 0, 0, 0, 0, 73, 74, 949, 0, 76, 0, 0, 0, 0, 283, 284, 285, 286, 2001, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 948, 0, 0, 0, 0, 0, 0, 0, 73, 74, 949, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 950, 0, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 0, 0, 0, 963, 0, 0, 964, 0, 0, 965, 0, 0, 966, 0, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 1359, 0, 0, 983, 0, 0, 0, 0, 984, 0, 950, 985, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 0, 0, 0, 963, 0, 0, 964, 0, 0, 965, 0, 0, 966, 0, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 0, 0, 0, 983, 0, 0, 0, 0, 984, 0, 950, 985, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 0, 2003, 0, 963, 0, 0, 964, 0, 0, 965, 0, 0, 966, 0, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 129, 130, 131, 983, 948, 0, 0, 0, 984, 0, 0, 985, 73, 74, 949, 0, 76, 0, 0, 0, 0, 133, 134, 135, 136, 2005, 0, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 0, 129, 130, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1197, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 136, 0, 2006, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 0, 0, 898, 899, 900, 901, 902, 903, 0, 0, 904, 0, 950, 0, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 0, 0, 0, 963, 0, 0, 964, 0, 0, 965, 0, 0, 966, 0, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 0, 0, 0, 983, 129, 130, 4, 537, 984, 0, 0, 985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 129, 130, 4, 0, 164, 0, 0, 0, 0, 165, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2020, 0, 0, 0, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 4, 0, 0, 0, 0, 164, 5, 6, 0, 0, 165, 0, 0, 166, 7, 8, 9, 10, 0, 618, 283, 284, 285, 286, 11, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 519, 0, 291, 292, 293, 294, 295, 12, 0, 0, 296, 0, 0, 13, 0, 0, 297, 0, 0, 0, 0, 526, 0, 0, 0, 0, 14, 0, 15, 0, 619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 17, 0, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 18, 291, 292, 293, 294, 295, 620, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 527, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 621, 0, 0, 0, 165, 0, 0, 166, 0, 0, 0, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 0, 0, 0, 0, 0, 0, 20, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, 165, 0, 0, 166, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 528, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 799, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 800, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1043, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1044, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1045, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1176, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1364, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1365, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1366, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1459, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1467, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1476, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1646, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1680, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1681, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1682, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1686, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1692, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1699, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1719, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1837, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1838, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1846, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1852, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1853, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1930, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1932, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 1955, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 2008, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 2011, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 283, 284, 285, 286, 297, 287, 288, 289, 290, 2021, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 300, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 355, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 540, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 656, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 1049, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 1175, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 1518, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 1651, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 1652, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 1653, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 1810, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 1813, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 1817, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 1921, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 1997, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 0, 0, 0, 2028, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 330, 0, 0, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 384, 0, 0, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 509, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 510, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 511, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 512, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 513, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 514, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 515, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 516, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 517, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 518, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 520, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 521, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 522, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 523, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 524, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 525, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 534, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 548, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 611, 0, 0, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 801, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 802, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 803, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 804, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 855, 0, 0, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 863, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 1047, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 1048, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 1723, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 1835, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 1849, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 1927, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 1928, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 1929, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 1934, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 1944, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 1945, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 1957, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 1990, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 2024, 0, 297, 283, 284, 285, 286, 0, 287, 288, 289, 290, 0, 0, 291, 292, 293, 294, 295, 0, 0, 0, 296, 0, 0, 0, 0, 0, 297, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 0, 0, 898, 899, 900, 901, 902, 903, 0, 0, 904, 0, 0, 0, 1525, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 0, 0, 898, 899, 900, 901, 902, 903, 0, 0, 904, 0, 1007, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 0, 0, 898, 899, 900, 901, 902, 903, 0, 0, 904 }; static const short yycheck[] = { 3, 176, 5, 321, 5, 411, 1115, 10, 107, 108, 552, 721, 5, 5, 332, 333, 334, 353, 21, 561, 340, 999, 638, 341, 344, 5, 1004, 1005, 5, 571, 33, 5, 5, 575, 440, 84, 5, 579, 5, 3, 3, 5, 5, 264, 265, 84, 5, 5, 24, 5, 110, 111, 618, 619, 114, 115, 116, 117, 118, 119, 626, 3, 3, 5, 5, 5, 5, 0, 5, 258, 82, 7, 64, 248, 86, 87, 69, 69, 268, 268, 751, 752, 753, 754, 5, 5, 256, 5, 494, 258, 5, 11, 12, 13, 14, 15, 608, 17, 7, 23, 64, 23, 69, 5, 107, 108, 7, 110, 111, 29, 5, 114, 115, 116, 117, 118, 119, 120, 258, 264, 23, 124, 125, 126, 264, 23, 264, 75, 268, 613, 69, 1576, 307, 86, 110, 111, 23, 117, 114, 115, 116, 117, 118, 119, 1589, 13, 14, 15, 96, 17, 1595, 69, 98, 264, 69, 254, 264, 110, 868, 1604, 870, 23, 108, 109, 110, 1610, 1611, 264, 264, 489, 65, 268, 268, 348, 5, 99, 275, 99, 69, 258, 11, 12, 13, 14, 15, 5, 17, 264, 265, 268, 81, 11, 12, 13, 14, 15, 99, 17, 29, 257, 871, 99, 3, 264, 5, 107, 305, 257, 266, 29, 616, 255, 99, 1191, 268, 117, 266, 261, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 5, 6, 907, 99, 241, 751, 752, 753, 754, 63, 13, 14, 15, 264, 17, 5, 264, 254, 234, 265, 268, 11, 12, 13, 14, 15, 82, 17, 13, 14, 15, 314, 17, 268, 261, 261, 5, 264, 275, 29, 96, 314, 11, 12, 13, 14, 15, 258, 17, 767, 1262, 265, 117, 118, 119, 120, 264, 264, 256, 256, 29, 264, 264, 615, 256, 474, 264, 264, 305, 267, 267, 264, 248, 257, 264, 82, 264, 264, 265, 86, 256, 256, 266, 265, 321, 265, 259, 264, 261, 96, 264, 267, 267, 264, 264, 332, 333, 334, 67, 264, 258, 256, 258, 268, 341, 1010, 261, 264, 143, 261, 264, 265, 261, 386, 324, 258, 353, 6, 13, 14, 15, 258, 17, 5, 6, 871, 258, 9, 10, 462, 5, 6, 78, 79, 9, 10, 232, 13, 14, 15, 265, 17, 1354, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 86, 82, 907, 264, 265, 257, 96, 88, 98, 7, 96, 116, 98, 234, 266, 96, 106, 259, 5, 213, 7, 259, 418, 7, 266, 130, 247, 595, 266, 597, 598, 599, 19, 20, 21, 5, 432, 258, 13, 14, 15, 265, 17, 1881, 266, 267, 442, 259, 7, 36, 265, 447, 265, 1891, 266, 18, 769, 453, 258, 455, 456, 258, 5, 459, 264, 461, 462, 264, 11, 12, 13, 14, 15, 5, 17, 1084, 1085, 259, 7, 11, 12, 13, 14, 15, 266, 17, 29, 261, 258, 263, 122, 123, 124, 125, 126, 127, 128, 29, 130, 265, 5, 7, 264, 265, 18, 1010, 11, 12, 13, 14, 15, 7, 17, 605, 7, 264, 265, 249, 250, 251, 264, 265, 1186, 255, 29, 88, 259, 7, 1966, 261, 622, 1969, 1196, 266, 258, 7, 259, 265, 7, 5, 264, 1979, 1980, 266, 7, 11, 12, 13, 14, 15, 1109, 17, 865, 7, 13, 14, 15, 96, 17, 5, 265, 256, 1121, 29, 2002, 11, 12, 13, 14, 15, 133, 17, 86, 112, 88, 265, 7, 140, 141, 265, 256, 7, 258, 29, 265, 99, 618, 619, 917, 1560, 259, 1562, 233, 256, 626, 134, 7, 266, 112, 233, 163, 314, 243, 166, 167, 246, 259, 194, 259, 605, 264, 265, 608, 266, 8, 266, 130, 613, 7, 615, 191, 789, 18, 3, 4, 5, 622, 86, 796, 264, 265, 259, 259, 265, 259, 259, 689, 96, 266, 266, 7, 266, 266, 696, 24, 25, 26, 27, 7, 188, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 134, 135, 136, 137, 138, 139, 1186, 265, 266, 776, 777, 265, 266, 7, 264, 265, 1196, 88, 689, 8, 664, 409, 410, 1233, 264, 696, 414, 265, 259, 259, 674, 1808, 1809, 86, 678, 266, 266, 1217, 258, 7, 265, 266, 259, 96, 688, 689, 264, 265, 692, 266, 258, 265, 696, 247, 248, 249, 250, 264, 265, 112, 68, 705, 258, 116, 259, 1051, 1052, 1053, 1054, 140, 258, 266, 266, 257, 140, 6, 265, 143, 86, 1065, 751, 752, 753, 754, 264, 265, 757, 130, 96, 97, 156, 157, 163, 164, 160, 161, 767, 105, 7, 107, 1086, 1087, 265, 266, 258, 776, 777, 264, 265, 69, 70, 71, 72, 73, 74, 75, 76, 77, 140, 258, 80, 143, 1108, 264, 265, 258, 86, 258, 13, 14, 15, 265, 17, 258, 156, 157, 158, 264, 265, 99, 264, 265, 258, 264, 265, 264, 265, 265, 266, 258, 993, 994, 995, 996, 7, 89, 90, 91, 92, 93, 94, 265, 266, 807, 258, 1151, 258, 236, 237, 238, 239, 258, 241, 242, 243, 244, 265, 266, 247, 248, 249, 250, 251, 265, 266, 1831, 255, 1565, 1566, 1567, 1033, 1530, 261, 248, 265, 258, 265, 258, 253, 265, 871, 256, 1206, 265, 266, 265, 266, 13, 14, 15, 265, 17, 265, 265, 266, 886, 265, 266, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 265, 266, 907, 258, 249, 250, 251, 252, 96, 265, 255, 916, 917, 236, 237, 238, 239, 258, 241, 242, 243, 244, 258, 265, 247, 248, 249, 250, 251, 1497, 1498, 1499, 255, 1501, 236, 237, 238, 239, 261, 241, 242, 243, 244, 948, 258, 247, 248, 249, 250, 251, 7, 1519, 140, 255, 1274, 258, 96, 265, 266, 261, 1280, 265, 266, 258, 247, 248, 249, 250, 251, 947, 1378, 265, 255, 1953, 193, 194, 195, 196, 261, 265, 266, 265, 266, 3, 4, 5, 264, 265, 265, 266, 1398, 265, 266, 133, 265, 266, 1404, 265, 1406, 7, 140, 258, 190, 258, 192, 1010, 265, 266, 258, 7, 30, 31, 32, 33, 34, 266, 1530, 265, 266, 1120, 81, 1122, 83, 84, 85, 1539, 7, 215, 265, 266, 1438, 5, 1352, 265, 266, 1443, 264, 265, 265, 266, 258, 1361, 265, 266, 265, 266, 1051, 1052, 1053, 1054, 7, 1152, 629, 630, 258, 1060, 258, 258, 258, 258, 1065, 122, 123, 124, 125, 126, 127, 128, 1109, 130, 131, 264, 1077, 258, 258, 266, 258, 265, 5, 5, 1121, 1086, 1087, 234, 234, 7, 234, 234, 264, 264, 96, 1096, 98, 99, 100, 101, 102, 103, 104, 1104, 1105, 264, 264, 1108, 264, 264, 8, 259, 7, 266, 1678, 266, 1680, 1118, 1119, 1120, 259, 1122, 1123, 1124, 1832, 259, 259, 1128, 7, 265, 5, 5, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1457, 264, 5, 264, 5, 264, 5, 5, 264, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1730, 1168, 264, 264, 234, 1172, 1736, 199, 200, 201, 202, 203, 204, 205, 206, 207, 3, 4, 5, 1186, 247, 248, 249, 250, 251, 252, 259, 1509, 255, 1196, 84, 85, 5, 5, 5, 264, 264, 5, 264, 1206, 264, 5, 265, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 122, 123, 7, 264, 259, 208, 128, 1805, 236, 237, 238, 239, 264, 241, 242, 243, 244, 264, 1568, 247, 248, 249, 250, 251, 264, 264, 5, 255, 258, 265, 130, 258, 258, 261, 7, 5, 7, 5, 426, 1274, 7, 7, 164, 165, 166, 1280, 7, 7, 7, 236, 237, 238, 239, 7, 241, 242, 243, 244, 234, 264, 247, 248, 249, 250, 251, 7, 7, 7, 255, 1867, 7, 7, 7, 7, 261, 234, 7, 5, 7, 264, 7, 7, 7, 471, 236, 237, 238, 239, 7, 241, 242, 243, 244, 7, 7, 247, 248, 249, 250, 251, 7, 7, 7, 255, 1878, 265, 1341, 1342, 5, 261, 8, 266, 7, 1520, 5, 1522, 1523, 1352, 7, 264, 7, 5, 5, 5, 264, 264, 1361, 264, 264, 264, 252, 253, 1930, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 3, 259, 66, 7, 264, 261, 7, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 7, 1744, 7, 566, 7, 7, 265, 304, 264, 266, 259, 259, 7, 310, 258, 258, 258, 314, 248, 316, 258, 258, 5, 253, 3, 258, 256, 5, 259, 258, 6, 328, 329, 7, 264, 258, 264, 264, 264, 264, 1450, 1451, 266, 264, 264, 1455, 264, 1457, 5, 346, 5, 1497, 1498, 1499, 264, 1501, 236, 237, 238, 239, 264, 241, 242, 243, 244, 258, 258, 247, 248, 249, 250, 251, 243, 1519, 255, 255, 1486, 241, 242, 243, 244, 261, 265, 247, 248, 249, 250, 251, 252, 386, 3, 255, 264, 266, 1504, 1505, 258, 1507, 1508, 1509, 258, 81, 258, 83, 84, 258, 86, 258, 258, 406, 407, 258, 7, 7, 258, 264, 96, 7, 258, 682, 1530, 258, 261, 5, 5, 258, 258, 258, 258, 5, 258, 258, 258, 113, 114, 115, 258, 1862, 258, 264, 264, 7, 1552, 264, 258, 258, 709, 265, 5, 5, 130, 258, 5, 258, 5, 5, 264, 5, 1568, 258, 258, 258, 1572, 259, 1574, 5, 259, 259, 7, 259, 5, 258, 5, 1898, 236, 237, 238, 239, 5, 241, 242, 243, 244, 5, 5, 247, 248, 249, 250, 251, 264, 3, 3, 255, 7, 492, 264, 264, 5, 261, 265, 7, 7, 5, 258, 258, 186, 7, 264, 506, 507, 774, 264, 1719, 1720, 266, 259, 3, 4, 5, 1726, 266, 519, 258, 266, 7, 7, 7, 791, 526, 527, 528, 1678, 1815, 1680, 532, 7, 7, 24, 25, 26, 27, 7, 7, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 7, 7, 7, 7, 1683, 7, 1685, 7, 7, 258, 7, 7, 7, 7, 7, 1730, 265, 7, 264, 5, 7, 1736, 7, 7, 590, 591, 7, 1802, 7, 1804, 7, 7, 7, 7, 7, 7, 7, 603, 7, 7, 1719, 1720, 7, 7, 7, 7, 7, 1726, 7, 7, 5, 5, 618, 619, 5, 258, 258, 623, 624, 7, 626, 627, 258, 5, 5, 1744, 259, 633, 7, 635, 7, 7, 236, 237, 238, 239, 7, 241, 242, 243, 244, 7, 7, 247, 248, 249, 250, 251, 7, 7, 1805, 255, 259, 259, 266, 266, 266, 261, 266, 259, 265, 236, 237, 238, 239, 266, 241, 242, 243, 244, 266, 266, 247, 248, 249, 250, 251, 266, 950, 266, 255, 259, 266, 1802, 266, 1804, 261, 266, 236, 237, 238, 239, 266, 241, 242, 243, 244, 266, 266, 247, 248, 249, 250, 251, 7, 266, 259, 255, 266, 265, 264, 266, 1867, 261, 209, 266, 266, 3, 213, 266, 992, 236, 237, 238, 239, 266, 241, 242, 243, 244, 264, 266, 247, 248, 249, 250, 251, 265, 264, 264, 255, 259, 266, 1862, 7, 7, 261, 266, 112, 266, 7, 258, 7, 248, 266, 259, 7, 7, 253, 765, 766, 256, 7, 3, 7, 7, 264, 1039, 7, 264, 1042, 7, 7, 7, 7, 1930, 264, 264, 264, 1898, 3, 4, 5, 1055, 1056, 1057, 1058, 793, 794, 795, 1062, 7, 264, 799, 800, 264, 264, 7, 7, 805, 5, 24, 25, 26, 27, 7, 264, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 264, 5, 265, 5, 259, 259, 266, 259, 81, 259, 83, 84, 85, 5, 5, 853, 135, 7, 856, 7, 7, 259, 7, 7, 266, 7, 1130, 1131, 7, 7, 259, 7, 7, 7, 266, 259, 7, 259, 266, 1143, 259, 266, 3, 4, 5, 266, 264, 259, 1999, 122, 123, 124, 125, 126, 127, 128, 266, 130, 131, 266, 266, 266, 266, 264, 259, 259, 266, 259, 906, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 265, 60, 61, 3, 4, 5, 261, 259, 265, 1211, 259, 1213, 265, 259, 7, 81, 7, 83, 1220, 7, 86, 7, 7, 7, 7, 7, 7, 7, 7, 7, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 7, 122, 123, 124, 125, 126, 127, 128, 122, 130, 265, 7, 265, 264, 264, 129, 236, 237, 238, 239, 7, 241, 242, 243, 244, 7, 7, 247, 248, 249, 250, 251, 3, 4, 5, 255, 5, 7, 111, 265, 248, 261, 7, 266, 1035, 253, 259, 259, 256, 266, 16, 266, 1043, 1044, 1045, 266, 264, 266, 264, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 266, 60, 61, 259, 259, 266, 266, 7, 236, 237, 238, 239, 5, 241, 242, 243, 244, 264, 1363, 247, 248, 249, 250, 251, 7, 7, 7, 255, 264, 7, 1109, 7, 81, 261, 83, 7, 7, 86, 7, 241, 5, 5, 1121, 5, 258, 247, 248, 5, 5, 259, 5, 253, 259, 264, 256, 259, 265, 259, 260, 261, 262, 259, 264, 122, 265, 1144, 7, 1146, 4, 1148, 129, 265, 7, 122, 123, 124, 125, 126, 127, 128, 7, 130, 7, 7, 265, 7, 7, 236, 237, 238, 239, 7, 241, 242, 243, 244, 7, 1176, 247, 248, 249, 250, 251, 7, 1449, 248, 255, 7, 7, 264, 253, 1456, 261, 256, 264, 7, 1461, 266, 261, 1464, 7, 7, 7, 7, 1469, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 7, 1481, 247, 248, 249, 250, 251, 252, 7, 264, 255, 264, 7, 265, 1494, 264, 1496, 236, 237, 238, 239, 266, 241, 242, 243, 244, 7, 266, 247, 248, 249, 250, 251, 259, 7, 259, 255, 62, 7, 264, 7, 7, 261, 7, 7, 265, 264, 241, 132, 7, 5, 7, 265, 247, 248, 0, 0, 1537, 1538, 253, 1540, 2029, 256, 1075, 944, 1515, 1224, 261, 262, 761, 264, 3, 4, 5, 6, 1076, 1342, 9, 1734, 585, 125, 265, 602, 238, -1, 663, -1, -1, -1, -1, 705, -1, 24, 25, 26, 27, 28, -1, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 69, -1, 9, -1, 1355, -1, -1, -1, -1, -1, -1, -1, -1, 1364, 1365, 1366, -1, 24, 25, 26, 27, 28, -1, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, 7, 1686, -1, -1, -1, 261, -1, 1692, -1, -1, -1, -1, -1, -1, 1699, -1, -1, -1, 3, -1, -1, -1, 7, -1, -1, -1, -1, -1, -1, -1, 1715, -1, -1, 1452, 1453, 1454, 7, -1, -1, -1, 1459, -1, -1, 1462, 1463, -1, -1, -1, 1467, -1, -1, 1470, 1471, 1472, 1473, -1, -1, 1476, 1477, 1478, -1, 1480, -1, -1, -1, 1484, 1485, -1, -1, -1, 1489, 1490, -1, -1, -1, -1, -1, 62, 1497, 1498, 1499, 1500, 1501, 68, -1, -1, -1, 1506, -1, -1, -1, -1, -1, -1, -1, 232, 81, -1, 83, -1, 1519, -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, 248, -1, -1, 99, -1, 253, -1, -1, 256, -1, -1, -1, -1, 261, -1, 111, 264, -1, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, 132, 255, -1, -1, -1, -1, -1, 261, -1, 1841, 232, -1, 266, -1, 1846, -1, 1848, -1, -1, -1, -1, -1, -1, 1855, -1, -1, 248, -1, -1, -1, -1, 253, -1, -1, 256, 238, 239, -1, 241, 242, 243, 244, 264, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, 5, -1, 187, -1, 189, 261, -1, -1, 13, 14, 15, 1896, 17, -1, -1, -1, -1, -1, -1, 1638, -1, -1, 1641, -1, -1, -1, -1, 1646, -1, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, 7, 261, -1, -1, -1, 1943, 1678, 1679, 1680, 1681, 1682, -1, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, 1714, -1, -1, -1, 1718, -1, -1, 1721, 1722, -1, -1, -1, -1, 7, -1, -1, 1730, -1, -1, -1, -1, -1, 1736, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1750, 1751, 1752, 1753, 1754, -1, 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, -1, -1, 159, -1, -1, 162, -1, -1, 165, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, -1, 189, -1, 1805, -1, -1, 194, -1, -1, 197, -1, -1, -1, -1, 1816, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, 1836, 1837, 1838, 1839, -1, 261, 1842, -1, 1844, -1, -1, -1, -1, -1, -1, -1, 1852, 1853, -1, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, 1867, 1868, -1, 255, 1871, -1, -1, -1, -1, 261, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, 1895, 13, 14, 15, -1, 17, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 1930, -1, 1932, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, 13, 14, 15, -1, 17, 1955, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, 7, -1, 1985, -1, -1, 1988, 237, 238, 239, 240, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, 252, 8, -1, 255, 2008, -1, -1, 2011, -1, -1, 5, -1, -1, -1, -1, -1, -1, 2021, 13, 14, 15, 142, 17, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, -1, -1, 159, -1, -1, 162, -1, 8, 165, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, -1, 189, -1, -1, -1, -1, 194, -1, 142, 197, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, -1, -1, 159, -1, -1, 162, -1, -1, 165, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, -1, 189, -1, -1, -1, -1, 194, -1, -1, 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, -1, -1, 159, -1, -1, 162, -1, -1, 165, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, -1, 189, 5, -1, -1, 265, 194, -1, -1, 197, 13, 14, 15, -1, 17, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, 5, 257, -1, -1, -1, 261, -1, -1, 13, 14, 15, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, 8, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, 13, 14, 15, -1, 17, 238, 239, 240, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, 252, 8, 142, 255, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, -1, -1, 159, -1, -1, 162, -1, -1, 165, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, -1, 189, -1, -1, -1, -1, 194, -1, 142, 197, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, -1, -1, 159, -1, -1, 162, -1, -1, 165, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, -1, 189, -1, -1, -1, -1, 194, -1, 142, 197, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, 265, -1, 159, -1, -1, 162, -1, -1, 165, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, -1, 189, 5, -1, -1, -1, 194, -1, -1, 197, 13, 14, 15, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, 5, -1, -1, -1, -1, -1, -1, -1, 13, 14, 15, -1, 17, -1, -1, -1, -1, 236, 237, 238, 239, 265, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, 8, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, 13, 14, 15, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, -1, -1, 159, -1, -1, 162, -1, -1, 165, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, -1, 189, -1, -1, -1, -1, 194, -1, 142, 197, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, -1, -1, 159, -1, -1, 162, -1, -1, 165, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, -1, 189, -1, -1, -1, -1, 194, -1, 142, 197, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, 265, -1, 159, -1, -1, 162, -1, -1, 165, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, -1, 189, 5, -1, -1, -1, 194, -1, -1, 197, 13, 14, 15, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, 13, 14, 15, -1, 17, -1, -1, -1, -1, 236, 237, 238, 239, 265, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, 13, 14, 15, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, -1, -1, 159, -1, -1, 162, -1, -1, 165, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 8, -1, -1, 189, -1, -1, -1, -1, 194, -1, 142, 197, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, -1, -1, 159, -1, -1, 162, -1, -1, 165, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, -1, 189, -1, -1, -1, -1, 194, -1, 142, 197, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, 265, -1, 159, -1, -1, 162, -1, -1, 165, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 3, 4, 5, 189, 5, -1, -1, -1, 194, -1, -1, 197, 13, 14, 15, -1, 17, -1, -1, -1, -1, 24, 25, 26, 27, 265, -1, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, 3, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, -1, -1, -1, -1, -1, -1, -1, 24, 25, 26, 27, -1, 265, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, 252, -1, -1, 255, -1, 142, -1, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, -1, -1, 159, -1, -1, 162, -1, -1, 165, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, -1, 189, 3, 4, 5, 6, 194, -1, -1, 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 3, 4, 5, -1, 248, -1, -1, -1, -1, 253, -1, -1, 256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 5, -1, -1, -1, -1, 248, 11, 12, -1, -1, 253, -1, -1, 256, 19, 20, 21, 22, -1, 75, 236, 237, 238, 239, 29, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, 62, -1, -1, 255, -1, -1, 68, -1, -1, 261, -1, -1, -1, -1, 266, -1, -1, -1, -1, 81, -1, 83, -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, 99, -1, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, 111, 247, 248, 249, 250, 251, 168, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, 266, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 248, 198, -1, -1, -1, 253, -1, -1, 256, -1, -1, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, -1, -1, -1, -1, 187, -1, 189, -1, -1, -1, -1, -1, -1, -1, -1, 248, -1, -1, -1, -1, 253, -1, -1, 256, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 236, 237, 238, 239, 261, 241, 242, 243, 244, 266, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, -1, -1, -1, 265, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 257, -1, -1, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 257, -1, -1, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 257, -1, -1, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, 257, -1, -1, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, 259, -1, 261, 236, 237, 238, 239, -1, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, -1, -1, -1, 255, -1, -1, -1, -1, -1, 261, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, 252, -1, -1, 255, -1, -1, -1, 259, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, 252, -1, -1, 255, -1, 257, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, -1, -1, 247, 248, 249, 250, 251, 252, -1, -1, 255 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/share/bison.simple" /* This file comes from bison-1.28. */ /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ /* This is the parser code that is written into each bison parser when the %semantic_parser declaration is not specified in the grammar. It was written by Richard Stallman by simplifying the hairy parser used when %semantic_parser is specified. */ #ifndef YYSTACK_USE_ALLOCA #ifdef alloca #define YYSTACK_USE_ALLOCA #else /* alloca not defined */ #ifdef __GNUC__ #define YYSTACK_USE_ALLOCA #define alloca __builtin_alloca #else /* not GNU C. */ #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) #define YYSTACK_USE_ALLOCA #include #else /* not sparc */ /* We think this test detects Watcom and Microsoft C. */ /* This used to test MSDOS, but that is a bad idea since that symbol is in the user namespace. */ #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) #if 0 /* No need for malloc.h, which pollutes the namespace; instead, just don't use alloca. */ #include #endif #else /* not MSDOS, or __TURBOC__ */ #if defined(_AIX) /* I don't know what this was needed for, but it pollutes the namespace. So I turned it off. rms, 2 May 1997. */ /* #include */ #pragma alloca #define YYSTACK_USE_ALLOCA #else /* not MSDOS, or __TURBOC__, or _AIX */ #if 0 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, and on HPUX 10. Eventually we can turn this on. */ #define YYSTACK_USE_ALLOCA #define alloca __builtin_alloca #endif /* __hpux */ #endif #endif /* not _AIX */ #endif /* not MSDOS, or __TURBOC__ */ #endif /* not sparc */ #endif /* not GNU C */ #endif /* alloca not defined */ #endif /* YYSTACK_USE_ALLOCA not defined */ #ifdef YYSTACK_USE_ALLOCA #define YYSTACK_ALLOC alloca #else #define YYSTACK_ALLOC malloc #endif /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action as one case of the switch. */ #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(token, value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { yychar = (token), yylval = (value); \ yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { yyerror ("syntax error: cannot back up"); YYERROR; } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 #ifndef YYPURE #define YYLEX yylex() #endif #ifdef YYPURE #ifdef YYLSP_NEEDED #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) #else #define YYLEX yylex(&yylval, &yylloc) #endif #else /* not YYLSP_NEEDED */ #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, YYLEX_PARAM) #else #define YYLEX yylex(&yylval) #endif #endif /* not YYLSP_NEEDED */ #endif /* If nonreentrant, generate the variables here */ #ifndef YYPURE int yychar; /* the lookahead symbol */ YYSTYPE yylval; /* the semantic value of the */ /* lookahead symbol */ #ifdef YYLSP_NEEDED YYLTYPE yylloc; /* location data for the lookahead */ /* symbol */ #endif int yynerrs; /* number of parse errors so far */ #endif /* not YYPURE */ #if YYDEBUG != 0 int yydebug; /* nonzero means print parse trace */ /* Since this is uninitialized, it does not stop multiple parsers from coexisting. */ #endif /* YYINITDEPTH indicates the initial size of the parser's stacks */ #ifndef YYINITDEPTH #define YYINITDEPTH 200 #endif /* YYMAXDEPTH is the maximum size the stacks can grow to (effective only if the built-in stack extension method is used). */ #if YYMAXDEPTH == 0 #undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH #define YYMAXDEPTH 10000 #endif /* Define __yy_memcpy. Note that the size argument should be passed with type unsigned int, because that is what the non-GCC definitions require. With GCC, __builtin_memcpy takes an arg of type size_t, but it can handle unsigned int. */ #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ #ifndef __cplusplus /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (to, from, count) char *to; char *from; unsigned int count; { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #else /* __cplusplus */ /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (char *to, char *from, unsigned int count) { register char *t = to; register char *f = from; register int i = count; while (i-- > 0) *t++ = *f++; } #endif #endif #line 217 "/usr/share/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. It should actually point to an object. Grammar actions can access the variable by casting it to the proper pointer type. */ #ifdef YYPARSE_PARAM #ifdef __cplusplus #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM #define YYPARSE_PARAM_DECL #else /* not __cplusplus */ #define YYPARSE_PARAM_ARG YYPARSE_PARAM #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; #endif /* not __cplusplus */ #else /* not YYPARSE_PARAM */ #define YYPARSE_PARAM_ARG #define YYPARSE_PARAM_DECL #endif /* not YYPARSE_PARAM */ /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ #ifdef YYPARSE_PARAM int yyparse (void *); #else int yyparse (void); #endif #endif int yyparse(YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL { register int yystate; register int yyn; register short *yyssp; register YYSTYPE *yyvsp; int yyerrstatus; /* number of tokens to shift before error messages enabled */ int yychar1 = 0; /* lookahead token as an internal (translated) token number */ short yyssa[YYINITDEPTH]; /* the state stack */ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ short *yyss = yyssa; /* refer to the stacks thru separate pointers */ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ #ifdef YYLSP_NEEDED YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) #else #define YYPOPSTACK (yyvsp--, yyssp--) #endif int yystacksize = YYINITDEPTH; int yyfree_stacks = 0; #ifdef YYPURE int yychar; YYSTYPE yylval; int yynerrs; #ifdef YYLSP_NEEDED YYLTYPE yylloc; #endif #endif YYSTYPE yyval; /* the variable used to return */ /* semantic values from the action */ /* routines */ int yylen; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Starting parse\n"); #endif yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss - 1; yyvsp = yyvs; #ifdef YYLSP_NEEDED yylsp = yyls; #endif /* Push a new state, which is found in yystate . */ /* In all cases, when you get here, the value and location stacks have just been pushed. so pushing a state here evens the stacks. */ yynewstate: *++yyssp = yystate; if (yyssp >= yyss + yystacksize - 1) { /* Give user a chance to reallocate the stack */ /* Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; short *yyss1 = yyss; #ifdef YYLSP_NEEDED YYLTYPE *yyls1 = yyls; #endif /* Get the current used size of the three stacks, in elements. */ int size = yyssp - yyss + 1; #ifdef yyoverflow /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. */ #ifdef YYLSP_NEEDED /* This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yyls1, size * sizeof (*yylsp), &yystacksize); #else yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yystacksize); #endif yyss = yyss1; yyvs = yyvs1; #ifdef YYLSP_NEEDED yyls = yyls1; #endif #else /* no yyoverflow */ /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); if (yyfree_stacks) { free (yyss); free (yyvs); #ifdef YYLSP_NEEDED free (yyls); #endif } return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; #ifndef YYSTACK_USE_ALLOCA yyfree_stacks = 1; #endif yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); __yy_memcpy ((char *)yyss, (char *)yyss1, size * (unsigned int) sizeof (*yyssp)); yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * (unsigned int) sizeof (*yyvsp)); #ifdef YYLSP_NEEDED yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); __yy_memcpy ((char *)yyls, (char *)yyls1, size * (unsigned int) sizeof (*yylsp)); #endif #endif /* no yyoverflow */ yyssp = yyss + size - 1; yyvsp = yyvs + size - 1; #ifdef YYLSP_NEEDED yylsp = yyls + size - 1; #endif #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Stack size increased to %d\n", yystacksize); #endif if (yyssp >= yyss + yystacksize - 1) YYABORT; } #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Entering state %d\n", yystate); #endif goto yybackup; yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ /* yyresume: */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYFLAG) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* yychar is either YYEMPTY or YYEOF or a valid token in external form. */ if (yychar == YYEMPTY) { #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Reading a token: "); #endif yychar = YYLEX; } /* Convert token to internal form (in yychar1) for indexing tables with */ if (yychar <= 0) /* This means end of input. */ { yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Now at end of input.\n"); #endif } else { yychar1 = YYTRANSLATE(yychar); #if YYDEBUG != 0 if (yydebug) { fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); /* Give the individual parser a way to print the precise meaning of a token, for further debugging info. */ #ifdef YYPRINT YYPRINT (stderr, yychar, yylval); #endif fprintf (stderr, ")\n"); } #endif } yyn += yychar1; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) goto yydefault; yyn = yytable[yyn]; /* yyn is what to do for this token type in this state. Negative => reduce, -yyn is rule number. Positive => shift, yyn is new state. New state is final state => don't bother to shift, just return success. 0, or most negative number => error. */ if (yyn < 0) { if (yyn == YYFLAG) goto yyerrlab; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; /* Shift the lookahead token. */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); #endif /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif /* count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; yystate = yyn; goto yynewstate; /* Do the default action for the current state. */ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; /* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: yylen = yyr2[yyn]; if (yylen > 0) yyval = yyvsp[1-yylen]; /* implement default value of the action */ #if YYDEBUG != 0 if (yydebug) { int i; fprintf (stderr, "Reducing via rule %d (line %d), ", yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) fprintf (stderr, "%s ", yytname[yyrhs[i]]); fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); } #endif switch (yyn) { case 1: #line 340 "GetDP.y" { if (++YaccLevel == 1) { ConstantTable_L = List_Create(20, 10, sizeof(struct Constant)) ; ListDummy_L = List_Create( 1, 1, sizeof(int)) ; /* Do not delete */ ListOfInt_L = List_Create(20, 10, sizeof(int)) ; ListOfTwoInt_L = List_Create(20, 10, sizeof(struct TwoInt)) ; ListOfPointer_L = List_Create(10, 10, sizeof(void *)) ; ListOfPointer2_L= List_Create(10, 10, sizeof(void *)) ; ListOfChar_L = List_Create(128, 128, sizeof(char)) ; ListOfFormulation = List_Create(5,5, sizeof(int)) ; ListOfBasisFunction = List_Create(5,5, sizeof(List_T *)) ; ListOfEntityIndex = List_Create(5,5, sizeof(int)) ; } ; break;} case 2: #line 356 "GetDP.y" { if (--YaccLevel == 0) { List_Delete(ListOfInt_L) ; List_Delete(ListOfTwoInt_L) ; List_Delete(ListOfPointer_L) ; List_Delete(ListOfPointer2_L) ; List_Delete(ListOfChar_L) ; List_Delete(ListOfFormulation) ; List_Delete(ListOfBasisFunction) ; List_Delete(ListOfEntityIndex) ; } ; break;} case 4: #line 380 "GetDP.y" { Formulation_S.DefineQuantity = NULL ; ; break;} case 18: #line 403 "GetDP.y" { strcpy(yyincludename, yyvsp[0].c); yyincludenum++ ; return(0); ; break;} case 20: #line 418 "GetDP.y" { Help(NULL); ; break;} case 21: #line 420 "GetDP.y" { Help("Print"); ; break;} case 22: #line 422 "GetDP.y" { Help("Check"); ; break;} case 23: #line 424 "GetDP.y" { Help("Log"); ; break;} case 24: #line 426 "GetDP.y" { Help("Log"); ; break;} case 25: #line 428 "GetDP.y" { Help("Help"); ; break;} case 26: #line 430 "GetDP.y" { Help(yyvsp[-1].c); ; break;} case 27: #line 432 "GetDP.y" { Msg(RESOURCES, ""); ; break;} case 28: #line 434 "GetDP.y" { Print_ProblemStructure(&Problem_S); ; break;} case 29: #line 436 "GetDP.y" { Print_Group(&Problem_S); ; break;} case 30: #line 438 "GetDP.y" { Print_Expression(&Problem_S); ; break;} case 31: #line 440 "GetDP.y" { Print_Constraint(&Problem_S); ; break;} case 32: #line 442 "GetDP.y" { Print_Jacobian(&Problem_S); ; break;} case 33: #line 444 "GetDP.y" { Print_Integration(&Problem_S); ; break;} case 34: #line 446 "GetDP.y" { Print_FunctionSpace(&Problem_S); ; break;} case 35: #line 448 "GetDP.y" { Print_Formulation(&Problem_S); ; break;} case 36: #line 450 "GetDP.y" { Print_Resolution(&Problem_S); ; break;} case 37: #line 452 "GetDP.y" { Print_PostProcessing(&Problem_S); ; break;} case 38: #line 454 "GetDP.y" { Print_PostOperation(&Problem_S); ; break;} case 39: #line 456 "GetDP.y" { Print_Object(yyvsp[-1].i, &Problem_S); ; break;} case 40: #line 458 "GetDP.y" { PostOperation_S.Name = NULL ; PostOperation_S.AppendString = NULL ; PostOperation_S.Format = FORMAT_GMSH ; PostOperation_S.PostProcessingIndex = -1 ; PostSubOperation_S.Format = -1 ; ; break;} case 41: #line 466 "GetDP.y" { if(PostSubOperation_S.Format<0) PostSubOperation_S.Format = PostOperation_S.Format ; InteractivePostSubOperation_S = PostSubOperation_S ; InteractiveCompute = 1; ; break;} case 44: #line 490 "GetDP.y" { Add_Group(&Group_S, yyvsp[-3].c, 0, 0) ; ; break;} case 45: #line 493 "GetDP.y" { Add_Group(&Group_S, yyvsp[-4].c, 2, yyvsp[-3].i) ; ; break;} case 46: #line 499 "GetDP.y" { yyerror("Multi-fields {#.} are not used anymore. Use Loops For ... EndFor"); Add_Group(&Group_S, yyvsp[-4].c, 0, 0) ; ; break;} case 49: #line 509 "GetDP.y" { Add_Group_2(&Group_S, yyvsp[-4].c, 1, 0, 0, 0) ; ; break;} case 52: #line 519 "GetDP.y" { Group_S.InitialList = List_Create( 1, 1, sizeof(int)) ; i = (int)yyvsp[-3].d ; List_Add(Group_S.InitialList, &i) ; Group_S.Type = MOVINGBAND2D ; Group_S.FunctionType = REGION ; Group_S.InitialSuppList = NULL ; Group_S.SuppListType = SUPPLIST_NONE ; ; break;} case 53: #line 529 "GetDP.y" { Group_S.MovingBand2D = (struct MovingBand2D *)Malloc(sizeof(struct MovingBand2D)) ; Group_S.MovingBand2D->InitialList1 = yyvsp[0].l ; Group_S.MovingBand2D->ExtendedList1 = NULL ; Group_S.MovingBand2D->PhysNum = (int)yyvsp[-7].d ; ; break;} case 54: #line 536 "GetDP.y" { Group_S.MovingBand2D->InitialList2 = yyvsp[-4].l ; Add_Group(&Group_S, yyvsp[-17].c, 0, 0) ; Group_S.MovingBand2D->Period2 = (int)yyvsp[-2].d ; ; break;} case 55: #line 546 "GetDP.y" { Group_S.FunctionType = yyvsp[-2].i ; switch (Group_S.FunctionType) { case ELEMENTSOF : Group_S.Type = ELEMENTLIST ; break ; default : Group_S.Type = REGIONLIST ; break ; } Group_S.InitialList = yyvsp[0].l ; ; break;} case 56: #line 555 "GetDP.y" { Group_S.SuppListType = Type_SuppList ; Group_S.InitialSuppList = yyvsp[-1].l ; yyval.i = -1 ; ; break;} case 57: #line 563 "GetDP.y" { Group_S.FunctionType = REGION ; Group_S.Type = REGIONLIST ; Group_S.InitialList = yyvsp[0].l ; Group_S.SuppListType = SUPPLIST_NONE ; Group_S.InitialSuppList = NULL ; yyval.i = -1 ; ; break;} case 58: #line 574 "GetDP.y" { yyval.i = yyvsp[0].i ; ; break;} case 59: #line 579 "GetDP.y" { if ( !strcmp(yyvsp[0].c, "All") ) { yyval.i = -3; } else if ( (i = List_ISearchSeq(Problem_S.Group, yyvsp[0].c, fcmp_Group_Name)) >= 0 ) { List_Read(Problem_S.Group, i, &Group_S) ; yyval.i = i ; } else { yyval.i = -2 ; vyyerror("Unknown Group: %s", yyvsp[0].c) ; } Free(yyvsp[0].c) ; ; break;} case 60: #line 596 "GetDP.y" { if (!Flag_MultipleIndex) { if ( (i = List_ISearchSeq(Problem_S.Group, yyvsp[-1].c, fcmp_Group_Name)) >= 0 ) List_Read(Problem_S.Group, i, &Group_S) ; yyval.i = i ; } else { List_Reset(ListOfInt_L) ; /* For list of multiple region */ for (k = 0 ; k < Nbr_Index ; k++) { sprintf(tmpstr, "%s_%d", yyvsp[-1].c, k+1) ; if ( (i = List_ISearchSeq(Problem_S.Group, tmpstr, fcmp_Group_Name)) < 0 ) { yyval.i = -2 ; vyyerror("Unknown Group: %s {%d}", yyvsp[-1].c, k+1) ; } else { if (k == 0) { List_Read(Problem_S.Group, i, &Group_S) ; yyval.i = i ; } } List_Add(ListOfInt_L, &i) ; } } Free(yyvsp[-1].c) ; ; break;} case 61: #line 626 "GetDP.y" { yyval.i = REGION ; ; break;} case 62: #line 629 "GetDP.y" { yyval.i = Get_DefineForString(FunctionForGroup_Type, yyvsp[0].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of Function for Group: %s", yyvsp[0].c); Get_Valid_SXD(FunctionForGroup_Type); } Free(yyvsp[0].c) ; ; break;} case 63: #line 641 "GetDP.y" { yyval.l = yyvsp[0].l ; ; break;} case 64: #line 642 "GetDP.y" { yyval.l = NULL ; ; break;} case 65: #line 649 "GetDP.y" { Type_SuppList = SUPPLIST_NONE ; yyval.l = NULL ; ; break;} case 66: #line 652 "GetDP.y" { Type_SuppList = yyvsp[-1].i ; yyval.l = yyvsp[0].l ; ; break;} case 67: #line 655 "GetDP.y" { Type_SuppList = SUPPLIST_INSUPPORT ; if ( (i = List_ISearchSeq(Problem_S.Group, yyvsp[0].c, fcmp_Group_Name)) >= 0 ) { if ( ((struct Group *)List_Pointer(Problem_S.Group, i))->Type == ELEMENTLIST ) { yyval.l = List_Create( 1, 5, sizeof(int)) ; List_Add(yyval.l, &i) ; } else vyyerror("Not a Support of Element Type: %s", yyvsp[0].c) ; } else vyyerror("Unknown Region for Support: %s", yyvsp[0].c) ; Free(yyvsp[0].c) ; ; break;} case 68: #line 673 "GetDP.y" { yyval.i = Get_DefineForString(FunctionForGroup_SuppList, yyvsp[0].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of Supplementary Region: %s", yyvsp[0].c); Get_Valid_SXD(FunctionForGroup_SuppList); } Free(yyvsp[0].c) ; ; break;} case 69: #line 686 "GetDP.y" { yyval.l = List_Create(((List_Nbr(yyvsp[0].l) > 0)? List_Nbr(yyvsp[0].l) : 1), 5, sizeof(int)) ; for (i = 0 ; i < List_Nbr(yyvsp[0].l) ; i++) List_Add(yyval.l, (int *)List_Pointer(yyvsp[0].l, i) ) ; ; break;} case 70: #line 693 "GetDP.y" { yyval.l = yyvsp[-1].l ; ; break;} case 71: #line 700 "GetDP.y" { yyval.l = List_Create( 5, 5, sizeof(int)) ; ; break;} case 72: #line 705 "GetDP.y" { yyval.l = yyvsp[-2].l ; for (i = 0 ; i < List_Nbr(yyvsp[0].l) ; i++) List_Add(yyval.l, (int *)List_Pointer(yyvsp[0].l, i) ) ; ; break;} case 73: #line 712 "GetDP.y" { yyval.l = yyvsp[-3].l ; for (i = 0 ; i < List_Nbr(yyvsp[0].l) ; i++) List_Suppress(yyval.l, (int *)List_Pointer(yyvsp[0].l, i), fcmp_int ) ; ; break;} case 74: #line 723 "GetDP.y" { List_Reset(ListOfInt_L) ; List_Add(yyval.l = ListOfInt_L, &(yyvsp[0].i)) ; ; break;} case 75: #line 729 "GetDP.y" { i = (int)yyvsp[-1].d ; List_Reset(ListOfInt_L) ; List_Add(yyval.l = ListOfInt_L, &i) ; ; break;} case 76: #line 736 "GetDP.y" { List_Reset(ListOfInt_L) ; for(i=0 ; i=yyvsp[0].d) ; (yyvsp[-2].i=yyvsp[0].d) ; (yyvsp[-3].d(int)yyvsp[-2].d && (int)yyvsp[0].d>0)){ vyyerror("Wrong increment in '%d : %d : %d'", yyvsp[-4].i, (int)yyvsp[-2].d, (int)yyvsp[0].d) ; List_Add(ListOfInt_L, &(yyvsp[-4].i)) ; } else for(j=yyvsp[-4].i ; ((int)yyvsp[0].d>0)?(j<=yyvsp[-2].d):(j>=yyvsp[-2].d) ; j+=(int)yyvsp[0].d) List_Add(ListOfInt_L, &j) ; yyval.l = ListOfInt_L ; ; break;} case 80: #line 778 "GetDP.y" { List_Reset(ListOfInt_L) ; if(!(int)yyvsp[0].d || ((int)yyvsp[-5].d<(int)yyvsp[-2].d && (int)yyvsp[0].d<0) || ((int)yyvsp[-5].d>(int)yyvsp[-2].d && (int)yyvsp[0].d>0)){ vyyerror("Wrong increment in '%d : %d : %d'", (int)yyvsp[-5].d, (int)yyvsp[-2].d, (int)yyvsp[0].d) ; i = (int)yyvsp[-5].d ; List_Add(ListOfInt_L, &i) ; } else for(j=(int)yyvsp[-5].d ; ((int)yyvsp[0].d>0)?(j<=(int)yyvsp[-2].d):(j>=(int)yyvsp[-2].d) ; j+=(int)yyvsp[0].d) List_Add(ListOfInt_L, &j) ; yyval.l = ListOfInt_L ; ; break;} case 81: #line 791 "GetDP.y" { if ( (i = List_ISearchSeq(Problem_S.Group, yyvsp[0].c, fcmp_Group_Name)) < 0 ) { /* Si ce n'est pas un nom de groupe, est-ce un nom de constante ? : */ Constant_S.Name = yyvsp[0].c ; if (!List_Query(ConstantTable_L, &Constant_S, fcmp_Constant)) { vyyerror("Unknown Constant: %s", yyvsp[0].c) ; i = 0 ; List_Reset(ListOfInt_L) ; List_Add(yyval.l = ListOfInt_L, &i) ; } else if (Constant_S.Type == VAR_FLOAT) { i = (int)Constant_S.Value.Float ; List_Reset(ListOfInt_L) ; List_Add(yyval.l = ListOfInt_L, &i) ; } else if (Constant_S.Type == VAR_LISTOFFLOAT) { List_Reset(yyval.l = ListOfInt_L) ; for(i=0 ; iInitialList ; Free(yyvsp[0].c) ; ; break;} case 83: #line 830 "GetDP.y" { if ( (i = List_ISearchSeq(Problem_S.Group, yyvsp[0].c, fcmp_Group_Name)) < 0 ) { Group_S.Type = REGIONLIST ; Group_S.FunctionType = REGION ; Group_S.InitialList = ListDummy_L ; Group_S.SuppListType = SUPPLIST_NONE ; Group_S.InitialSuppList = NULL ; i = Add_Group(&Group_S, yyvsp[0].c, 0, 0) ; } else Free(yyvsp[0].c) ; ; break;} case 84: #line 840 "GetDP.y" { for (k = 0 ; k < (int)yyvsp[-1].d ; k++) { sprintf(tmpstr, "%s_%d", yyvsp[-3].c, k+1) ; if ( (i = List_ISearchSeq(Problem_S.Group, tmpstr, fcmp_Group_Name)) < 0 ) { Group_S.Type = REGIONLIST ; Group_S.FunctionType = REGION ; Group_S.SuppListType = SUPPLIST_NONE ; Group_S.InitialSuppList = NULL ; Group_S.InitialList = ListDummy_L ; Add_Group(&Group_S, yyvsp[-3].c, 2, k+1) ; } } Free(yyvsp[-3].c) ; ; break;} case 87: #line 862 "GetDP.y" { yyval.i = (int)yyvsp[-1].d ; ; break;} case 88: #line 867 "GetDP.y" { Flag_MultipleIndex = 0 ; ; break;} case 89: #line 868 "GetDP.y" { Flag_MultipleIndex = 1 ; ; break;} case 90: #line 873 "GetDP.y" { yyval.i = (int)yyvsp[-1].d ; ; break;} case 94: #line 892 "GetDP.y" { if ( (i = List_ISearchSeq (Problem_S.Expression, yyvsp[-5].c, fcmp_Expression_Name)) >= 0 ) { if (((struct Expression *)List_Pointer(Problem_S.Expression, i))->Type == UNDEFINED_EXP) { Free(((struct Expression *)List_Pointer(Problem_S.Expression, i))->Name) ; List_Read (Problem_S.Expression, yyvsp[-1].i, &Expression_S) ; List_Write(Problem_S.Expression, i, &Expression_S) ; ((struct Expression *)List_Pointer(Problem_S.Expression, i))->Name = yyvsp[-5].c ; List_Pop(Problem_S.Expression) ; } else { vyyerror("Redefinition of Function: %s", yyvsp[-5].c) ; } } else { /* new identifier */ Free(((struct Expression *)List_Pointer(Problem_S.Expression, yyvsp[-1].i))->Name) ; ((struct Expression *)List_Pointer(Problem_S.Expression, yyvsp[-1].i))->Name = yyvsp[-5].c ; } ; break;} case 95: #line 912 "GetDP.y" { if ( (i = List_ISearchSeq (Problem_S.Expression, yyvsp[-6].c, fcmp_Expression_Name)) < 0 ) { /* Si le nom n'existe pas : */ i = List_Nbr(Problem_S.Expression) ; Expression_S.Type = PIECEWISEFUNCTION ; Expression_S.Case.PieceWiseFunction.ExpressionPerRegion = List_Create( 5, 5, sizeof(struct ExpressionPerRegion)) ; Expression_S.Case.PieceWiseFunction.NumLastRegion = -1 ; Add_Expression(&Expression_S, yyvsp[-6].c, 0) ; Expression_P = (struct Expression*)List_Pointer(Problem_S.Expression, i) ; } else { Expression_P = (struct Expression*)List_Pointer(Problem_S.Expression, i) ; if (Expression_P->Type == UNDEFINED_EXP) { Expression_P->Type = PIECEWISEFUNCTION ; Expression_P->Case.PieceWiseFunction.ExpressionPerRegion = List_Create( 5, 5, sizeof(struct ExpressionPerRegion)) ; Expression_P->Case.PieceWiseFunction.NumLastRegion = -1 ; } else if (Expression_P->Type != PIECEWISEFUNCTION) vyyerror("Not piece-wise Expression: %s", yyvsp[-6].c) ; Free(yyvsp[-6].c) ; } if (yyvsp[-4].i >= 0 || yyvsp[-4].i == -1) { ExpressionPerRegion_S.ExpressionIndex = yyvsp[-1].i ; for (i = 0 ; i < List_Nbr(Group_S.InitialList) ; i++) { List_Read(Group_S.InitialList, i, &ExpressionPerRegion_S.RegionIndex) ; if (List_Search(Expression_P->Case.PieceWiseFunction.ExpressionPerRegion, &ExpressionPerRegion_S.RegionIndex, fcmp_int)) vyyerror("Redefinition of piece-wise Function: %s [%d]", Expression_P->Name, ExpressionPerRegion_S.RegionIndex) ; else List_Add(Expression_P->Case.PieceWiseFunction.ExpressionPerRegion, &ExpressionPerRegion_S) ; } if (yyvsp[-4].i == -1) { List_Delete(Group_S.InitialList) ; } } else vyyerror("Bad Group right hand side") ; ; break;} case 99: #line 965 "GetDP.y" { if ( (i = List_ISearchSeq (Problem_S.Expression, yyvsp[0].c, fcmp_Expression_Name)) < 0 ) { Expression_S.Type = UNDEFINED_EXP ; Add_Expression(&Expression_S, yyvsp[0].c, 0) ; } else Free(yyvsp[0].c) ; ; break;} case 100: #line 985 "GetDP.y" { Expression_S.Type = CONSTANT ; Expression_S.Case.Constant = yyvsp[-1].d ; yyval.i = Add_Expression(&Expression_S, "Exp_Cst", 1) ; ; break;} case 101: #line 991 "GetDP.y" { if((i = List_ISearchSeq(Problem_S.Expression, yyvsp[-1].c, fcmp_Expression_Name)) < 0) vyyerror("Unknown name of Expression: %s", yyvsp[-1].c) ; Free(yyvsp[-1].c) ; yyval.i = i ; ; break;} case 102: #line 997 "GetDP.y" { Current_DofIndexInWholeQuantity = -2 ; List_Reset(ListOfPointer_L) ; List_Reset(ListOfPointer2_L) ; ; break;} case 103: #line 1000 "GetDP.y" { Expression_S.Type = WHOLEQUANTITY ; Expression_S.Case.WholeQuantity = yyvsp[0].l ; yyval.i = Add_Expression(&Expression_S, "Exp_Fct", 1) ; ; break;} case 104: #line 1007 "GetDP.y" { List_Reset(ListOfInt_L) ; ; break;} case 106: #line 1018 "GetDP.y" { List_Reset(ListOfInt_L) ; List_Add(ListOfInt_L, &(yyvsp[0].i)) ; ; break;} case 107: #line 1021 "GetDP.y" { List_Add(ListOfInt_L, &(yyvsp[0].i)) ; ; break;} case 108: #line 1027 "GetDP.y" { Current_WholeQuantity_L = List_Create( 5, 5, sizeof(struct WholeQuantity)) ; List_Add(ListOfPointer_L, &Current_WholeQuantity_L) ; ; break;} case 109: #line 1031 "GetDP.y" { yyval.l = *((List_T **)List_Pointer(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1)) ; List_Pop(ListOfPointer_L) ; ; break;} case 111: #line 1043 "GetDP.y" { WholeQuantity_S.Type = WQ_TEST ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; WholeQuantity_P = (struct WholeQuantity*) List_Pointer(Current_WholeQuantity_L, List_Nbr(Current_WholeQuantity_L)-1); List_Add(ListOfPointer2_L, &WholeQuantity_P); List_Add(ListOfPointer2_L, &WholeQuantity_P); Current_WholeQuantity_L = List_Create( 5, 5, sizeof(struct WholeQuantity)) ; List_Add(ListOfPointer_L, &Current_WholeQuantity_L) ; ; break;} case 112: #line 1056 "GetDP.y" { WholeQuantity_P = *((struct WholeQuantity**) List_Pointer(ListOfPointer2_L, List_Nbr(ListOfPointer2_L)-1)) ; List_Pop(ListOfPointer2_L) ; WholeQuantity_P->Case.Test.WholeQuantity_True = *((List_T **)List_Pointer(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1)) ; List_Pop(ListOfPointer_L) ; Current_WholeQuantity_L = List_Create( 5, 5, sizeof(struct WholeQuantity)) ; List_Add(ListOfPointer_L, &Current_WholeQuantity_L) ; ; break;} case 113: #line 1070 "GetDP.y" { WholeQuantity_P = *((struct WholeQuantity**) List_Pointer(ListOfPointer2_L, List_Nbr(ListOfPointer2_L)-1)) ; List_Pop(ListOfPointer2_L) ; WholeQuantity_P->Case.Test.WholeQuantity_False = *((List_T **)List_Pointer(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1)) ; List_Pop(ListOfPointer_L) ; List_Read(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1, &Current_WholeQuantity_L) ; ; break;} case 114: #line 1085 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_TIME ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_ProductValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 115: #line 1091 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_CROSSPRODUCT ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_CrossProductValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 116: #line 1097 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_CROSSPRODUCT ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_CrossProductValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 117: #line 1103 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_DIVIDE ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_DivideValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 118: #line 1109 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_PLUS ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_AddValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 119: #line 1115 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_MINUS ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_SubstractValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 120: #line 1121 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_MODULO ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_ModuloValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 121: #line 1127 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_POWER ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_PowerValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 122: #line 1133 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_LESS ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_LessValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 123: #line 1139 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_GREATER ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_GreaterValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 124: #line 1145 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_LESSOREQUAL ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_LessOrEqualValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 125: #line 1151 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_GREATEROREQUAL ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_GreaterOrEqualValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 126: #line 1157 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_EQUAL ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_EqualValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 127: #line 1163 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_NOTEQUAL ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_NotEqualValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 128: #line 1169 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_APPROXEQUAL ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_ApproxEqualValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 129: #line 1175 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_AND ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_AndValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 130: #line 1181 "GetDP.y" { WholeQuantity_S.Type = WQ_BINARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_OR ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_OrValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 131: #line 1188 "GetDP.y" { WholeQuantity_S.Type = WQ_UNARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_NEG ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_NegValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 133: #line 1196 "GetDP.y" { WholeQuantity_S.Type = WQ_UNARYOPERATOR ; WholeQuantity_S.Case.Operator.TypeOperator = OP_NOT ; WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_NotValue ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 135: #line 1209 "GetDP.y" { WholeQuantity_S.Type = WQ_CONSTANT ; WholeQuantity_S.Case.Constant = yyvsp[0].d ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 136: #line 1215 "GetDP.y" { /* Expression */ if ((i = List_ISearchSeq(Problem_S.Expression, yyvsp[-2].c,fcmp_Expression_Name)) >= 0) { WholeQuantity_S.Type = WQ_EXPRESSION ; WholeQuantity_S.Case.Expression.Index = i ; WholeQuantity_S.Case.Expression.NbrArguments = yyvsp[-1].i ; if (yyvsp[-1].i < 0) vyyerror("Uncompatible argument for Function: %s", yyvsp[-2].c) ; } /* Built in functions */ else { Get_Function2NbrForString(F_Function, yyvsp[-2].c, &FlagError, &WholeQuantity_S.Case.Function.Fct, &WholeQuantity_S.Case.Function.NbrParameters, &WholeQuantity_S.Case.Function.NbrArguments) ; WholeQuantity_S.Case.Function.Active = NULL ; if (!FlagError) { /* arguments */ if (yyvsp[-1].i >= 0) { if (yyvsp[-1].i == WholeQuantity_S.Case.Function.NbrArguments) { WholeQuantity_S.Type = WQ_BUILTINFUNCTION ; } else if (WholeQuantity_S.Case.Function.NbrArguments == -1 || (WholeQuantity_S.Case.Function.NbrArguments == -2 )) { /* && ($2)%2 == 0)) { */ WholeQuantity_S.Type = WQ_BUILTINFUNCTION ; WholeQuantity_S.Case.Function.NbrArguments = yyvsp[-1].i ; } else { vyyerror("Wrong number of arguments for Function '%s' (%d instead of %d)", yyvsp[-2].c, yyvsp[-1].i, WholeQuantity_S.Case.Function.NbrArguments) ; } } else { WholeQuantity_S.Type = WQ_EXTERNBUILTINFUNCTION ; } /* parameters */ if (WholeQuantity_S.Case.Function.NbrParameters >= 0 && WholeQuantity_S.Case.Function.NbrParameters != List_Nbr(yyvsp[0].l)) { vyyerror("Wrong number of parameters for Function '%s' (%d instead of %d)", yyvsp[-2].c, List_Nbr(yyvsp[0].l), WholeQuantity_S.Case.Function.NbrParameters) ; } else if (WholeQuantity_S.Case.Function.NbrParameters == -2 && List_Nbr(yyvsp[0].l)%2 != 0) { vyyerror("Wrong number of parameters for Function '%s' (%d is not even)", yyvsp[-2].c, List_Nbr(yyvsp[0].l)) ; } else { WholeQuantity_S.Case.Function.NbrParameters = List_Nbr(yyvsp[0].l) ; if (WholeQuantity_S.Case.Function.NbrParameters > 0) { WholeQuantity_S.Case.Function.Para = (double *)Malloc (WholeQuantity_S.Case.Function.NbrParameters * sizeof(double)) ; for (i = 0 ; i < WholeQuantity_S.Case.Function.NbrParameters ; i++) List_Read(yyvsp[0].l, i, &WholeQuantity_S.Case.Function.Para[i]) ; } } } else { vyyerror("Unknown Function: %s", yyvsp[-2].c) ; } } List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; List_Delete(yyvsp[0].l); ; break;} case 137: #line 1289 "GetDP.y" { WholeQuantity_S.Type = WQ_OPERATORANDQUANTITY ; WholeQuantity_S.Case.OperatorAndQuantity.NbrArguments = 0 ; WholeQuantity_S.Case.OperatorAndQuantity.TypeQuantity = Get_DefineForString(QuantityFromFS_Type, yyvsp[-1].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of discrete Quantity: %s", yyvsp[-1].c); Get_Valid_SXD(QuantityFromFS_Type) ; } Free(yyvsp[-1].c) ; WholeQuantity_S.Case.OperatorAndQuantity.TypeOperator = yyvsp[0].t.Int1 ; WholeQuantity_S.Case.OperatorAndQuantity.Index = yyvsp[0].t.Int2 ; switch(WholeQuantity_S.Case.OperatorAndQuantity.TypeQuantity) { case QUANTITY_DOF : if (Current_DofIndexInWholeQuantity == -1) Current_DofIndexInWholeQuantity = List_Nbr(Current_WholeQuantity_L) ; else if (Current_DofIndexInWholeQuantity == -2) vyyerror("Dof{} definition out of context") ; else vyyerror("More than one Dof definition in Expression") ; break ; case QUANTITY_NODOF : if (Current_DofIndexInWholeQuantity == -2) vyyerror("NoDof definition out of context") ; else if (Current_NoDofIndexInWholeQuantity == -1) Current_NoDofIndexInWholeQuantity = List_Nbr(Current_WholeQuantity_L) ; else vyyerror("More than one NoDof definition in Expression") ; break ; } List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 138: #line 1323 "GetDP.y" { WholeQuantity_S.Type = WQ_OPERATORANDQUANTITY ; WholeQuantity_S.Case.OperatorAndQuantity.NbrArguments = 0 ; WholeQuantity_S.Case.OperatorAndQuantity.TypeQuantity = QUANTITY_SIMPLE ; WholeQuantity_S.Case.OperatorAndQuantity.TypeOperator = yyvsp[0].t.Int1 ; WholeQuantity_S.Case.OperatorAndQuantity.Index = yyvsp[0].t.Int2 ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 139: #line 1332 "GetDP.y" { if(yyvsp[0].i!=1 && yyvsp[0].i!=3 && yyvsp[0].i!=4) vyyerror("Wrong number of arguments for discrete quantity evaluation (%d)", yyvsp[0].i) ; WholeQuantity_S.Type = WQ_OPERATORANDQUANTITYEVAL ; WholeQuantity_S.Case.OperatorAndQuantity.NbrArguments = yyvsp[0].i ; WholeQuantity_S.Case.OperatorAndQuantity.TypeQuantity = QUANTITY_SIMPLE ; WholeQuantity_S.Case.OperatorAndQuantity.TypeOperator = yyvsp[-1].t.Int1 ; WholeQuantity_S.Case.OperatorAndQuantity.Index = yyvsp[-1].t.Int2 ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 140: #line 1344 "GetDP.y" { Last_DofIndexInWholeQuantity = Current_DofIndexInWholeQuantity ; ; break;} case 141: #line 1346 "GetDP.y" { WholeQuantity_S.Type = WQ_TIMEDERIVATIVE ; WholeQuantity_S.Case.TimeDerivative.WholeQuantity = yyvsp[-1].l ; List_Read(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1, &Current_WholeQuantity_L) ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; if (Current_DofIndexInWholeQuantity != Last_DofIndexInWholeQuantity) vyyerror("Dof{} definition out of context") ; ; break;} case 142: #line 1358 "GetDP.y" { Last_DofIndexInWholeQuantity = Current_DofIndexInWholeQuantity ; ; break;} case 143: #line 1360 "GetDP.y" { WholeQuantity_S.Type = WQ_ATANTERIORTIMESTEP ; WholeQuantity_S.Case.AtAnteriorTimeStep.WholeQuantity = yyvsp[-3].l ; WholeQuantity_S.Case.AtAnteriorTimeStep.TimeStep = yyvsp[-1].i ; List_Read(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1, &Current_WholeQuantity_L) ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; if (Current_DofIndexInWholeQuantity != Last_DofIndexInWholeQuantity) vyyerror("Dof{} definition out of context") ; ; break;} case 144: #line 1372 "GetDP.y" { Last_DofIndexInWholeQuantity = Current_DofIndexInWholeQuantity ; ; break;} case 145: #line 1374 "GetDP.y" { if ((i = List_ISearchSeq(Problem_S.Expression, yyvsp[-8].c,fcmp_Expression_Name)) < 0) vyyerror("Undefined function '%s' used in MHTransform", yyvsp[-8].c) ; if (Current_DofIndexInWholeQuantity != Last_DofIndexInWholeQuantity) vyyerror("Dof{} definition cannot be used in MHTransform") ; WholeQuantity_S.Type = WQ_MHTRANSFORM ; WholeQuantity_S.Case.MHTransform.Index = i ; WholeQuantity_S.Case.MHTransform.WholeQuantity = yyvsp[-5].l ; WholeQuantity_S.Case.MHTransform.NbrPoints = (int)yyvsp[-1].d ; List_Read(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1, &Current_WholeQuantity_L) ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 146: #line 1388 "GetDP.y" { if ((i = List_ISearchSeq(Problem_S.Expression, yyvsp[-6].c,fcmp_Expression_Name)) < 0) vyyerror("Undefined function '%s' used in MHJacNL", yyvsp[-6].c) ; WholeQuantity_S.Type = WQ_MHJACNL ; WholeQuantity_S.Case.MHJacNL.Index = i ; WholeQuantity_S.Case.MHJacNL.NbrPoints = (int)yyvsp[-3].d ; WholeQuantity_S.Case.MHJacNL.FreqOffSet = (int)yyvsp[-1].d ; List_Read(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1, &Current_WholeQuantity_L) ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 147: #line 1400 "GetDP.y" { WholeQuantity_S.Type = WQ_SOLIDANGLE ; WholeQuantity_S.Case.OperatorAndQuantity.Index = yyvsp[-1].t.Int2 ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 148: #line 1406 "GetDP.y" { WholeQuantity_S.Type = WQ_ORDER ; WholeQuantity_S.Case.OperatorAndQuantity.Index = yyvsp[-1].t.Int2 ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 149: #line 1412 "GetDP.y" { Last_DofIndexInWholeQuantity = Current_DofIndexInWholeQuantity ; ; break;} case 150: #line 1414 "GetDP.y" { WholeQuantity_S.Type = WQ_TRACE ; WholeQuantity_S.Case.Trace.WholeQuantity = yyvsp[-3].l ; WholeQuantity_S.Case.Trace.InIndex = Num_Group(&Group_S, "WQ_Trace_In", yyvsp[-1].i) ; if(Group_S.Type != ELEMENTLIST || Group_S.SuppListType != SUPPLIST_CONNECTEDTO) vyyerror("Group for Trace should be of Type 'ElementsOf[x, ConnectedTo y]'"); WholeQuantity_S.Case.Trace.DofIndexInWholeQuantity = -1 ; if (Current_DofIndexInWholeQuantity != Last_DofIndexInWholeQuantity){ for(i=0 ; iType == WQ_OPERATORANDQUANTITY) if(WholeQuantity_P->Case.OperatorAndQuantity.TypeQuantity == QUANTITY_DOF){ WholeQuantity_S.Case.Trace.DofIndexInWholeQuantity = i ; Current_DofIndexInWholeQuantity = -4 ; TypeOperatorDofInTrace = WholeQuantity_P->Case.OperatorAndQuantity.TypeOperator ; DefineQuantityIndexDofInTrace = WholeQuantity_P->Case.OperatorAndQuantity.Index ; } } if(Current_DofIndexInWholeQuantity != -4) vyyerror("Dof{} definition out of context in Trace operator"); } List_Read(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1, &Current_WholeQuantity_L) ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 151: #line 1443 "GetDP.y" { WholeQuantity_S.Type = WQ_CAST ; WholeQuantity_S.Case.Cast.WholeQuantity = yyvsp[-1].l ; if ((i = List_ISearchSeq(Formulation_S.DefineQuantity, yyvsp[-4].c, fcmp_DefineQuantity_Name)) < 0) { if (!strcmp(yyvsp[-4].c, "Real")) WholeQuantity_S.Case.Cast.NbrHar = 1 ; else if (!strcmp(yyvsp[-4].c, "Complex")) WholeQuantity_S.Case.Cast.NbrHar = 2 ; else vyyerror("Unknown Cast: %s", yyvsp[-4].c) ; } else { WholeQuantity_S.Case.Cast.NbrHar = 0 ; WholeQuantity_S.Case.Cast.FunctionSpaceIndexForType = ((struct DefineQuantity *)List_Pointer(Formulation_S.DefineQuantity, i)) ->FunctionSpaceIndex ; } Free(yyvsp[-4].c) ; List_Read(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1, &Current_WholeQuantity_L) ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 152: #line 1469 "GetDP.y" { WholeQuantity_S.Type = WQ_CURRENTVALUE ; Get_PointerForString(Current_Value, yyvsp[0].c, &FlagError, (void **)&WholeQuantity_S.Case.CurrentValue.Value) ; if (FlagError){ vyyerror("Unknown current value: $%s", yyvsp[0].c); Get_Valid_SXP(Current_Value); } Free(yyvsp[0].c) ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 153: #line 1482 "GetDP.y" { WholeQuantity_S.Type = WQ_CURRENTVALUE ; Get_PointerForString(Current_Value, "TimeStep", &FlagError, (void **)&WholeQuantity_S.Case.CurrentValue.Value) ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 154: #line 1488 "GetDP.y" { WholeQuantity_S.Type = WQ_CURRENTVALUE ; Get_PointerForString(Current_Value, "DTime", &FlagError, (void **)&WholeQuantity_S.Case.CurrentValue.Value) ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 155: #line 1495 "GetDP.y" { WholeQuantity_S.Type = WQ_ARGUMENT ; WholeQuantity_S.Case.Argument.Index = yyvsp[0].i ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 156: #line 1501 "GetDP.y" { WholeQuantity_S.Type = WQ_SAVEVALUE ; WholeQuantity_S.Case.SaveValue.Index = yyvsp[0].i - 1 ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 157: #line 1508 "GetDP.y" { WholeQuantity_S.Type = WQ_VALUESAVED ; WholeQuantity_S.Case.ValueSaved.Index = yyvsp[0].i - 1 ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 158: #line 1515 "GetDP.y" { WholeQuantity_S.Type = WQ_SHOWVALUE ; WholeQuantity_S.Case.ShowValue.Index = (int)yyvsp[0].d ; List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ; break;} case 159: #line 1526 "GetDP.y" { yyval.i = -1 ; ; break;} case 160: #line 1527 "GetDP.y" { yyval.i = 0 ; ; break;} case 161: #line 1528 "GetDP.y" { yyval.i = yyvsp[-1].i ; ; break;} case 162: #line 1533 "GetDP.y" { yyval.i = 1 ; ; break;} case 163: #line 1534 "GetDP.y" { yyval.i = yyvsp[-2].i + 1 ; ; break;} case 164: #line 1540 "GetDP.y" { yyval.l = NULL; ; break;} case 165: #line 1543 "GetDP.y" { yyval.l = yyvsp[-1].l; ; break;} case 166: #line 1546 "GetDP.y" { /* Attention: provisoire. Note: Impossible a mettre dans MultiFExpr car conflit avec Affectation dans Group */ yyval.l = List_Create(2, 1, sizeof(double)) ; d = (double)Num_Group(&Group_S, "PA_Region", yyvsp[-2].i) ; List_Add(yyval.l, &d) ; ; break;} case 167: #line 1561 "GetDP.y" { if (!Problem_S.JacobianMethod) Problem_S.JacobianMethod = List_Create(5, 5, sizeof (struct JacobianMethod) ) ; ; break;} case 168: #line 1566 "GetDP.y" { List_Add(Problem_S.JacobianMethod, &JacobianMethod_S) ; ; break;} case 169: #line 1573 "GetDP.y" { JacobianMethod_S.Name = NULL ; JacobianMethod_S.JacobianCase = NULL ; ; break;} case 171: #line 1582 "GetDP.y" { Check_NameOfStructNotExist("JacobianMethod", Problem_S.JacobianMethod, yyvsp[-1].c, fcmp_JacobianMethod_Name) ; JacobianMethod_S.Name = yyvsp[-1].c ; ; break;} case 172: #line 1587 "GetDP.y" { JacobianMethod_S.JacobianCase = yyvsp[-1].l ; ; break;} case 173: #line 1594 "GetDP.y" { yyval.l = List_Create(5, 5, sizeof (struct JacobianCase)) ; ; break;} case 174: #line 1597 "GetDP.y" { List_Add(yyval.l = yyvsp[-3].l, &JacobianCase_S) ; ; break;} case 175: #line 1604 "GetDP.y" { JacobianCase_S.RegionIndex = -1 ; JacobianCase_S.TypeJacobian = JACOBIAN_VOL ; ; break;} case 177: #line 1614 "GetDP.y" { JacobianCase_S.RegionIndex = Num_Group(&Group_S, "JA_Region", yyvsp[-1].i) ; ; break;} case 178: #line 1617 "GetDP.y" { JacobianCase_S.RegionIndex = -1 ; ; break;} case 179: #line 1620 "GetDP.y" { JacobianCase_S.TypeJacobian = Get_Define1NbrForString(Jacobian_Type, yyvsp[-2].c, &FlagError, &JacobianCase_S.NbrParameters) ; if (!FlagError) { if (JacobianCase_S.NbrParameters == -2 && (List_Nbr(yyvsp[-1].l))%2 != 0) vyyerror("Wrong number of parameters for Jacobian '%s' (%d is not even)", yyvsp[-2].c, List_Nbr(yyvsp[-1].l)) ; if (JacobianCase_S.NbrParameters < 0) JacobianCase_S.NbrParameters = List_Nbr(yyvsp[-1].l); if (List_Nbr(yyvsp[-1].l) == JacobianCase_S.NbrParameters) { if (JacobianCase_S.NbrParameters) { JacobianCase_S.Para = (double *)Malloc(JacobianCase_S.NbrParameters * sizeof(double)) ; for (i = 0 ; i < JacobianCase_S.NbrParameters ; i++) List_Read(yyvsp[-1].l, i, &JacobianCase_S.Para[i]) ; } } else vyyerror("Wrong number of parameters for Jacobian '%s' (%d instead of %d)", yyvsp[-2].c, List_Nbr(yyvsp[-1].l), JacobianCase_S.NbrParameters) ; } else{ vyyerror("Unknown type of Jacobian: %s", yyvsp[-2].c); Get_Valid_SXD1N(Jacobian_Type); } Free(yyvsp[-2].c); List_Delete(yyvsp[-1].l); ; break;} case 180: #line 1658 "GetDP.y" { if (!Problem_S.IntegrationMethod) Problem_S.IntegrationMethod = List_Create(5, 5, sizeof(struct IntegrationMethod)) ; ; break;} case 181: #line 1664 "GetDP.y" { List_Add(Problem_S.IntegrationMethod, &IntegrationMethod_S) ; ; break;} case 182: #line 1671 "GetDP.y" { IntegrationMethod_S.Name = NULL ; IntegrationMethod_S.IntegrationCase = NULL ; IntegrationMethod_S.CriterionIndex = -1 ; ; break;} case 184: #line 1684 "GetDP.y" { Check_NameOfStructNotExist("IntegrationMethod", Problem_S.IntegrationMethod, yyvsp[-1].c, fcmp_IntegrationMethod_Name) ; IntegrationMethod_S.Name = yyvsp[-1].c ; ; break;} case 185: #line 1691 "GetDP.y" { IntegrationMethod_S.CriterionIndex = yyvsp[-1].i ; ; break;} case 186: #line 1694 "GetDP.y" { IntegrationMethod_S.IntegrationCase = yyvsp[-1].l ; ; break;} case 187: #line 1701 "GetDP.y" { yyval.l = List_Create(5, 5, sizeof (struct IntegrationCase)) ; ; break;} case 188: #line 1704 "GetDP.y" { List_Add(yyval.l = yyvsp[-3].l, &IntegrationCase_S) ; ; break;} case 189: #line 1711 "GetDP.y" { IntegrationCase_S.Type = GAUSS ; IntegrationCase_S.SubType = STANDARD ; ; break;} case 191: #line 1723 "GetDP.y" { IntegrationCase_S.Type = Get_DefineForString(Integration_Type, yyvsp[-1].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of Integration method: %s", yyvsp[-1].c); Get_Valid_SXD(Integration_Type); } Free(yyvsp[-1].c) ; ; break;} case 192: #line 1733 "GetDP.y" { IntegrationCase_S.SubType = Get_DefineForString(Integration_SubType, yyvsp[-1].c, &FlagError) ; if (FlagError){ vyyerror("Unknown subtype of Integration method: %s", yyvsp[-1].c); Get_Valid_SXD(Integration_Type); } Free(yyvsp[-1].c) ; ; break;} case 193: #line 1743 "GetDP.y" { IntegrationCase_S.Case = yyvsp[-1].l ; ; break;} case 194: #line 1750 "GetDP.y" { yyval.l = List_Create(5, 5, sizeof (struct Quadrature)) ; ; break;} case 195: #line 1753 "GetDP.y" { List_Add(yyval.l = yyvsp[-3].l, &QuadratureCase_S) ; ; break;} case 196: #line 1760 "GetDP.y" { QuadratureCase_S.ElementType = TRIANGLE ; QuadratureCase_S.NumberOfPoints = 4 ; QuadratureCase_S.MaxNumberOfPoints = 4 ; QuadratureCase_S.NumberOfDivisions = 1 ; QuadratureCase_S.MaxNumberOfDivisions = 1 ; QuadratureCase_S.StoppingCriterion = 1.E-4 ; QuadratureCase_S.Function = (void (*)())Gauss_Triangle ; ; break;} case 198: #line 1776 "GetDP.y" { QuadratureCase_S.ElementType = Get_DefineForString(Element_Type, yyvsp[-1].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of Element: %s", yyvsp[-1].c); Get_Valid_SXD(Element_Type); } switch(IntegrationCase_S.SubType) { case STANDARD : switch (IntegrationCase_S.Type) { case GAUSS : Get_FunctionForDefine (FunctionForGauss, QuadratureCase_S.ElementType, &FlagError, (void (**)())&QuadratureCase_S.Function) ; break ; case GAUSSLEGENDRE : Get_FunctionForDefine (FunctionForGaussLegendre, QuadratureCase_S.ElementType, &FlagError, (void (**)())&QuadratureCase_S.Function) ; break ; default : vyyerror("Incompatible type of Integration method") ; break ; } break ; case SINGULAR : switch (IntegrationCase_S.Type) { case GAUSS : Get_FunctionForDefine (FunctionForSingularGauss, QuadratureCase_S.ElementType, &FlagError, (void (**)())&QuadratureCase_S.Function) ; break ; default : vyyerror("Incompatible type of Integration method") ; break ; } break ; default : vyyerror("Incompatible type of Integration method") ; break ; } if (FlagError) vyyerror("Bad type of Integration method for Element: %s", yyvsp[-1].c) ; Free(yyvsp[-1].c) ; ; break;} case 199: #line 1824 "GetDP.y" { QuadratureCase_S.NumberOfPoints = (int)yyvsp[-1].d ; ; break;} case 200: #line 1827 "GetDP.y" { QuadratureCase_S.MaxNumberOfPoints = (int)yyvsp[-1].d ; ; break;} case 201: #line 1830 "GetDP.y" { QuadratureCase_S.NumberOfDivisions = (int)yyvsp[-1].d ; ; break;} case 202: #line 1833 "GetDP.y" { QuadratureCase_S.MaxNumberOfDivisions = (int)yyvsp[-1].d ; ; break;} case 203: #line 1836 "GetDP.y" { QuadratureCase_S.StoppingCriterion = yyvsp[-1].d ; ; break;} case 204: #line 1847 "GetDP.y" { if (!Problem_S.Constraint) Problem_S.Constraint = List_Create(20, 20, sizeof (struct Constraint) ) ; ; break;} case 206: #line 1857 "GetDP.y" { List_Add(Problem_S.Constraint, &Constraint_S) ; ; break;} case 209: #line 1869 "GetDP.y" { Constraint_S.Name = NULL ; Constraint_S.Type = ASSIGN ; Constraint_S.ConstraintPerRegion = NULL ; Constraint_S.MultiConstraintPerRegion = NULL ; ; break;} case 211: #line 1882 "GetDP.y" { Check_NameOfStructNotExist("Constraint", Problem_S.Constraint, yyvsp[-1].c, fcmp_Constraint_Name) ; Constraint_S.Name = yyvsp[-1].c ; ; break;} case 212: #line 1889 "GetDP.y" { yyerror("Multi-fields {#.} are not used anymore. Use Loops For ... EndFor"); Check_NameOfStructNotExist("Constraint", Problem_S.Constraint, yyvsp[-2].c, fcmp_Constraint_Name) ; Constraint_S.Name = yyvsp[-2].c ; ; break;} case 213: #line 1897 "GetDP.y" { Constraint_S.Type = Get_DefineForString(Constraint_Type, yyvsp[-1].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of Constraint: %s", yyvsp[-1].c); Get_Valid_SXD(Constraint_Type); } Free(yyvsp[-1].c) ; ; break;} case 214: #line 1906 "GetDP.y" { Constraint_S.ConstraintPerRegion = yyvsp[-1].l ; ; break;} case 215: #line 1909 "GetDP.y" { if (!Constraint_S.MultiConstraintPerRegion) Constraint_S.MultiConstraintPerRegion = List_Create( 5, 5, sizeof(struct MultiConstraintPerRegion)) ; MultiConstraintPerRegion_S.Name = yyvsp[-3].c ; MultiConstraintPerRegion_S.ConstraintPerRegion = yyvsp[-1].l ; MultiConstraintPerRegion_S.Active = NULL ; List_Add(Constraint_S.MultiConstraintPerRegion, &MultiConstraintPerRegion_S) ; ; break;} case 216: #line 1927 "GetDP.y" { yyval.l = List_Create(6, 6, sizeof (struct ConstraintPerRegion)) ; ; break;} case 217: #line 1932 "GetDP.y" { List_Add(yyval.l = yyvsp[-3].l, &ConstraintPerRegion_S) ; ; break;} case 218: #line 1937 "GetDP.y" { yyval.l = yyvsp[-1].l ; ; break;} case 219: #line 1946 "GetDP.y" { ConstraintPerRegion_S.Type = Constraint_S.Type ; ConstraintPerRegion_S.RegionIndex = -1 ; ConstraintPerRegion_S.SubRegionIndex = -1 ; ConstraintPerRegion_S.TimeFunctionIndex = -1 ; ; break;} case 221: #line 1960 "GetDP.y" { ConstraintPerRegion_S.Type = Get_DefineForString(Constraint_Type, yyvsp[-1].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of Constraint: %s", yyvsp[-1].c); Get_Valid_SXD(Constraint_Type); } Free(yyvsp[-1].c) ; ; break;} case 222: #line 1970 "GetDP.y" { ConstraintPerRegion_S.RegionIndex = Num_Group(&Group_S, "CO_Region", yyvsp[-1].i) ; ; break;} case 223: #line 1975 "GetDP.y" { ConstraintPerRegion_S.SubRegionIndex = Num_Group(&Group_S, "CO_SubRegion", yyvsp[-1].i) ; ; break;} case 224: #line 1981 "GetDP.y" { ConstraintPerRegion_S.TimeFunctionIndex = yyvsp[-1].i ; ; break;} case 225: #line 1986 "GetDP.y" { if (ConstraintPerRegion_S.Type == ASSIGN || ConstraintPerRegion_S.Type == INIT) ConstraintPerRegion_S.Case.Fixed.ExpressionIndex = yyvsp[-1].i ; else vyyerror("Value incompatible with Type") ; ; break;} case 226: #line 1994 "GetDP.y" { if (ConstraintPerRegion_S.Type == ASSIGNFROMRESOLUTION || ConstraintPerRegion_S.Type == INITFROMRESOLUTION) ConstraintPerRegion_S.Case.Solve.ResolutionName = yyvsp[-1].c ; else vyyerror("NameOfResolution incompatible with Type") ; ; break;} case 227: #line 2002 "GetDP.y" { if (ConstraintPerRegion_S.Type == NETWORK) { ConstraintPerRegion_S.Case.Network.Node1 = (int)yyvsp[-4].d ; ConstraintPerRegion_S.Case.Network.Node2 = (int)yyvsp[-2].d ; } else vyyerror("Branch incompatible with Type") ; ; break;} case 228: #line 2011 "GetDP.y" { if (ConstraintPerRegion_S.Type == CST_LINK || ConstraintPerRegion_S.Type == CST_LINKCPLX) { ConstraintPerRegion_S.Case.Link.RegionRefIndex = Num_Group(&Group_S, "CO_RegionRef", yyvsp[-1].i) ; ConstraintPerRegion_S.Case.Link.SubRegionRefIndex = -1 ; ConstraintPerRegion_S.Case.Link.FilterIndex = -1 ; ConstraintPerRegion_S.Case.Link.FunctionIndex = -1 ; ConstraintPerRegion_S.Case.Link.CoefIndex = -1 ; ConstraintPerRegion_S.Case.Link.FilterIndex2 = -1 ; ConstraintPerRegion_S.Case.Link.FunctionIndex2 = -1 ; ConstraintPerRegion_S.Case.Link.CoefIndex2 = -1 ; } else vyyerror("RegionRef incompatible with Type") ; ; break;} case 229: #line 2029 "GetDP.y" { if (ConstraintPerRegion_S.Type == CST_LINK || ConstraintPerRegion_S.Type == CST_LINKCPLX) ConstraintPerRegion_S.Case.Link.SubRegionRefIndex = Num_Group(&Group_S, "CO_RegionRef", yyvsp[-1].i) ; else vyyerror("SubRegionRef incompatible with Type") ; ; break;} case 230: #line 2038 "GetDP.y" { if (ConstraintPerRegion_S.Type == CST_LINK || ConstraintPerRegion_S.Type == CST_LINKCPLX) ConstraintPerRegion_S.Case.Link.FunctionIndex = yyvsp[-1].i ; else vyyerror("Function incompatible with Type") ; ; break;} case 231: #line 2046 "GetDP.y" { if (ConstraintPerRegion_S.Type == CST_LINK || ConstraintPerRegion_S.Type == CST_LINKCPLX) ConstraintPerRegion_S.Case.Link.CoefIndex = yyvsp[-1].i ; else vyyerror("Coefficient incompatible with Type") ; ; break;} case 232: #line 2054 "GetDP.y" { if (ConstraintPerRegion_S.Type == CST_LINK || ConstraintPerRegion_S.Type == CST_LINKCPLX) { ConstraintPerRegion_S.Case.Link.FilterIndex = yyvsp[-1].i ; ConstraintPerRegion_S.Case.Link.FilterIndex2 = -1 ; } else vyyerror("Filter incompatible with Type") ; ; break;} case 233: #line 2064 "GetDP.y" { if (ConstraintPerRegion_S.Type == CST_LINK || ConstraintPerRegion_S.Type == CST_LINKCPLX) { ConstraintPerRegion_S.Case.Link.FunctionIndex = yyvsp[-4].i ; ConstraintPerRegion_S.Case.Link.FunctionIndex2 = yyvsp[-2].i ; } else vyyerror("Function incompatible with Type") ; ; break;} case 234: #line 2074 "GetDP.y" { if (ConstraintPerRegion_S.Type == CST_LINK || ConstraintPerRegion_S.Type == CST_LINKCPLX) { ConstraintPerRegion_S.Case.Link.CoefIndex = yyvsp[-4].i ; ConstraintPerRegion_S.Case.Link.CoefIndex2 = yyvsp[-2].i ; } else vyyerror("Coefficient incompatible with Type") ; ; break;} case 235: #line 2084 "GetDP.y" { if (ConstraintPerRegion_S.Type == CST_LINK || ConstraintPerRegion_S.Type == CST_LINKCPLX) { ConstraintPerRegion_S.Case.Link.FilterIndex = yyvsp[-4].i ; ConstraintPerRegion_S.Case.Link.FilterIndex2 = yyvsp[-2].i ; } else vyyerror("Filter incompatible with Type") ; ; break;} case 236: #line 2104 "GetDP.y" { if (!Problem_S.FunctionSpace) Problem_S.FunctionSpace = List_Create(10, 5, sizeof (struct FunctionSpace) ) ; ; break;} case 238: #line 2115 "GetDP.y" { List_Add(Problem_S.FunctionSpace, &FunctionSpace_S) ; ; break;} case 241: #line 2128 "GetDP.y" { FunctionSpace_S.Name = NULL ; FunctionSpace_S.Type = FORM0 ; FunctionSpace_S.BasisFunction = FunctionSpace_S.SubSpace = FunctionSpace_S.GlobalQuantity = FunctionSpace_S.Constraint = NULL ; ; break;} case 243: #line 2140 "GetDP.y" { Check_NameOfStructNotExist("FunctionSpace", Problem_S.FunctionSpace, yyvsp[-1].c, fcmp_FunctionSpace_Name) ; FunctionSpace_S.Name = yyvsp[-1].c ; ; break;} case 244: #line 2147 "GetDP.y" { yyerror("Multi-fields {#.} are not used anymore. Use Loops For ... EndFor"); Check_NameOfStructNotExist("FunctionSpace", Problem_S.FunctionSpace, yyvsp[-2].c, fcmp_FunctionSpace_Name) ; FunctionSpace_S.Name = yyvsp[-2].c ; ; break;} case 245: #line 2155 "GetDP.y" { FunctionSpace_S.Type = Get_DefineForString(Field_Type, yyvsp[-1].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of FunctionSpace: %s", yyvsp[-1].c); Get_Valid_SXD(Field_Type); } Free(yyvsp[-1].c) ; ; break;} case 246: #line 2164 "GetDP.y" { FunctionSpace_S.BasisFunction = yyvsp[-1].l ; ; break;} case 247: #line 2167 "GetDP.y" { FunctionSpace_S.SubSpace = yyvsp[-1].l ; ; break;} case 248: #line 2170 "GetDP.y" { FunctionSpace_S.GlobalQuantity = yyvsp[-1].l ; ; break;} case 249: #line 2173 "GetDP.y" { FunctionSpace_S.Constraint = yyvsp[-1].l ; ; break;} case 250: #line 2180 "GetDP.y" { yyval.l = Current_BasisFunction_L = List_Create(6, 6, sizeof (struct BasisFunction)) ; ; break;} case 251: #line 2186 "GetDP.y" { if ( (i = List_ISearchSeq(yyvsp[-3].l, BasisFunction_S.Name, fcmp_BasisFunction_Name)) < 0 ) { /* BasisFunction_S.Num = Num_BasisFunction++ ; */ BasisFunction_S.Num = Num_BasisFunction ; Num_BasisFunction += (BasisFunction_S.SubFunction)? List_Nbr(BasisFunction_S.SubFunction) : 1 ; } else /* BasisFunction definie par morceaux => meme Num */ BasisFunction_S.Num = ((struct BasisFunction *)List_Pointer(yyvsp[-3].l, i))->Num ; List_Add(yyval.l = yyvsp[-3].l, &BasisFunction_S) ; ; break;} case 252: #line 2203 "GetDP.y" { yyval.l = yyvsp[-1].l ; ; break;} case 253: #line 2212 "GetDP.y" { BasisFunction_S.Name = NULL ; BasisFunction_S.NameOfCoef = NULL ; BasisFunction_S.Num = 0 ; BasisFunction_S.GlobalBasisFunction = NULL ; BasisFunction_S.Function = NULL ; BasisFunction_S.dFunction = NULL ; BasisFunction_S.dInvFunction = NULL ; BasisFunction_S.SubFunction = NULL ; BasisFunction_S.SubdFunction = NULL ; BasisFunction_S.SupportIndex = -1 ; BasisFunction_S.EntityIndex = -1 ; ; break;} case 255: #line 2233 "GetDP.y" { BasisFunction_S.Name = yyvsp[-1].c ; ; break;} case 256: #line 2236 "GetDP.y" { Check_NameOfStructNotExist("NameOfCoef", Current_BasisFunction_L, yyvsp[-1].c, fcmp_BasisFunction_NameOfCoef) ; BasisFunction_S.NameOfCoef = yyvsp[-1].c ; BasisFunction_S.Dimension = 1 ; ; break;} case 257: #line 2241 "GetDP.y" { Check_NameOfStructNotExist("NameOfCoef", Current_BasisFunction_L, yyvsp[-2].c, fcmp_BasisFunction_NameOfCoef) ; BasisFunction_S.NameOfCoef = yyvsp[-2].c ; BasisFunction_S.Dimension = yyvsp[-1].i ; ; break;} case 258: #line 2246 "GetDP.y" { Get_3Function2NbrForString (BF_Function, yyvsp[-2].c, &FlagError, &BasisFunction_S.Function, &BasisFunction_S.dFunction, &BasisFunction_S.dInvFunction, &BasisFunction_S.Order, &BasisFunction_S.ElementType) ; if (FlagError){ vyyerror("Unknown Function for BasisFunction: %s", yyvsp[-2].c); Get_Valid_SX3F2N(BF_Function); } Free(yyvsp[-2].c) ; ; break;} case 259: #line 2260 "GetDP.y" { Get_3Function2NbrForString (BF_Function, yyvsp[-4].c, &FlagError, &BasisFunction_S.dFunction, &FunctionDummy, &FunctionDummy, &d, &i) ; if (FlagError){ vyyerror("Unknown dFunction (1) for BasisFunction: %s", yyvsp[-4].c); Get_Valid_SX3F2N(BF_Function); } Free(yyvsp[-4].c) ; Get_3Function2NbrForString (BF_Function, yyvsp[-2].c, &FlagError, &BasisFunction_S.dInvFunction, &FunctionDummy, &FunctionDummy, &d, &i) ; if (FlagError){ vyyerror("Unknown dFunction (2) for BasisFunction: %s", yyvsp[-2].c); Get_Valid_SX3F2N(BF_Function); } Free(yyvsp[-2].c) ; ; break;} case 260: #line 2280 "GetDP.y" { BasisFunction_S.SubFunction = List_Copy(ListOfInt_L); ; break;} case 261: #line 2285 "GetDP.y" { BasisFunction_S.SubdFunction = List_Copy(ListOfInt_L); ; break;} case 262: #line 2290 "GetDP.y" { BasisFunction_S.SupportIndex = Num_Group(&Group_S, "BF_Support", yyvsp[-1].i) ; ; break;} case 263: #line 2295 "GetDP.y" { BasisFunction_S.EntityIndex = Num_Group(&Group_S, "BF_Entity", yyvsp[-1].i) ; if (Group_S.InitialList) List_Sort(Group_S.InitialList, fcmp_int) ; /* Needed for Global Region */ if (BasisFunction_S.GlobalBasisFunction) { /* Function to be defined before Entity */ if (Group_S.FunctionType == GLOBAL) { if (List_Nbr(BasisFunction_S.GlobalBasisFunction) == List_Nbr(Group_S.InitialList)) { for (k = 0 ; k < List_Nbr(Group_S.InitialList) ; k++) if (*((int*)List_Pointer(Group_S.InitialList, k)) != *((int*)List_Pointer(BasisFunction_S.GlobalBasisFunction, k))) { vyyerror("Bad correspondance between Group and Entity (elements differ)") ; break ; } } else if (List_Nbr(Group_S.InitialList) != 0 || GlobalBasisFunction_S.EntityIndex != -1) vyyerror("Bad correspondance between Group and Entity (#BF %d, #Global %d)", List_Nbr(BasisFunction_S.GlobalBasisFunction), List_Nbr(Group_S.InitialList)) ; } else vyyerror("Bad correspondance between Group and Entity (Entity must be Global)") ; } ; break;} case 265: #line 2329 "GetDP.y" { Nbr_Index = yyvsp[-1].i ; ; break;} case 266: #line 2333 "GetDP.y" { Flag1 = Flag_MultipleIndex; if (Flag_MultipleIndex) Msg(WARNING, "Old way to define Group, remove \'{}\' to use one Group"); /* Will be the new way to define Group if (!Flag_MultipleIndex) vyyerror("Multiple Group needed for multiple Formulation: %s {}", $6) ; */ ; break;} case 267: #line 2343 "GetDP.y" { if (!Flag_MultipleIndex) vyyerror("Multiple Resolution needed for multiple Formulation: %s {}", yyvsp[-12].c) ; BasisFunction_S.GlobalBasisFunction = List_Create(yyvsp[-11].i, 1, sizeof(struct GlobalBasisFunction)) ; for (k = 0 ; k < yyvsp[-11].i ; k++) { if (!Flag1) { /* New way: only one group with all the single regions is given */ List_Read(Group_S.InitialList, k, &i) ; GlobalBasisFunction_S.EntityIndex = i ; } else { /* Old way */ List_Read(ListOfInt_L, k, &i) ; List_Read(Problem_S.Group, i, &Group_S) ; if (List_Nbr(Group_S.InitialList) == 1) { List_Read(Group_S.InitialList, 0, &i) ; GlobalBasisFunction_S.EntityIndex = i ; } else if (List_Nbr(Group_S.InitialList) == 0) { GlobalBasisFunction_S.EntityIndex = -1 ; } else vyyerror("Only one Region needed in Group: %s", Group_S.Name) ; } sprintf(tmpstr, "%s_%d", yyvsp[-12].c, k+1) ; if ((i = List_ISearchSeq(Problem_S.Formulation, tmpstr, fcmp_Formulation_Name)) >= 0) { GlobalBasisFunction_S.FormulationIndex = i ; List_Read(Problem_S.Formulation, i, &Formulation_S) ; if ((i = List_ISearchSeq(Formulation_S.DefineQuantity, yyvsp[-15].c, fcmp_DefineQuantity_Name)) >= 0) GlobalBasisFunction_S.DefineQuantityIndex = i ; else { vyyerror("Unknown Quantity '%s' in Formulation '%s'", yyvsp[-15].c, Formulation_S.Name) ; break ; } } else vyyerror("Unknown Formulation: %s {%d}", yyvsp[-12].c, k+1) ; sprintf(tmpstr, "%s_%d", yyvsp[-3].c, k+1) ; if ((i = List_ISearchSeq(Problem_S.Resolution, tmpstr, fcmp_Resolution_Name)) >= 0) GlobalBasisFunction_S.ResolutionIndex = i ; else vyyerror("Unknown Resolution: %s {%d}", yyvsp[-3].c, k+1) ; GlobalBasisFunction_S.QuantityStorage = NULL ; List_Add(BasisFunction_S.GlobalBasisFunction, &GlobalBasisFunction_S) ; } List_Sort(BasisFunction_S.GlobalBasisFunction, fcmp_int) ; Free(yyvsp[-15].c) ; Free(yyvsp[-12].c) ; Free(yyvsp[-3].c) ; ; break;} case 268: #line 2407 "GetDP.y" { yyval.l = Current_SubSpace_L = List_Create(6, 6, sizeof (struct SubSpace)) ; ; break;} case 269: #line 2413 "GetDP.y" { List_Add(yyval.l = yyvsp[-3].l, &SubSpace_S) ; ; break;} case 270: #line 2422 "GetDP.y" { SubSpace_S.Name = NULL ; SubSpace_S.BasisFunction = NULL ; ; break;} case 272: #line 2433 "GetDP.y" { Check_NameOfStructNotExist("SubSpace", Current_SubSpace_L, yyvsp[-1].c, fcmp_SubSpace_Name) ; SubSpace_S.Name = yyvsp[-1].c ; ; break;} case 273: #line 2440 "GetDP.y" { SubSpace_S.BasisFunction = yyvsp[-1].l ; ; break;} case 274: #line 2443 "GetDP.y" { SubSpace_S.BasisFunction = yyvsp[-1].l ; ; break;} case 275: #line 2450 "GetDP.y" { yyval.l = List_Create(1, 1, sizeof(int)) ; if ((i = List_ISearchSeq(Current_BasisFunction_L, yyvsp[0].c, fcmp_BasisFunction_Name)) < 0) vyyerror("Unknown BasisFunction: %s", yyvsp[0].c) ; else { List_Add(yyval.l, &i) ; j = i+1 ; while ((i = List_ISearchSeqPartial(Current_BasisFunction_L, yyvsp[0].c, j, fcmp_BasisFunction_Name)) >= 0) { List_Add(yyval.l, &i) ; j = i+1 ; /* for piecewise defined basis functions */ } } Free(yyvsp[0].c) ; ; break;} case 276: #line 2466 "GetDP.y" { yyval.l = yyvsp[-1].l ; ; break;} case 277: #line 2472 "GetDP.y" { yyval.l = List_Create(5, 5, sizeof(int)) ; ; break;} case 278: #line 2475 "GetDP.y" { if ((i = List_ISearchSeq(Current_BasisFunction_L, yyvsp[0].c, fcmp_BasisFunction_Name)) < 0) vyyerror("Unknown BasisFunction: %s", yyvsp[0].c) ; else { List_Add(yyvsp[-2].l, &i) ; j = i+1 ; while ((i = List_ISearchSeqPartial(Current_BasisFunction_L, yyvsp[0].c, j, fcmp_BasisFunction_Name)) >= 0) { List_Add(yyvsp[-2].l, &i) ; j = i+1 ; /* for piecewise defined basis functions */ } } yyval.l = yyvsp[-2].l ; Free(yyvsp[0].c) ; ; break;} case 279: #line 2494 "GetDP.y" { yyval.l = List_Create(1, 1, sizeof(int)) ; if ((i = List_ISearchSeq(Current_BasisFunction_L, yyvsp[0].c, fcmp_BasisFunction_NameOfCoef)) < 0) vyyerror("Unknown BasisFunctionCoef: %s", yyvsp[0].c) ; else { List_Add(yyval.l, &i) ; j = i+1 ; } Free(yyvsp[0].c) ; ; break;} case 280: #line 2506 "GetDP.y" { yyval.l = yyvsp[-1].l ; ; break;} case 281: #line 2513 "GetDP.y" { yyval.l = List_Create(5, 5, sizeof(int)) ; ; break;} case 282: #line 2518 "GetDP.y" { if ((i = List_ISearchSeq(Current_BasisFunction_L, yyvsp[0].c, fcmp_BasisFunction_NameOfCoef)) < 0) vyyerror("Unknown BasisFunctionCoef: %s", yyvsp[0].c) ; else { List_Add(yyvsp[-2].l, &i) ; j = i+1 ; } yyval.l = yyvsp[-2].l ; Free(yyvsp[0].c) ; ; break;} case 283: #line 2533 "GetDP.y" { yyval.l = Current_GlobalQuantity_L = List_Create(6, 6, sizeof (struct GlobalQuantity)) ; ; break;} case 284: #line 2539 "GetDP.y" { GlobalQuantity_S.Num = Num_BasisFunction++ ; List_Add(yyval.l = yyvsp[-3].l, &GlobalQuantity_S) ; ; break;} case 285: #line 2549 "GetDP.y" { GlobalQuantity_S.Name = NULL ; GlobalQuantity_S.Num = 0 ; GlobalQuantity_S.Type = ALIASOF ; GlobalQuantity_S.ReferenceIndex = -1 ; ; break;} case 287: #line 2561 "GetDP.y" { Check_NameOfStructNotExist("GlobalQuantity", Current_GlobalQuantity_L, yyvsp[-1].c, fcmp_GlobalQuantity_Name) ; GlobalQuantity_S.Name = yyvsp[-1].c ; ; break;} case 288: #line 2568 "GetDP.y" { GlobalQuantity_S.Type = Get_DefineForString(GlobalQuantity_Type, yyvsp[-1].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of GlobalQuantity: %s", yyvsp[-1].c); Get_Valid_SXD(GlobalQuantity_Type); } Free(yyvsp[-1].c) ; ; break;} case 289: #line 2579 "GetDP.y" { if ((i = List_ISearchSeq(FunctionSpace_S.BasisFunction, yyvsp[-1].c, fcmp_BasisFunction_NameOfCoef)) < 0) vyyerror("Unknown NameOfCoef: %s", yyvsp[-1].c) ; else GlobalQuantity_S.ReferenceIndex = i ; Free(yyvsp[-1].c) ; ; break;} case 290: #line 2593 "GetDP.y" { yyval.l = List_Create(6, 6, sizeof (struct ConstraintInFS)) ; ; break;} case 291: #line 2598 "GetDP.y" { Group_S.FunctionType = Type_Function ; Group_S.SuppListType = Type_SuppList ; switch (Group_S.FunctionType) { case ELEMENTSOF : Group_S.Type = ELEMENTLIST ; break ; default : Group_S.Type = REGIONLIST ; break ; } if (Constraint_Index >= 0) { Constraint_P = (struct Constraint *) List_Pointer(Problem_S.Constraint, Constraint_Index) ; for (i = 0 ; i < List_Nbr(Constraint_P->ConstraintPerRegion) ; i++) { ConstraintPerRegion_P = (struct ConstraintPerRegion *) List_Pointer(Constraint_P->ConstraintPerRegion, i) ; if (ConstraintPerRegion_P->RegionIndex >= 0) { Group_S.InitialList = ((struct Group *) List_Pointer(Problem_S.Group, ConstraintPerRegion_P->RegionIndex)) ->InitialList ; Group_S.InitialSuppList = (ConstraintPerRegion_P->SubRegionIndex >= 0)? ((struct Group *) List_Pointer(Problem_S.Group, ConstraintPerRegion_P->SubRegionIndex)) ->InitialList : NULL ; ConstraintInFS_S.EntityIndex = Add_Group(&Group_S, "CO_Entity", 1, 0) ; ConstraintInFS_S.ConstraintPerRegion = ConstraintPerRegion_P ; List_Add(yyval.l = yyvsp[-3].l, &ConstraintInFS_S) ; } } } ; break;} case 292: #line 2635 "GetDP.y" { yyval.l = yyvsp[-1].l ; ; break;} case 293: #line 2644 "GetDP.y" { ConstraintInFS_S.QuantityType = LOCALQUANTITY ; ConstraintInFS_S.ReferenceIndex = -1 ; ConstraintInFS_S.EntityIndex = -1 ; ConstraintInFS_S.ConstraintPerRegion = NULL ; ConstraintInFS_S.Active.ResolutionIndex = -1 ; ConstraintInFS_S.Active.Active = NULL ; Constraint_Index = -1 ; ; break;} case 295: #line 2660 "GetDP.y" { if ((i = List_ISearchSeq(FunctionSpace_S.BasisFunction, yyvsp[-1].c, fcmp_BasisFunction_NameOfCoef)) < 0) { if ((i = List_ISearchSeq(FunctionSpace_S.GlobalQuantity, yyvsp[-1].c, fcmp_GlobalQuantity_Name)) < 0) vyyerror("Unknown NameOfCoef: %s", yyvsp[-1].c) ; else { ConstraintInFS_S.QuantityType = GLOBALQUANTITY ; ConstraintInFS_S.ReferenceIndex = i ; } } else { ConstraintInFS_S.QuantityType = LOCALQUANTITY ; ConstraintInFS_S.ReferenceIndex = i ; } Free(yyvsp[-1].c) ; ; break;} case 296: #line 2693 "GetDP.y" { Type_Function = yyvsp[-1].i ; ; break;} case 297: #line 2696 "GetDP.y" { Type_SuppList = yyvsp[-1].i ; ; break;} case 298: #line 2699 "GetDP.y" { Constraint_Index = List_ISearchSeq(Problem_S.Constraint, yyvsp[-1].c, fcmp_Constraint_Name) ; Free(yyvsp[-1].c) ; ; break;} case 299: #line 2714 "GetDP.y" { if (!Problem_S.Formulation) Problem_S.Formulation = List_Create(10, 5, sizeof (struct Formulation)) ; ; break;} case 301: #line 2724 "GetDP.y" { List_Add(Problem_S.Formulation, &Formulation_S) ; ; break;} case 304: #line 2737 "GetDP.y" { Formulation_S.Name = NULL ; Formulation_S.Type = FEMEQUATION ; Formulation_S.DefineQuantity = NULL ; Formulation_S.Equation = NULL ; ; break;} case 306: #line 2748 "GetDP.y" { Check_NameOfStructNotExist("Formulation", Problem_S.Formulation, yyvsp[-1].c, fcmp_Formulation_Name) ; Formulation_S.Name = yyvsp[-1].c ; ; break;} case 307: #line 2755 "GetDP.y" { yyerror("Multi-fields {#.} are not used anymore. Use Loops For ... EndFor"); Check_NameOfStructNotExist("Formulation", Problem_S.Formulation, yyvsp[-2].c, fcmp_Formulation_Name) ; Formulation_S.Name = yyvsp[-2].c ; ; break;} case 308: #line 2763 "GetDP.y" { Formulation_S.Type = Get_DefineForString(Formulation_Type, yyvsp[-1].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of Formulation: %s", yyvsp[-1].c); Get_Valid_SXD(Formulation_Type); } Free(yyvsp[-1].c) ; ; break;} case 310: #line 2775 "GetDP.y" { Formulation_S.Equation = yyvsp[-1].l ; ; break;} case 311: #line 2781 "GetDP.y" { Formulation_S.DefineQuantity = List_Create(6, 6, sizeof (struct DefineQuantity)) ; ; break;} case 312: #line 2786 "GetDP.y" { List_Add(Formulation_S.DefineQuantity, &DefineQuantity_S) ; ; break;} case 314: #line 2797 "GetDP.y" { DefineQuantity_S.Name = NULL ; DefineQuantity_S.Type = LOCALQUANTITY ; DefineQuantity_S.IndexInFunctionSpace = NULL ; DefineQuantity_S.FunctionSpaceIndex = -1 ; DefineQuantity_S.DofDataIndex = -1 ; DefineQuantity_S.DofData = NULL ; DefineQuantity_S.DummyFrequency = NULL ; DefineQuantity_S.IntegralQuantity.InIndex = -1 ; DefineQuantity_S.IntegralQuantity.IntegrationMethodIndex = -1 ; DefineQuantity_S.IntegralQuantity.FMMIntegrationMethodIndex = -1 ; DefineQuantity_S.IntegralQuantity.JacobianMethodIndex = -1 ; DefineQuantity_S.IntegralQuantity.Symmetry = 0 ; DefineQuantity_S.IntegralQuantity.WholeQuantity = NULL ; ; break;} case 316: #line 2820 "GetDP.y" { DefineQuantity_S.Name = yyvsp[-1].c ; ; break;} case 317: #line 2823 "GetDP.y" { DefineQuantity_S.Type = GLOBALQUANTITY ; ; break;} case 318: #line 2827 "GetDP.y" { DefineQuantity_S.Type = INTEGRALQUANTITY ; ; break;} case 319: #line 2830 "GetDP.y" { DefineQuantity_S.Type = Get_DefineForString(DefineQuantity_Type, yyvsp[-1].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of Quantity: %s", yyvsp[-1].c); Get_Valid_SXD(DefineQuantity_Type); } Free(yyvsp[-1].c) ; ; break;} case 320: #line 2840 "GetDP.y" { DefineQuantity_S.DummyFrequency = yyvsp[-1].l; ; break;} case 321: #line 2844 "GetDP.y" { if ((i = List_ISearchSeq(Problem_S.FunctionSpace, yyvsp[0].c, fcmp_FunctionSpace_Name)) < 0) vyyerror("Unknown FunctionSpace: %s", yyvsp[0].c) ; else DefineQuantity_S.FunctionSpaceIndex = i ; ; break;} case 322: #line 2852 "GetDP.y" { if (DefineQuantity_S.FunctionSpaceIndex >= 0) { if (DefineQuantity_S.Type == GLOBALQUANTITY && !DefineQuantity_S.IndexInFunctionSpace) { if (DefineQuantity_S.Name) { List_Read(Problem_S.FunctionSpace, DefineQuantity_S.FunctionSpaceIndex, &FunctionSpace_S) ; if ((i = List_ISearchSeq(FunctionSpace_S.GlobalQuantity, DefineQuantity_S.Name, fcmp_GlobalQuantity_Name)) < 0) { vyyerror("Unknown GlobalQuantity: %s", DefineQuantity_S.Name) ; } else { DefineQuantity_S.IndexInFunctionSpace = List_Create(1, 1, sizeof(int)); List_Add(DefineQuantity_S.IndexInFunctionSpace, &i) ; } } else vyyerror("No Name pre-defined for GlobalQuantity") ; } } ; break;} case 323: #line 2876 "GetDP.y" { DefineQuantity_S.DofDataIndex = yyvsp[-1].i ; ; break;} case 324: #line 2881 "GetDP.y" { Current_DofIndexInWholeQuantity = -1 ; Current_NoDofIndexInWholeQuantity = -1 ; List_Reset(ListOfPointer_L) ; ; break;} case 325: #line 2887 "GetDP.y" { DefineQuantity_S.IntegralQuantity.WholeQuantity = yyvsp[-2].l ; DefineQuantity_S.IntegralQuantity.DofIndexInWholeQuantity = Current_DofIndexInWholeQuantity ; WholeQuantity_P = (struct WholeQuantity*) List_Pointer(DefineQuantity_S.IntegralQuantity.WholeQuantity, 0) ; /* Ce qui suit ne suffit pas : il faudrait aussi gerer des Quantity_def sans Dof */ if (Current_DofIndexInWholeQuantity >= 0) { DefineQuantity_S.IntegralQuantity.TypeOperatorDof = (WholeQuantity_P+Current_DofIndexInWholeQuantity)-> Case.OperatorAndQuantity.TypeOperator ; DefineQuantity_S.IntegralQuantity.DefineQuantityIndexDof = (WholeQuantity_P+Current_DofIndexInWholeQuantity)-> Case.OperatorAndQuantity.Index ; DefineQuantity_S.FunctionSpaceIndex = ((struct DefineQuantity*) List_Pointer(Formulation_S.DefineQuantity, DefineQuantity_S.IntegralQuantity.DefineQuantityIndexDof))-> FunctionSpaceIndex ; } else { /* No Dof{} */ DefineQuantity_S.IntegralQuantity.TypeOperatorDof = NOOP ; DefineQuantity_S.IntegralQuantity.DefineQuantityIndexDof = -1 ; } if (Current_NoDofIndexInWholeQuantity >= 0) { DefineQuantity_S.IntegralQuantity.DefineQuantityIndexNoDof = (WholeQuantity_P+Current_NoDofIndexInWholeQuantity)-> Case.OperatorAndQuantity.Index ; } else { /* No NoDof{} */ DefineQuantity_S.IntegralQuantity.DefineQuantityIndexNoDof = -1 ; } /* Check if the WholeQuantity is a Canonical Form */ DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_NONE ; if (List_Nbr(DefineQuantity_S.IntegralQuantity.WholeQuantity) == 1){ /* GF_FUNCTION */ if ( (WholeQuantity_P+0)->Type == WQ_BUILTINFUNCTION ) { Get_FunctionForFunction(GF_Function, (WholeQuantity_P+0)->Case.Function.Fct, &FlagError, &DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Fct); if (!FlagError){ DefineQuantity_S.IntegralQuantity.FunctionForCanonical.NbrParameters = (WholeQuantity_P+0)->Case.Function.NbrParameters ; DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Para = (WholeQuantity_P+0)->Case.Function.Para ; } DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_GF ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.Fct = (WholeQuantity_P+0)->Case.Function.Fct ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.NbrParameters = (WholeQuantity_P+0)->Case.Function.NbrParameters ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.Para = (WholeQuantity_P+0)->Case.Function.Para ; } } else if (List_Nbr(DefineQuantity_S.IntegralQuantity.WholeQuantity) == 3){ /* GF_FUNCTION OPER DOF */ if ( (WholeQuantity_P+0)->Type == WQ_BUILTINFUNCTION && (WholeQuantity_P+1)->Type == WQ_OPERATORANDQUANTITY && (WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR && Current_DofIndexInWholeQuantity == 1 ) { Get_FunctionForFunction(GF_Function, (WholeQuantity_P+0)->Case.Function.Fct, &FlagError, &DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Fct); if (!FlagError){ DefineQuantity_S.IntegralQuantity.FunctionForCanonical.NbrParameters = (WholeQuantity_P+0)->Case.Function.NbrParameters ; DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Para = (WholeQuantity_P+0)->Case.Function.Para ; } if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME) DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_GF_PSCA_DOF ; if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_CROSSPRODUCT) DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_GF_PVEC_DOF ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.Fct = (WholeQuantity_P+0)->Case.Function.Fct ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.NbrParameters = (WholeQuantity_P+0)->Case.Function.NbrParameters ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.Para = (WholeQuantity_P+0)->Case.Function.Para ; } /* DOF OPER GF_FUNCTION */ else if( (WholeQuantity_P+0)->Type == WQ_OPERATORANDQUANTITY && (WholeQuantity_P+1)->Type == WQ_BUILTINFUNCTION && (WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR && Current_DofIndexInWholeQuantity == 0 ) { Get_FunctionForFunction(GF_Function, (WholeQuantity_P+1)->Case.Function.Fct, &FlagError, &DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Fct); if (!FlagError){ DefineQuantity_S.IntegralQuantity.FunctionForCanonical.NbrParameters = (WholeQuantity_P+1)->Case.Function.NbrParameters ; DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Para = (WholeQuantity_P+1)->Case.Function.Para ; } if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME) DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_GF_PSCA_DOF ;/* Scalar Prod Transitive */ if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_CROSSPRODUCT) DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_DOF_PVEC_GF ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.Fct = (WholeQuantity_P+1)->Case.Function.Fct ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.NbrParameters = (WholeQuantity_P+1)->Case.Function.NbrParameters ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.Para = (WholeQuantity_P+1)->Case.Function.Para ; } /* GF_FUNCTION OPER EXPR */ else if( (WholeQuantity_P+0)->Type == WQ_BUILTINFUNCTION && (WholeQuantity_P+1)->Type == WQ_EXPRESSION && (WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR ) { Get_FunctionForFunction(GF_Function, (WholeQuantity_P+0)->Case.Function.Fct, &FlagError, &DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Fct); if (!FlagError){ DefineQuantity_S.IntegralQuantity.FunctionForCanonical.NbrParameters = (WholeQuantity_P+0)->Case.Function.NbrParameters ; DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Para = (WholeQuantity_P+0)->Case.Function.Para ; } DefineQuantity_S.IntegralQuantity.ExpressionIndexForCanonical = (WholeQuantity_P+1)->Case.Expression.Index ; if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME) DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_GF_PSCA_EXP ; if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_CROSSPRODUCT) DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_GF_PVEC_EXP ; /* DefineQuantity_S.IntegralQuantity.FunctionForCanonical.NbrParameters = (WholeQuantity_P+0)->Case.Function.NbrParameters ; DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Para = (WholeQuantity_P+0)->Case.Function.Para ; */ DefineQuantity_S.IntegralQuantity.FunctionForFMM.Fct = (WholeQuantity_P+0)->Case.Function.Fct ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.NbrParameters = (WholeQuantity_P+0)->Case.Function.NbrParameters ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.Para = (WholeQuantity_P+0)->Case.Function.Para ; } /* EXPR OPER GF_FUNCTION */ else if( (WholeQuantity_P+0)->Type == WQ_EXPRESSION && (WholeQuantity_P+1)->Type == WQ_BUILTINFUNCTION && (WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR ) { Get_FunctionForFunction(GF_Function, (WholeQuantity_P+1)->Case.Function.Fct, &FlagError, &DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Fct) ; if (!FlagError){ DefineQuantity_S.IntegralQuantity.FunctionForCanonical.NbrParameters = (WholeQuantity_P+1)->Case.Function.NbrParameters ; DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Para = (WholeQuantity_P+1)->Case.Function.Para ; } DefineQuantity_S.IntegralQuantity.ExpressionIndexForCanonical = (WholeQuantity_P+0)->Case.Expression.Index ; if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME) DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_GF_PSCA_EXP ;/* Transitive product */ if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_CROSSPRODUCT) DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_EXP_PVEC_GF ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.Fct = (WholeQuantity_P+1)->Case.Function.Fct ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.NbrParameters = (WholeQuantity_P+1)->Case.Function.NbrParameters ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.Para = (WholeQuantity_P+1)->Case.Function.Para ; } } else if (List_Nbr(DefineQuantity_S.IntegralQuantity.WholeQuantity) == 5){ /* EXPR OPER GF_FUNCTION OPER DOF */ if ( (WholeQuantity_P+0)->Type == WQ_EXPRESSION && (WholeQuantity_P+1)->Type == WQ_BUILTINFUNCTION && (WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR && (WholeQuantity_P+3)->Type == WQ_OPERATORANDQUANTITY && (WholeQuantity_P+4)->Type == WQ_BINARYOPERATOR && Current_DofIndexInWholeQuantity == 3 ) { Get_FunctionForFunction(GF_Function, (WholeQuantity_P+1)->Case.Function.Fct, &FlagError, &DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Fct); if (!FlagError){ DefineQuantity_S.IntegralQuantity.FunctionForCanonical.NbrParameters = (WholeQuantity_P+1)->Case.Function.NbrParameters ; DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Para = (WholeQuantity_P+1)->Case.Function.Para ; } DefineQuantity_S.IntegralQuantity.ExpressionIndexForCanonical = (WholeQuantity_P+0)->Case.Expression.Index ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.Fct = (WholeQuantity_P+1)->Case.Function.Fct ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.NbrParameters = (WholeQuantity_P+1)->Case.Function.NbrParameters ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.Para = (WholeQuantity_P+1)->Case.Function.Para ; if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME){ if((WholeQuantity_P+4)->Case.Operator.TypeOperator == OP_TIME) DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_EXP_TIME_GF_PSCA_DOF ; if((WholeQuantity_P+4)->Case.Operator.TypeOperator == OP_CROSSPRODUCT) DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_EXP_TIME_GF_PVEC_DOF ; } else if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_CROSSPRODUCT){ if((WholeQuantity_P+4)->Case.Operator.TypeOperator == OP_TIME) DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_EXP_PVEC_GF_PSCA_DOF ; if((WholeQuantity_P+4)->Case.Operator.TypeOperator == OP_CROSSPRODUCT) DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_EXP_PVEC_GF_PVEC_DOF ; } } /* FCT OPER GF_FUNCTION OPER DOF */ else if( (WholeQuantity_P+0)->Type == WQ_BUILTINFUNCTION && (WholeQuantity_P+1)->Type == WQ_BUILTINFUNCTION && (WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR && (WholeQuantity_P+3)->Type == WQ_OPERATORANDQUANTITY && (WholeQuantity_P+4)->Type == WQ_BINARYOPERATOR && Current_DofIndexInWholeQuantity == 3 ) { Get_FunctionForFunction(GF_Function, (WholeQuantity_P+1)->Case.Function.Fct, &FlagError, &DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Fct); if (!FlagError){ DefineQuantity_S.IntegralQuantity.FunctionForCanonical.NbrParameters = (WholeQuantity_P+1)->Case.Function.NbrParameters ; DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Para = (WholeQuantity_P+1)->Case.Function.Para ; } DefineQuantity_S.IntegralQuantity.AnyFunction.Fct = (WholeQuantity_P+0)->Case.Function.Fct ; DefineQuantity_S.IntegralQuantity.AnyFunction.NbrParameters = (WholeQuantity_P+0)->Case.Function.NbrParameters ; DefineQuantity_S.IntegralQuantity.AnyFunction.Para = (WholeQuantity_P+0)->Case.Function.Para ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.Fct = (WholeQuantity_P+1)->Case.Function.Fct ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.NbrParameters = (WholeQuantity_P+1)->Case.Function.NbrParameters ; DefineQuantity_S.IntegralQuantity.FunctionForFMM.Para = (WholeQuantity_P+1)->Case.Function.Para ; if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME){ if((WholeQuantity_P+4)->Case.Operator.TypeOperator == OP_TIME) DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_FCT_TIME_GF_PSCA_DOF ; if((WholeQuantity_P+4)->Case.Operator.TypeOperator == OP_CROSSPRODUCT) DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_FCT_TIME_GF_PVEC_DOF ; } else if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_CROSSPRODUCT){ if((WholeQuantity_P+4)->Case.Operator.TypeOperator == OP_TIME) DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_FCT_PVEC_GF_PSCA_DOF ; if((WholeQuantity_P+4)->Case.Operator.TypeOperator == OP_CROSSPRODUCT) DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_FCT_PVEC_GF_PVEC_DOF ; } } } Pro_DefineQuantityIndex (DefineQuantity_S.IntegralQuantity.WholeQuantity, -1, &DefineQuantity_S.IntegralQuantity.NbrQuantityIndex, &DefineQuantity_S.IntegralQuantity.QuantityIndexTable, &DefineQuantity_S.IntegralQuantity.QuantityTraceGroupIndexTable) ; if(DefineQuantity_S.IntegralQuantity.NbrQuantityIndex > 1) vyyerror("More than one LocalQuantity in IntegralQuantity"); ; break;} case 326: #line 3198 "GetDP.y" { DefineQuantity_S.IntegralQuantity.InIndex = Num_Group(&Group_S, "IQ_In", yyvsp[-1].i) ; ; break;} case 327: #line 3203 "GetDP.y" { if ((i = List_ISearchSeq(Problem_S.IntegrationMethod, yyvsp[-1].c, fcmp_IntegrationMethod_Name)) < 0) vyyerror("Unknown Integration method: %s", yyvsp[-1].c) ; else DefineQuantity_S.IntegralQuantity.IntegrationMethodIndex = i ; Free(yyvsp[-1].c) ; ; break;} case 328: #line 3212 "GetDP.y" { if ((i = List_ISearchSeq(Problem_S.IntegrationMethod, yyvsp[-1].c, fcmp_IntegrationMethod_Name)) < 0) vyyerror("Unknown Integration method: %s", yyvsp[-1].c) ; else DefineQuantity_S.IntegralQuantity.FMMIntegrationMethodIndex = i ; Free(yyvsp[-1].c) ; ; break;} case 329: #line 3221 "GetDP.y" { if ((i = List_ISearchSeq(Problem_S.JacobianMethod, yyvsp[-1].c, fcmp_JacobianMethod_Name)) < 0) vyyerror("Unknown Jacobian method: %s", yyvsp[-1].c) ; else DefineQuantity_S.IntegralQuantity.JacobianMethodIndex = i ; Free(yyvsp[-1].c) ; ; break;} case 330: #line 3230 "GetDP.y" { DefineQuantity_S.IntegralQuantity.Symmetry = yyvsp[-1].i ; ; break;} case 332: #line 3238 "GetDP.y" { if (DefineQuantity_S.FunctionSpaceIndex >= 0) { if (DefineQuantity_S.Type == LOCALQUANTITY) { if ((i = List_ISearchSeq (((struct FunctionSpace *) List_Pointer(Problem_S.FunctionSpace, DefineQuantity_S.FunctionSpaceIndex))->SubSpace, yyvsp[-1].c, fcmp_SubSpace_Name)) < 0) vyyerror("Unknown SubSpace: %s", yyvsp[-1].c) ; else { DefineQuantity_S.IndexInFunctionSpace = ((struct SubSpace *) List_Pointer (((struct FunctionSpace *) List_Pointer(Problem_S.FunctionSpace, DefineQuantity_S.FunctionSpaceIndex))->SubSpace, i)) ->BasisFunction ; } } else if (DefineQuantity_S.Type == GLOBALQUANTITY) { List_Read(Problem_S.FunctionSpace, DefineQuantity_S.FunctionSpaceIndex, &FunctionSpace_S) ; if ((i = List_ISearchSeq(FunctionSpace_S.GlobalQuantity, yyvsp[-1].c, fcmp_GlobalQuantity_Name)) < 0) { vyyerror("Unknown GlobalQuantity: %s", yyvsp[-1].c) ; } else { DefineQuantity_S.IndexInFunctionSpace = List_Create(1, 1, sizeof(int)); List_Add(DefineQuantity_S.IndexInFunctionSpace, &i) ; } } } Free(yyvsp[-1].c) ; ; break;} case 333: #line 3278 "GetDP.y" { yyval.l = List_Create(6, 6, sizeof(struct EquationTerm)) ; ; break;} case 334: #line 3283 "GetDP.y" { List_Add(yyval.l = yyvsp[-1].l, &EquationTerm_S) ; ; break;} case 335: #line 3288 "GetDP.y" { yyval.l = yyvsp[-1].l ; ; break;} case 336: #line 3293 "GetDP.y" { yyval.l = yyvsp[-1].l ; ; break;} case 337: #line 3302 "GetDP.y" { EquationTerm_S.Type = GALERKIN ; ; break;} case 338: #line 3305 "GetDP.y" { EquationTerm_S.Type = DERHAM ; ; break;} case 339: #line 3308 "GetDP.y" { EquationTerm_S.Type = GLOBALTERM ; ; break;} case 340: #line 3311 "GetDP.y" { EquationTerm_S.Type = GLOBALEQUATION ; ; break;} case 341: #line 3322 "GetDP.y" { EquationTerm_S.Case.GlobalEquation.Type = NETWORK ; EquationTerm_S.Case.GlobalEquation.ConstraintIndex = -1 ; EquationTerm_S.Case.GlobalEquation.GlobalEquationTerm = NULL ; ; break;} case 343: #line 3333 "GetDP.y" { EquationTerm_S.Case.GlobalEquation.Type = Get_DefineForString(Constraint_Type, yyvsp[-1].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of GlobalEquation: %s", yyvsp[-1].c); Get_Valid_SXD(Constraint_Type); } Free(yyvsp[-1].c) ; ; break;} case 344: #line 3343 "GetDP.y" { if ((i = List_ISearchSeq(Problem_S.Constraint, yyvsp[-1].c, fcmp_Constraint_Name)) >= 0) EquationTerm_S.Case.GlobalEquation.ConstraintIndex = i ; else EquationTerm_S.Case.GlobalEquation.ConstraintIndex = -1 ; Free(yyvsp[-1].c) ; ; break;} case 345: #line 3353 "GetDP.y" { if (!EquationTerm_S.Case.GlobalEquation.GlobalEquationTerm) EquationTerm_S.Case.GlobalEquation.GlobalEquationTerm = List_Create( 3, 3, sizeof(struct GlobalEquationTerm)) ; List_Add(EquationTerm_S.Case.GlobalEquation.GlobalEquationTerm, &GlobalEquationTerm_S) ; ; break;} case 346: #line 3367 "GetDP.y" { GlobalEquationTerm_S.DefineQuantityIndexNode = -1 ; GlobalEquationTerm_S.DefineQuantityIndexLoop = -1 ; GlobalEquationTerm_S.DefineQuantityIndexEqu = -1 ; GlobalEquationTerm_S.InIndex = -1 ; ; break;} case 348: #line 3379 "GetDP.y" { GlobalEquationTerm_S.DefineQuantityIndexNode = yyvsp[-1].t.Int2 ; ; break;} case 349: #line 3381 "GetDP.y" { GlobalEquationTerm_S.DefineQuantityIndexLoop = yyvsp[-1].t.Int2 ; ; break;} case 350: #line 3383 "GetDP.y" { GlobalEquationTerm_S.DefineQuantityIndexEqu = yyvsp[-1].t.Int2 ; ; break;} case 351: #line 3385 "GetDP.y" { GlobalEquationTerm_S.InIndex = Num_Group(&Group_S, "FO_In", yyvsp[-1].i) ; ; break;} case 352: #line 3393 "GetDP.y" { EquationTerm_S.Case.LocalTerm.Term.TypeTimeDerivative = NODT_ ; EquationTerm_S.Case.LocalTerm.Term.TypeOperatorEqu = NOOP ; EquationTerm_S.Case.LocalTerm.Term.TypeOperatorDof = NOOP ; EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexEqu = -1 ; EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexDof = -1 ; EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexNoDof = -1 ; EquationTerm_S.Case.LocalTerm.Term.WholeQuantity = NULL ; EquationTerm_S.Case.LocalTerm.Term.DofIndexInWholeQuantity = -1 ; EquationTerm_S.Case.LocalTerm.Term.DofInTrace = 0 ; EquationTerm_S.Case.LocalTerm.InIndex = -1 ; EquationTerm_S.Case.LocalTerm.IntegrationMethodIndex = -1 ; EquationTerm_S.Case.LocalTerm.FMMIntegrationMethodIndex = -1 ; EquationTerm_S.Case.LocalTerm.MatrixIndex = -1 ; EquationTerm_S.Case.LocalTerm.JacobianMethodIndex = -1 ; EquationTerm_S.Case.LocalTerm.Active = NULL ; EquationTerm_S.Case.LocalTerm.Full_Matrix = 0 ; ; break;} case 354: #line 3418 "GetDP.y" { EquationTerm_S.Case.LocalTerm.Term.TypeTimeDerivative = Type_TermOperator ; Current_DofIndexInWholeQuantity = -1 ; Current_NoDofIndexInWholeQuantity = -1 ; List_Reset(ListOfPointer_L) ; ; break;} case 355: #line 3426 "GetDP.y" { EquationTerm_S.Case.LocalTerm.Term.WholeQuantity = yyvsp[0].l ; EquationTerm_S.Case.LocalTerm.Term.DofIndexInWholeQuantity = Current_DofIndexInWholeQuantity ; WholeQuantity_P = (struct WholeQuantity*) List_Pointer(EquationTerm_S.Case.LocalTerm.Term.WholeQuantity, 0) ; if (Current_DofIndexInWholeQuantity == -4){ EquationTerm_S.Case.LocalTerm.Term.DofInTrace = 1 ; EquationTerm_S.Case.LocalTerm.Term.TypeOperatorDof = TypeOperatorDofInTrace ; EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexDof = DefineQuantityIndexDofInTrace ; } else if (Current_DofIndexInWholeQuantity >= 0) { EquationTerm_S.Case.LocalTerm.Term.TypeOperatorDof = (WholeQuantity_P+Current_DofIndexInWholeQuantity)-> Case.OperatorAndQuantity.TypeOperator ; EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexDof = (WholeQuantity_P+Current_DofIndexInWholeQuantity)-> Case.OperatorAndQuantity.Index ; } else { /* No Dof{} */ EquationTerm_S.Case.LocalTerm.Term.TypeOperatorDof = NOOP ; EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexDof = -1 ; } if (Current_NoDofIndexInWholeQuantity >= 0) { EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexNoDof = (WholeQuantity_P+Current_NoDofIndexInWholeQuantity)-> Case.OperatorAndQuantity.Index ; } else { /* No NoDof{} */ EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexNoDof = -1 ; } /* Check if the WholeQuantity is a Canonical Form of type 'expr[] * Dof{}'*/ if ((List_Nbr(EquationTerm_S.Case.LocalTerm.Term.WholeQuantity) == 3) && ((WholeQuantity_P+0)->Type == WQ_EXPRESSION) && ((WholeQuantity_P+1)->Type == WQ_OPERATORANDQUANTITY) && ((WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR) && ((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME) && (Current_DofIndexInWholeQuantity == 1)) { EquationTerm_S.Case.LocalTerm.Term.CanonicalWholeQuantity = CWQ_EXP_TIME_DOF ; EquationTerm_S.Case.LocalTerm.Term.ExpressionIndexForCanonical = (WholeQuantity_P+0)->Case.Expression.Index ; } else if ((List_Nbr(EquationTerm_S.Case.LocalTerm.Term.WholeQuantity) == 3) && ((WholeQuantity_P+0)->Type == WQ_BUILTINFUNCTION) && ((WholeQuantity_P+1)->Type == WQ_OPERATORANDQUANTITY) && ((WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR) && (Current_DofIndexInWholeQuantity == 1)) { if ((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME) EquationTerm_S.Case.LocalTerm.Term.CanonicalWholeQuantity = CWQ_FCT_TIME_DOF ; if ((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_CROSSPRODUCT) EquationTerm_S.Case.LocalTerm.Term.CanonicalWholeQuantity = CWQ_FCT_PVEC_DOF ; EquationTerm_S.Case.LocalTerm.Term.FunctionForCanonical.Fct = (WholeQuantity_P+0)->Case.Function.Fct ; EquationTerm_S.Case.LocalTerm.Term.FunctionForCanonical.NbrParameters = (WholeQuantity_P+0)->Case.Function.NbrParameters ; EquationTerm_S.Case.LocalTerm.Term.FunctionForCanonical.Para = (WholeQuantity_P+0)->Case.Function.Para ; } else if ((List_Nbr(EquationTerm_S.Case.LocalTerm.Term.WholeQuantity) == 1) && ((WholeQuantity_P+0)->Type == WQ_OPERATORANDQUANTITY) && (Current_DofIndexInWholeQuantity == 0)) { EquationTerm_S.Case.LocalTerm.Term.CanonicalWholeQuantity = CWQ_DOF ; } else { EquationTerm_S.Case.LocalTerm.Term.CanonicalWholeQuantity = CWQ_NONE ; } ; break;} case 356: #line 3505 "GetDP.y" { EquationTerm_S.Case.LocalTerm.Term.TypeOperatorEqu = Quantity_TypeOperator ; EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexEqu = Quantity_Index ; EquationTerm_S.Case.LocalTerm.Term.CanonicalWholeQuantity_Equ = CWQ_NONE ; WholeQuantity_P = (struct WholeQuantity*) List_Pointer(yyvsp[-2].l, 0) ; if (List_Nbr(yyvsp[-2].l) == 1){ if ((WholeQuantity_P+0)->Type != WQ_OPERATORANDQUANTITY) vyyerror("Missing Quantity in Equation"); } else if (List_Nbr(yyvsp[-2].l) == 3 && ( (WholeQuantity_P+0)->Type == WQ_EXPRESSION && (WholeQuantity_P+1)->Type == WQ_OPERATORANDQUANTITY && (WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR ) ) { EquationTerm_S.Case.LocalTerm.Term.CanonicalWholeQuantity_Equ = CWQ_EXP_TIME_DOF ; EquationTerm_S.Case.LocalTerm.Term.ExpressionIndexForCanonical_Equ = (WholeQuantity_P+0)->Case.Expression.Index ; EquationTerm_S.Case.LocalTerm.Term.OperatorTypeForCanonical_Equ = (WholeQuantity_P+2)->Case.Operator.TypeOperator ; } else{ vyyerror("Unrecognized quantity structure in Equation"); } Pro_DefineQuantityIndex (EquationTerm_S.Case.LocalTerm.Term.WholeQuantity, EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexEqu, &EquationTerm_S.Case.LocalTerm.Term.NbrQuantityIndex, &EquationTerm_S.Case.LocalTerm.Term.QuantityIndexTable, &EquationTerm_S.Case.LocalTerm.Term.QuantityTraceGroupIndexTable) ; EquationTerm_S.Case.LocalTerm.Term.QuantityIndexPost = 0 ; for (i = 0 ; i < EquationTerm_S.Case.LocalTerm.Term.NbrQuantityIndex ; i++) { if ((EquationTerm_S.Case.LocalTerm.Term.QuantityIndexTable[i] != EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexEqu) && (EquationTerm_S.Case.LocalTerm.Term.QuantityIndexTable[i] != EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexDof)) { EquationTerm_S.Case.LocalTerm.Term.QuantityIndexPost = 1 ; break ; } } ; break;} case 357: #line 3551 "GetDP.y" { EquationTerm_S.Case.LocalTerm.InIndex = Num_Group(&Group_S, "FO_In", yyvsp[-1].i) ; ; break;} case 358: #line 3556 "GetDP.y" { if ((i = List_ISearchSeq(Problem_S.JacobianMethod, yyvsp[-1].c, fcmp_JacobianMethod_Name)) < 0) vyyerror("Unknown Jacobian method: %s",yyvsp[-1].c) ; else EquationTerm_S.Case.LocalTerm.JacobianMethodIndex = i ; Free(yyvsp[-1].c) ; ; break;} case 359: #line 3565 "GetDP.y" { if ((i = List_ISearchSeq(Problem_S.IntegrationMethod, yyvsp[-1].c, fcmp_IntegrationMethod_Name)) < 0) vyyerror("Unknown Integration method: %s", yyvsp[-1].c) ; else EquationTerm_S.Case.LocalTerm.IntegrationMethodIndex = i ; Free(yyvsp[-1].c) ; ; break;} case 360: #line 3574 "GetDP.y" { EquationTerm_S.Case.LocalTerm.Full_Matrix = 1; ; break;} case 361: #line 3579 "GetDP.y" { if ((i = List_ISearchSeq(Problem_S.IntegrationMethod, yyvsp[-1].c, fcmp_IntegrationMethod_Name)) < 0) vyyerror("Unknown Integration method: %s", yyvsp[-1].c) ; else EquationTerm_S.Case.LocalTerm.FMMIntegrationMethodIndex = i ; Free(yyvsp[-1].c) ; ; break;} case 362: #line 3588 "GetDP.y" { if ( yyvsp[-2].i == 1 || yyvsp[-2].i == 2 || yyvsp[-2].i == 3 ) EquationTerm_S.Case.LocalTerm.MatrixIndex = yyvsp[-2].i ; else vyyerror("Unknown Matrix123: %d", yyvsp[-2].i) ; ; break;} case 363: #line 3599 "GetDP.y" { EquationTerm_S.Case.GlobalTerm.TypeTimeDerivative = NODT_ ; EquationTerm_S.Case.GlobalTerm.DefineQuantityIndex = -1 ; EquationTerm_S.Case.GlobalTerm.Term.TypeTimeDerivative = NODT_ ; EquationTerm_S.Case.GlobalTerm.Term.TypeOperatorEqu = NOOP ; EquationTerm_S.Case.GlobalTerm.Term.TypeOperatorDof = NOOP ; EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexEqu = -1 ; EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexDof = -1 ; EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexNoDof = -1 ; EquationTerm_S.Case.GlobalTerm.Term.WholeQuantity = NULL ; EquationTerm_S.Case.GlobalTerm.Term.DofIndexInWholeQuantity = -1 ; EquationTerm_S.Case.GlobalTerm.InIndex = -1 ; ; break;} case 365: #line 3628 "GetDP.y" { EquationTerm_S.Case.GlobalTerm.InIndex = Num_Group(&Group_S, "FO_In", yyvsp[-1].i) ; ; break;} case 366: #line 3633 "GetDP.y" { EquationTerm_S.Case.GlobalTerm.Term.TypeTimeDerivative = Type_TermOperator ; Current_DofIndexInWholeQuantity = -1 ; Current_NoDofIndexInWholeQuantity = -1 ; List_Reset(ListOfPointer_L) ; ; break;} case 367: #line 3641 "GetDP.y" { EquationTerm_S.Case.GlobalTerm.Term.WholeQuantity = yyvsp[0].l ; EquationTerm_S.Case.GlobalTerm.Term.DofIndexInWholeQuantity = Current_DofIndexInWholeQuantity ; WholeQuantity_P = (struct WholeQuantity*) List_Pointer(EquationTerm_S.Case.GlobalTerm.Term.WholeQuantity, 0) ; if (Current_DofIndexInWholeQuantity >= 0) { EquationTerm_S.Case.GlobalTerm.Term.TypeOperatorDof = (WholeQuantity_P+Current_DofIndexInWholeQuantity)-> Case.OperatorAndQuantity.TypeOperator ; EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexDof = (WholeQuantity_P+Current_DofIndexInWholeQuantity)-> Case.OperatorAndQuantity.Index ; } else { /* No Dof{} */ EquationTerm_S.Case.GlobalTerm.Term.TypeOperatorDof = NOOP ; EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexDof = -1 ; } if (Current_NoDofIndexInWholeQuantity >= 0) { EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexNoDof = (WholeQuantity_P+Current_NoDofIndexInWholeQuantity)-> Case.OperatorAndQuantity.Index ; } else { /* No NoDof{} */ EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexNoDof = -1 ; } /* Check if the WholeQuantity is a Canonical Form of type 'expr[] * Dof{}'*/ if ((List_Nbr(EquationTerm_S.Case.GlobalTerm.Term.WholeQuantity) == 3) && ((WholeQuantity_P+0)->Type == WQ_EXPRESSION) && ((WholeQuantity_P+1)->Type == WQ_OPERATORANDQUANTITY) && ((WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR) && ((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME) && (Current_DofIndexInWholeQuantity == 1)) { EquationTerm_S.Case.GlobalTerm.Term.CanonicalWholeQuantity = CWQ_EXP_TIME_DOF ; EquationTerm_S.Case.GlobalTerm.Term.ExpressionIndexForCanonical = (WholeQuantity_P+0)->Case.Expression.Index ; } else if ((List_Nbr(EquationTerm_S.Case.GlobalTerm.Term.WholeQuantity) == 1) && ((WholeQuantity_P+0)->Type == WQ_OPERATORANDQUANTITY) && (Current_DofIndexInWholeQuantity == 0)) { EquationTerm_S.Case.GlobalTerm.Term.CanonicalWholeQuantity = CWQ_DOF ; } else { EquationTerm_S.Case.GlobalTerm.Term.CanonicalWholeQuantity = CWQ_NONE ; } ; break;} case 368: #line 3696 "GetDP.y" { EquationTerm_S.Case.GlobalTerm.Term.TypeOperatorEqu = yyvsp[-2].t.Int1 ; EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexEqu = yyvsp[-2].t.Int2 ; Pro_DefineQuantityIndex (EquationTerm_S.Case.GlobalTerm.Term.WholeQuantity, EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexEqu, &EquationTerm_S.Case.GlobalTerm.Term.NbrQuantityIndex, &EquationTerm_S.Case.GlobalTerm.Term.QuantityIndexTable, &EquationTerm_S.Case.GlobalTerm.Term.QuantityTraceGroupIndexTable) ; ; break;} case 369: #line 3713 "GetDP.y" { Type_TermOperator = NODT_ ; ; break;} case 370: #line 3714 "GetDP.y" { Type_TermOperator = DT_ ; ; break;} case 371: #line 3715 "GetDP.y" { Type_TermOperator = DTDOF_ ; ; break;} case 372: #line 3716 "GetDP.y" { Type_TermOperator = DTDT_ ; ; break;} case 373: #line 3717 "GetDP.y" { Type_TermOperator = DTDTDOF_ ; ; break;} case 374: #line 3718 "GetDP.y" { Type_TermOperator = JACNL_ ; ; break;} case 375: #line 3719 "GetDP.y" { Type_TermOperator = NEVERDT_ ; ; break;} case 376: #line 3720 "GetDP.y" { Type_TermOperator = DTNL_ ; ; break;} case 377: #line 3727 "GetDP.y" { yyval.t.Int1 = Get_DefineForString(Operator_Type, yyvsp[-2].c, &FlagError) ; if (FlagError){ vyyerror("Unknown Operator for discrete Quantity: %s", yyvsp[-2].c); Get_Valid_SXD(Operator_Type); } Free(yyvsp[-2].c) ; if ((i = List_ISearchSeq(Formulation_S.DefineQuantity, yyvsp[-1].c, fcmp_DefineQuantity_Name)) < 0) vyyerror("Unknown discrete Quantity: %s", yyvsp[-1].c) ; yyval.t.Int2 = i ; /* the following should be suppressed as soon as the test function part in the formulations is correctly treated */ Quantity_TypeOperator = yyval.t.Int1 ; Quantity_Index = yyval.t.Int2 ; Free(yyvsp[-1].c) ; ; break;} case 378: #line 3748 "GetDP.y" { yyval.t.Int1 = NOOP ; if ((i = List_ISearchSeq(Formulation_S.DefineQuantity, yyvsp[-1].c, fcmp_DefineQuantity_Name)) < 0) vyyerror("Unknown discrete Quantity: %s", yyvsp[-1].c) ; yyval.t.Int2 = i ; /* the following should be suppressed as soon as the test function part in the formulations is correctly treated */ Quantity_TypeOperator = yyval.t.Int1 ; Quantity_Index = yyval.t.Int2 ; Free(yyvsp[-1].c) ; ; break;} case 379: #line 3772 "GetDP.y" { if (!Problem_S.Resolution) Problem_S.Resolution = List_Create(10, 5, sizeof (struct Resolution)) ; ; break;} case 381: #line 3782 "GetDP.y" { List_Add(Problem_S.Resolution, &Resolution_S) ; ; break;} case 384: #line 3795 "GetDP.y" { Resolution_S.Name = NULL ; Resolution_S.DefineSystem = NULL ; Resolution_S.Operation = NULL ; ; break;} case 386: #line 3807 "GetDP.y" { Check_NameOfStructNotExist("Resolution", Problem_S.Resolution, yyvsp[-1].c, fcmp_Resolution_Name) ; Resolution_S.Name = yyvsp[-1].c ; ; break;} case 387: #line 3814 "GetDP.y" { yyerror("Multi-fields {#.} are not used anymore. Use Loops For ... EndFor"); Check_NameOfStructNotExist("Resolution", Problem_S.Resolution, yyvsp[-2].c, fcmp_Resolution_Name) ; Resolution_S.Name = yyvsp[-2].c ; ; break;} case 388: #line 3822 "GetDP.y" { Resolution_S.DefineSystem = yyvsp[-1].l ; ; break;} case 389: #line 3825 "GetDP.y" { Operation_L = List_Create( 5, 5, sizeof(struct Operation)) ; ; break;} case 390: #line 3827 "GetDP.y" { Resolution_S.Operation = yyvsp[-1].l ; List_Delete(Operation_L) ; ; break;} case 392: #line 3835 "GetDP.y" { yyval.l = Current_System_L = List_Create(6, 6, sizeof (struct DefineSystem)) ; ; break;} case 393: #line 3840 "GetDP.y" { List_Add(yyval.l = Current_System_L = yyvsp[-3].l, &DefineSystem_S) ; ; break;} case 394: #line 3845 "GetDP.y" { yyval.l = yyvsp[-1].l ; ; break;} case 395: #line 3855 "GetDP.y" { DefineSystem_S.Name = NULL ; DefineSystem_S.Type = VAL_REAL ; DefineSystem_S.FormulationIndex = NULL ; DefineSystem_S.MeshName = NULL ; DefineSystem_S.AdaptName = NULL ; DefineSystem_S.FrequencyValue = NULL ; DefineSystem_S.SolverDataFileName = NULL ; DefineSystem_S.OriginSystemIndex = NULL ; DefineSystem_S.DestinationSystemName = NULL ; DefineSystem_S.DestinationSystemIndex = -1 ; DefineSystem_S.Flag_FMM = 0 ; ; break;} case 397: #line 3875 "GetDP.y" { DefineSystem_S.Name = yyvsp[-1].c ; ; break;} case 398: #line 3878 "GetDP.y" { DefineSystem_S.Type = Get_DefineForString(DefineSystem_Type, yyvsp[-1].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of System: %s", yyvsp[-1].c); Get_Valid_SXD(DefineSystem_Type); } Free(yyvsp[-1].c) ; ; break;} case 399: #line 3887 "GetDP.y" { DefineSystem_S.FormulationIndex = yyvsp[-1].l ; ; break;} case 400: #line 3890 "GetDP.y" { DefineSystem_S.MeshName = yyvsp[-1].c ; ; break;} case 401: #line 3895 "GetDP.y" { DefineSystem_S.OriginSystemIndex = yyvsp[-1].l ; ; break;} case 402: #line 3900 "GetDP.y" { DefineSystem_S.DestinationSystemName = yyvsp[-1].c ; ; break;} case 403: #line 3905 "GetDP.y" { DefineSystem_S.FrequencyValue = yyvsp[-1].l; DefineSystem_S.Type = VAL_COMPLEX ; ; break;} case 404: #line 3910 "GetDP.y" { DefineSystem_S.SolverDataFileName = yyvsp[-1].c ; ; break;} case 406: #line 3921 "GetDP.y" { yyval.l = List_Create(1, 1, sizeof(int)) ; if ((i = List_ISearchSeq(Problem_S.Formulation, yyvsp[0].c, fcmp_Formulation_Name)) < 0) vyyerror("Unknown Formulation: %s", yyvsp[0].c) ; else List_Add(yyval.l, &i) ; Free(yyvsp[0].c) ; ; break;} case 407: #line 3930 "GetDP.y" { yyval.l = yyvsp[-1].l ; ; break;} case 408: #line 3937 "GetDP.y" { yyval.l = List_Create(2, 2, sizeof(int)) ; ; break;} case 409: #line 3940 "GetDP.y" { if ((i = List_ISearchSeq(Problem_S.Formulation, yyvsp[0].c, fcmp_Formulation_Name)) < 0) vyyerror("Unknown Formulation: %s", yyvsp[0].c) ; else List_Add(yyvsp[-2].l, &i) ; yyval.l = yyvsp[-2].l ; Free(yyvsp[0].c) ; ; break;} case 410: #line 3952 "GetDP.y" { yyval.l = List_Create(1, 1, sizeof(int)) ; if ((i = List_ISearchSeq(Current_System_L, yyvsp[0].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[0].c) ; else List_Add(yyval.l, &i) ; Free(yyvsp[0].c) ; ; break;} case 411: #line 3962 "GetDP.y" { yyval.l = yyvsp[-1].l ; ; break;} case 412: #line 3968 "GetDP.y" { yyval.l = List_Create(2, 2, sizeof(int)) ; ; break;} case 413: #line 3971 "GetDP.y" { if ((i = List_ISearchSeq(Current_System_L, yyvsp[0].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[0].c) ; else List_Add(yyvsp[-2].l, &i) ; yyval.l = yyvsp[-2].l ; Free(yyvsp[0].c) ; ; break;} case 414: #line 3983 "GetDP.y" { yyval.l = List_Create(6, 6, sizeof (struct Operation)) ; Operation_S.Type = OPERATION_NONE ; Operation_S.DefineSystemIndex = -1 ; List_Add(Operation_L, &Operation_S) ; ; break;} case 415: #line 3991 "GetDP.y" { if (((struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1))->Type != OPERATION_NONE) List_Add(yyval.l = yyvsp[-1].l, (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1)) ; ; break;} case 416: #line 4004 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = Get_DefineForString(Operation_Type, yyvsp[-2].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of Operation: %s", yyvsp[-2].c); Get_Valid_SXD(Operation_Type); } Free(yyvsp[-2].c) ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-1].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-1].c) ; Free(yyvsp[-1].c) ; Operation_P->DefineSystemIndex = i ; if (Operation_P->Type == OPERATION_GENERATE || Operation_P->Type == OPERATION_GENERATEJAC || Operation_P->Type == OPERATION_GENERATESEPARATE) Operation_P->Case.Generate.GroupIndex = -1 ; ; break;} case 417: #line 4026 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_SETTIME ; Operation_P->Case.SetTime.ExpressionIndex = yyvsp[-1].i ; ; break;} case 418: #line 4033 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_TIMELOOPTHETA ; ; break;} case 419: #line 4039 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_TIMELOOPNEWMARK ; ; break;} case 420: #line 4045 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_ITERATIVELOOP ; ; break;} case 421: #line 4051 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_ITERATIVETIMEREDUCTION ; ; break;} case 422: #line 4059 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = Get_DefineForString(Operation_Type, yyvsp[-4].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of Operation: %s", yyvsp[-4].c); Get_Valid_SXD(Operation_Type); } Free(yyvsp[-4].c) ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-2].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-2].c) ; Free(yyvsp[-2].c) ; Operation_P->DefineSystemIndex = i ; if (Operation_P->Type == OPERATION_GENERATE || Operation_P->Type == OPERATION_GENERATEJAC || Operation_P->Type == OPERATION_GENERATESEPARATE) Operation_P->Case.Generate.GroupIndex = -1 ; ; break;} case 423: #line 4081 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_SETTIME ; Operation_P->Case.SetTime.ExpressionIndex = yyvsp[-2].i ; ; break;} case 424: #line 4088 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_BREAK ; ; break;} case 425: #line 4094 "GetDP.y" { List_Pop(Operation_L) ; Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_TEST ; Operation_P->Case.Test.ExpressionIndex = yyvsp[-4].i ; Operation_P->Case.Test.Operation_True = yyvsp[-1].l ; Operation_P->Case.Test.Operation_False = NULL ; ; break;} case 426: #line 4105 "GetDP.y" { List_Pop(Operation_L) ; Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_TEST ; Operation_P->Case.Test.ExpressionIndex = yyvsp[-8].i ; Operation_P->Case.Test.Operation_True = yyvsp[-5].l ; Operation_P->Case.Test.Operation_False = yyvsp[-1].l ; ; break;} case 427: #line 4116 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_SETFREQUENCY ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-4].c) ; Free(yyvsp[-4].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.SetFrequency.ExpressionIndex = yyvsp[-2].i ; ; break;} case 428: #line 4129 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_GENERATEFMMGROUPS ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-10].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-10].c) ; Free(yyvsp[-10].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.GenerateFMMGroups.DivXYZIndex = yyvsp[-8].i; Operation_P->Case.GenerateFMMGroups.Dfar = yyvsp[-6].i; Operation_P->Case.GenerateFMMGroups.Precision = yyvsp[-4].i; Operation_P->Case.GenerateFMMGroups.FlagDTA = yyvsp[-2].i; ; break;} case 429: #line 4144 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_GENERATEFMMGROUPS ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-8].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-8].c) ; Free(yyvsp[-8].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.GenerateFMMGroups.DivXYZIndex = yyvsp[-6].i; Operation_P->Case.GenerateFMMGroups.Dfar = yyvsp[-4].i; Operation_P->Case.GenerateFMMGroups.Precision = yyvsp[-2].i; Operation_P->Case.GenerateFMMGroups.FlagDTA = -1; ; break;} case 430: #line 4159 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_GENERATEFMMGROUPS ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-6].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-6].c) ; Free(yyvsp[-6].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.GenerateFMMGroups.DivXYZIndex = yyvsp[-4].i; Operation_P->Case.GenerateFMMGroups.Dfar = yyvsp[-2].i; Operation_P->Case.GenerateFMMGroups.Precision = -1; Operation_P->Case.GenerateFMMGroups.FlagDTA = -1; ; break;} case 431: #line 4174 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_GENERATEONLY ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-4].c) ; Free(yyvsp[-4].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.GenerateOnly.MatrixIndex_L = List_Create(List_Nbr(yyvsp[-2].l),1,sizeof(int)); for(i=0 ; iCase.GenerateOnly.MatrixIndex_L, &j); } List_Delete(yyvsp[-2].l); ; break;} case 432: #line 4194 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_GENERATEONLYJAC ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-4].c) ; Free(yyvsp[-4].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.GenerateOnly.MatrixIndex_L = List_Create(List_Nbr(yyvsp[-2].l),1,sizeof(int)); for(i=0 ; iCase.GenerateOnly.MatrixIndex_L, &j); } List_Delete(yyvsp[-2].l); ; break;} case 433: #line 4215 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_UPDATE ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-4].c) ; Free(yyvsp[-4].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.Update.ExpressionIndex = yyvsp[-2].i ; ; break;} case 434: #line 4227 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_UPDATECONSTRAINT ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-6].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-6].c) ; Free(yyvsp[-6].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.UpdateConstraint.GroupIndex = Num_Group(&Group_S, "OP_UpdateCst", yyvsp[-4].i) ; Operation_P->Case.UpdateConstraint.Type = Get_DefineForString(Constraint_Type, yyvsp[-2].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of Constraint: %s", yyvsp[-2].c); Get_Valid_SXD(Constraint_Type); } Free(yyvsp[-2].c) ; ; break;} case 435: #line 4247 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_FOURIERTRANSFORM ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-6].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-6].c) ; Free(yyvsp[-6].c) ; Operation_P->Case.FourierTransform.DefineSystemIndex[0] = i ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-4].c) ; Free(yyvsp[-4].c) ; Operation_P->Case.FourierTransform.DefineSystemIndex[1] = i ; Operation_P->Case.FourierTransform.Frequency = yyvsp[-2].l; ; break;} case 436: #line 4264 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_FOURIERTRANSFORM2 ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-6].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-6].c) ; Free(yyvsp[-6].c) ; Operation_P->Case.FourierTransform2.DefineSystemIndex[0] = i ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-4].c) ; Free(yyvsp[-4].c) ; Operation_P->Case.FourierTransform2.DefineSystemIndex[1] = i ; Operation_P->Case.FourierTransform2.Period = yyvsp[-2].d; Operation_P->Case.FourierTransform2.Period_sofar = 0.; Operation_P->Case.FourierTransform2.Scales = NULL; ; break;} case 437: #line 4283 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_LANCZOS ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-8].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-8].c) ; Free(yyvsp[-8].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.Lanczos.Size = (int)yyvsp[-6].d ; Operation_P->Case.Lanczos.Save = List_Create(List_Nbr(yyvsp[-4].l), 1, sizeof(int)) ; for (i = 0 ; i < List_Nbr(yyvsp[-4].l) ; i++) { List_Read(yyvsp[-4].l, i, &d) ; j = (int)d ; List_Add(Operation_P->Case.Lanczos.Save, &j) ; } List_Delete(yyvsp[-4].l); Operation_P->Case.Lanczos.Shift = yyvsp[-2].d ; ; break;} case 438: #line 4304 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_EIGENSOLVE ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-8].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-8].c) ; Free(yyvsp[-8].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.EigenSolve.NumEigenvalues = (int)yyvsp[-6].d ; Operation_P->Case.EigenSolve.Shift_r = yyvsp[-4].d ; Operation_P->Case.EigenSolve.Shift_i = yyvsp[-2].d ; ; break;} case 439: #line 4318 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_EIGENSOLVEJAC ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-8].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-8].c) ; Free(yyvsp[-8].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.EigenSolve.NumEigenvalues = (int)yyvsp[-6].d ; Operation_P->Case.EigenSolve.Shift_r = yyvsp[-4].d ; Operation_P->Case.EigenSolve.Shift_i = yyvsp[-2].d ; ; break;} case 440: #line 4332 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_EVALUATE; Operation_P->Case.Evaluate.ExpressionIndex = (int)yyvsp[-2].i ; ; break;} case 441: #line 4340 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_PERTURBATION ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-14].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-14].c) ; Free(yyvsp[-14].c) ; Operation_P->DefineSystemIndex = i ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-12].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-12].c) ; Free(yyvsp[-12].c) ; Operation_P->Case.Perturbation.DefineSystemIndex2 = i ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-10].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-10].c) ; Free(yyvsp[-10].c) ; Operation_P->Case.Perturbation.DefineSystemIndex3 = i ; Operation_P->Case.Perturbation.Size = (int)yyvsp[-8].d ; Operation_P->Case.Perturbation.Save = List_Create(List_Nbr(yyvsp[-6].l), 1, sizeof(int)) ; for (i = 0 ; i < List_Nbr(yyvsp[-6].l) ; i++) { List_Read(yyvsp[-6].l, i, &d) ; j = (int)d ; List_Add(Operation_P->Case.Perturbation.Save, &j) ; } List_Delete(yyvsp[-6].l); Operation_P->Case.Perturbation.Shift = yyvsp[-4].d ; Operation_P->Case.Perturbation.PertFreq = (int)yyvsp[-2].d ; ; break;} case 442: #line 4374 "GetDP.y" { List_Pop(Operation_L) ; Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_TIMELOOPTHETA ; Operation_P->Case.TimeLoopTheta.Time0 = yyvsp[-10].d ; Operation_P->Case.TimeLoopTheta.TimeMax = yyvsp[-8].d ; Operation_P->Case.TimeLoopTheta.DTimeIndex = yyvsp[-6].i ; Operation_P->Case.TimeLoopTheta.ThetaIndex = yyvsp[-4].i ; Operation_P->Case.TimeLoopTheta.Operation = yyvsp[-1].l ; ; break;} case 443: #line 4387 "GetDP.y" { List_Pop(Operation_L) ; Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_TIMELOOPNEWMARK ; Operation_P->Case.TimeLoopNewmark.Time0 = yyvsp[-12].d ; Operation_P->Case.TimeLoopNewmark.TimeMax = yyvsp[-10].d ; Operation_P->Case.TimeLoopNewmark.DTimeIndex = yyvsp[-8].i ; Operation_P->Case.TimeLoopNewmark.Beta = yyvsp[-6].d ; Operation_P->Case.TimeLoopNewmark.Gamma = yyvsp[-4].d ; Operation_P->Case.TimeLoopNewmark.Operation = yyvsp[-1].l ; ; break;} case 444: #line 4401 "GetDP.y" { List_Pop(Operation_L) ; Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_ITERATIVELOOP ; Operation_P->Case.IterativeLoop.NbrMaxIteration = (int)yyvsp[-8].d ; Operation_P->Case.IterativeLoop.Criterion = yyvsp[-6].d ; Operation_P->Case.IterativeLoop.RelaxationFactorIndex = yyvsp[-4].i ; Operation_P->Case.IterativeLoop.Flag = 0 ; Operation_P->Case.IterativeLoop.Operation = yyvsp[-1].l ; ; break;} case 445: #line 4414 "GetDP.y" { List_Pop(Operation_L) ; Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_ITERATIVELOOP ; Operation_P->Case.IterativeLoop.NbrMaxIteration = (int)yyvsp[-10].d ; Operation_P->Case.IterativeLoop.Criterion = yyvsp[-8].d ; Operation_P->Case.IterativeLoop.RelaxationFactorIndex = yyvsp[-6].i ; Operation_P->Case.IterativeLoop.Flag = (int)yyvsp[-4].d ; Operation_P->Case.IterativeLoop.Operation = yyvsp[-1].l ; ; break;} case 446: #line 4426 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_PRINT ; Operation_P->Case.Print.Expression = NULL ; Operation_P->DefineSystemIndex = -1 ; ; break;} case 448: #line 4435 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_WRITE ; Operation_P->Case.Print.Expression = NULL ; Operation_P->DefineSystemIndex = -1 ; ; break;} case 450: #line 4444 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_CHANGEOFCOORDINATES ; Operation_P->Case.ChangeOfCoordinates.GroupIndex = Num_Group(&Group_S, "OP_ChgCoord", yyvsp[-4].i) ; Operation_P->Case.ChangeOfCoordinates.ExpressionIndex = yyvsp[-2].i ; Operation_P->Case.ChangeOfCoordinates.ExpressionIndex2 = -1 ; ; break;} case 451: #line 4455 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_CHANGEOFCOORDINATES ; Operation_P->Case.ChangeOfCoordinates.GroupIndex = Num_Group(&Group_S, "OP_ChgCoord", yyvsp[-8].i) ; Operation_P->Case.ChangeOfCoordinates.ExpressionIndex = yyvsp[-6].i ; Operation_P->Case.ChangeOfCoordinates.NumNode = (int)yyvsp[-4].d ; Operation_P->Case.ChangeOfCoordinates.ExpressionIndex2 = yyvsp[-2].i ; ; break;} case 452: #line 4467 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_POSTOPERATION ; Operation_P->Case.PostOperation.PostOperations = List_Create(1,1,sizeof(char*)); List_Add(Operation_P->Case.PostOperation.PostOperations, &yyvsp[-2].c); ; break;} case 453: #line 4477 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_SYSTEMCOMMAND ; Operation_P->Case.SystemCommand.String = yyvsp[-2].c ; ; break;} case 454: #line 4485 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_SOLVEJACADAPTRELAX ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-6].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-6].c) ; Free(yyvsp[-6].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.SolveJac_AdaptRelax.CheckAll = (int)yyvsp[-2].d ; Operation_P->Case.SolveJac_AdaptRelax.Factor_L = yyvsp[-4].l ; ; break;} case 455: #line 4498 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_SAVESOLUTIONEXTENDEDMH ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-6].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-6].c) ; Free(yyvsp[-6].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.SaveSolutionExtendedMH.NbrFreq = (int)yyvsp[-4].d ; Operation_P->Case.SaveSolutionExtendedMH.ResFile = yyvsp[-2].c ; ; break;} case 456: #line 4511 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = OPERATION_SAVESOLUTIONMHTOTIME ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-6].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-6].c) ; Free(yyvsp[-6].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.SaveSolutionMHtoTime.Time = yyvsp[-4].l ; Operation_P->Case.SaveSolutionMHtoTime.ResFile = yyvsp[-2].c ; ; break;} case 457: #line 4525 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; if (( i = List_ISearchSeq(Problem_S.Group, yyvsp[-2].c, fcmp_Group_Name)) < 0) vyyerror("Unknown Group: %s", yyvsp[-2].c) ; Operation_P->Type = OPERATION_INIT_MOVINGBAND2D ; Operation_P->Case.Init_MovingBand2D.GroupIndex = i ; Free(yyvsp[-2].c) ; ; break;} case 458: #line 4535 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; if (( i = List_ISearchSeq(Problem_S.Group, yyvsp[-2].c, fcmp_Group_Name)) < 0) vyyerror("Unknown Group: %s", yyvsp[-2].c) ; Operation_P->Type = OPERATION_MESH_MOVINGBAND2D ; Operation_P->Case.Mesh_MovingBand2D.GroupIndex = i ; Free(yyvsp[-2].c) ; ; break;} case 459: #line 4545 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-8].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-8].c) ; Free(yyvsp[-8].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.SaveMesh.GroupIndex = Num_Group(&Group_S, "OP_SaveMesh", yyvsp[-6].i) ; Operation_P->Case.SaveMesh.FileName = yyvsp[-4].c ; Operation_P->Case.SaveMesh.ExprIndex = yyvsp[-2].i ; Operation_P->Type = OPERATION_SAVEMESH ; ; break;} case 460: #line 4559 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-6].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-6].c) ; Free(yyvsp[-6].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.SaveMesh.GroupIndex = Num_Group(&Group_S, "OP_SaveMesh", yyvsp[-4].i) ; Operation_P->Case.SaveMesh.FileName = yyvsp[-2].c ; Operation_P->Case.SaveMesh.ExprIndex = -1 ; Operation_P->Type = OPERATION_SAVEMESH ; ; break;} case 461: #line 4573 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-11].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-11].c) ; Free(yyvsp[-11].c) ; Operation_P->DefineSystemIndex = i ; if (( i = List_ISearchSeq(Problem_S.Group, yyvsp[-9].c, fcmp_Group_Name)) < 0) vyyerror("Unknown Group: %s", yyvsp[-9].c) ; Free(yyvsp[-9].c) ; Operation_P->Type = OPERATION_GENERATE_MH_MOVING ; Operation_P->Case.Generate_MH_Moving.GroupIndex = i ; Operation_P->Case.Generate_MH_Moving.Period = yyvsp[-7].d ; Operation_P->Case.Generate_MH_Moving.NbrStep = (int)yyvsp[-5].d ; Operation_P->Case.Generate_MH_Moving.Operation = yyvsp[-2].l ; ; break;} case 462: #line 4592 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-11].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-11].c) ; Free(yyvsp[-11].c) ; Operation_P->DefineSystemIndex = i ; if (( i = List_ISearchSeq(Problem_S.Group, yyvsp[-9].c, fcmp_Group_Name)) < 0) vyyerror("Unknown Group: %s", yyvsp[-9].c) ; Free(yyvsp[-9].c) ; Operation_P->Type = OPERATION_GENERATE_MH_MOVING_S ; Operation_P->Case.Generate_MH_Moving_S.GroupIndex = i ; Operation_P->Case.Generate_MH_Moving_S.Period = yyvsp[-7].d ; Operation_P->Case.Generate_MH_Moving_S.NbrStep = (int)yyvsp[-5].d ; Operation_P->Case.Generate_MH_Moving_S.Operation = yyvsp[-2].l ; ; break;} case 463: #line 4610 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-4].c) ; Free(yyvsp[-4].c) ; Operation_P->Type = OPERATION_ADD_MH_MOVING ; Operation_P->Case.Add_MH_Moving.dummy = yyvsp[-2].d ; ; break;} case 464: #line 4621 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-9].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-9].c) ; Free(yyvsp[-9].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.DeformeMesh.Quantity = yyvsp[-7].c ; Operation_P->Case.DeformeMesh.Name_MshFile = yyvsp[-4].c ; Operation_P->Case.DeformeMesh.GeoDataIndex = -1 ; Operation_P->Case.DeformeMesh.Factor = yyvsp[-2].d ; Operation_P->Type = OPERATION_DEFORMEMESH ; ; break;} case 465: #line 4636 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-7].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-7].c) ; Free(yyvsp[-7].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.DeformeMesh.Quantity = yyvsp[-5].c ; Operation_P->Case.DeformeMesh.Name_MshFile = yyvsp[-2].c ; Operation_P->Case.DeformeMesh.GeoDataIndex = -1 ; Operation_P->Case.DeformeMesh.Factor = 1 ; Operation_P->Type = OPERATION_DEFORMEMESH ; ; break;} case 466: #line 4651 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-4].c) ; Free(yyvsp[-4].c) ; Operation_P->DefineSystemIndex = i ; Operation_P->Case.DeformeMesh.Quantity = yyvsp[-2].c ; Operation_P->Case.DeformeMesh.Name_MshFile = NULL ; Operation_P->Case.DeformeMesh.GeoDataIndex = -1 ; Operation_P->Case.DeformeMesh.Factor = 1 ; Operation_P->Type = OPERATION_DEFORMEMESH ; ; break;} case 467: #line 4666 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-4].c) ; Free(yyvsp[-4].c) ; Operation_P->DefineSystemIndex = i ; if (( i = List_ISearchSeq(Problem_S.Group, yyvsp[-2].c, fcmp_Group_Name)) < 0) vyyerror("Unknown Group: %s", yyvsp[-2].c) ; Free(yyvsp[-2].c) ; Operation_P->Type = OPERATION_GENERATE ; Operation_P->Case.Generate.GroupIndex = i ; ; break;} case 468: #line 4681 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-4].c) ; Free(yyvsp[-4].c) ; Operation_P->DefineSystemIndex = i ; if (( i = List_ISearchSeq(Problem_S.Group, yyvsp[-2].c, fcmp_Group_Name)) < 0) vyyerror("Unknown Group: %s", yyvsp[-2].c) ; Free(yyvsp[-2].c) ; Operation_P->Type = OPERATION_GENERATEJAC ; Operation_P->Case.Generate.GroupIndex = i ; ; break;} case 469: #line 4696 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Type = NONE ; ; break;} case 470: #line 4707 "GetDP.y" { Operation_P->Case.Print.Expression = List_Copy(ListOfInt_L) ; ; break;} case 471: #line 4712 "GetDP.y" { if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[0].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[0].c) ; Free(yyvsp[0].c) ; Operation_P->DefineSystemIndex = i ; ; break;} case 472: #line 4722 "GetDP.y" { Operation_P->Case.Print.FileOut = NULL ; Operation_P->Case.Print.TimeStep = NULL ; Operation_P->Case.Print.DofNumber = NULL ; ; break;} case 474: #line 4732 "GetDP.y" { Operation_P->Case.Print.FileOut = yyvsp[0].c ; ; break;} case 475: #line 4735 "GetDP.y" { Operation_P->Case.Print.TimeStep = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(int)) ; for(i=0 ; iCase.Print.TimeStep, &j); } List_Delete(yyvsp[0].l); ; break;} case 476: #line 4745 "GetDP.y" { Operation_P->Case.Print.DofNumber = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(int)) ; for (i = 0 ; i < List_Nbr(yyvsp[0].l) ; i++) { List_Read(yyvsp[0].l, i, &d) ; j = (int)d ; List_Add(Operation_P->Case.Print.DofNumber, &j) ; } List_Delete(yyvsp[0].l); ; break;} case 477: #line 4760 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.TimeLoopTheta.Time0 = 0. ; Operation_P->Case.TimeLoopTheta.TimeMax = 1. ; Operation_P->Case.TimeLoopTheta.DTimeIndex = -1 ; Operation_P->Case.TimeLoopTheta.ThetaIndex = -1 ; Operation_P->Case.TimeLoopTheta.Operation = NULL ; ; break;} case 479: #line 4776 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.TimeLoopTheta.Time0 = yyvsp[-1].d ; ; break;} case 480: #line 4780 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.TimeLoopTheta.TimeMax = yyvsp[-1].d ; ; break;} case 481: #line 4784 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.TimeLoopTheta.DTimeIndex = yyvsp[-1].i ; ; break;} case 482: #line 4788 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.TimeLoopTheta.ThetaIndex = yyvsp[-1].i ; ; break;} case 483: #line 4793 "GetDP.y" { List_Pop(Operation_L) ; Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.TimeLoopTheta.Operation = yyvsp[-1].l ; ; break;} case 484: #line 4804 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.TimeLoopNewmark.Time0 = 0. ; Operation_P->Case.TimeLoopNewmark.TimeMax = 1. ; Operation_P->Case.TimeLoopNewmark.DTimeIndex = -1 ; Operation_P->Case.TimeLoopNewmark.Beta = 0.25 ; Operation_P->Case.TimeLoopNewmark.Gamma = 0.5 ; Operation_P->Case.TimeLoopNewmark.Operation = NULL ; ; break;} case 486: #line 4821 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.TimeLoopNewmark.Time0 = yyvsp[-1].d ; ; break;} case 487: #line 4825 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.TimeLoopNewmark.TimeMax = yyvsp[-1].d ; ; break;} case 488: #line 4829 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.TimeLoopNewmark.DTimeIndex = yyvsp[-1].i ; ; break;} case 489: #line 4833 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.TimeLoopNewmark.Beta = yyvsp[-1].d ; ; break;} case 490: #line 4837 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.TimeLoopNewmark.Gamma = yyvsp[-1].d ; ; break;} case 491: #line 4842 "GetDP.y" { List_Pop(Operation_L) ; Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.TimeLoopNewmark.Operation = yyvsp[-1].l ; ; break;} case 492: #line 4853 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.IterativeLoop.NbrMaxIteration = 20 ; Operation_P->Case.IterativeLoop.Criterion = 1.e-3 ; Operation_P->Case.IterativeLoop.RelaxationFactorIndex = -1 ; Operation_P->Case.IterativeLoop.Flag = 0 ; Operation_P->Case.IterativeLoop.Operation = NULL ; ; break;} case 494: #line 4868 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.IterativeLoop.NbrMaxIteration = (int)yyvsp[-1].d ; ; break;} case 495: #line 4872 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.IterativeLoop.Criterion = yyvsp[-1].d ; ; break;} case 496: #line 4876 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.IterativeLoop.RelaxationFactorIndex = yyvsp[-1].i ; ; break;} case 497: #line 4880 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.IterativeLoop.Flag = (int)yyvsp[-1].d ; ; break;} case 498: #line 4884 "GetDP.y" { List_Pop(Operation_L) ; Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.IterativeLoop.Operation = yyvsp[-1].l ; ; break;} case 499: #line 4895 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.IterativeTimeReduction.NbrMaxIteration = 20 ; Operation_P->Case.IterativeTimeReduction.DivisionCoefficient = 2. ; Operation_P->Case.IterativeTimeReduction.Criterion = 1.e-3 ; Operation_P->Case.IterativeTimeReduction.Flag = 0 ; Current_System = Operation_P->DefineSystemIndex = -1 ; Operation_P->Case.IterativeTimeReduction.ChangeOfState = NULL ; Operation_P->Case.IterativeTimeReduction.Operation = NULL ; Operation_P->Case.IterativeTimeReduction.OperationEnd = NULL ; ; break;} case 501: #line 4913 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.IterativeTimeReduction.NbrMaxIteration = (int)yyvsp[-1].d ; ; break;} case 502: #line 4917 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.IterativeTimeReduction.DivisionCoefficient = yyvsp[-1].d ; ; break;} case 503: #line 4921 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.IterativeTimeReduction.Criterion = yyvsp[-1].d ; ; break;} case 504: #line 4925 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.IterativeTimeReduction.Flag = (int)yyvsp[-1].d ; ; break;} case 505: #line 4930 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-1].c, fcmp_DefineSystem_Name)) < 0) vyyerror("Unknown System: %s", yyvsp[-1].c) ; Free(yyvsp[-1].c) ; Current_System = Operation_P->DefineSystemIndex = i ; ; break;} case 506: #line 4940 "GetDP.y" { Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.IterativeTimeReduction.ChangeOfState = yyvsp[-1].l ; ; break;} case 507: #line 4946 "GetDP.y" { List_Pop(Operation_L) ; Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.IterativeTimeReduction.Operation = yyvsp[-1].l ; ; break;} case 508: #line 4952 "GetDP.y" { List_Pop(Operation_L) ; Operation_P = (struct Operation*) List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ; Operation_P->Case.IterativeTimeReduction.OperationEnd = yyvsp[-1].l ; ; break;} case 509: #line 4962 "GetDP.y" { yyval.l = List_Create(3, 3, sizeof (struct ChangeOfState)) ; ; break;} case 510: #line 4965 "GetDP.y" { List_Add(yyval.l = yyvsp[-3].l, &ChangeOfState_S) ; ; break;} case 511: #line 4970 "GetDP.y" { ChangeOfState_S.Type = CHANGEOFSTATE_CHANGESIGN ; ChangeOfState_S.QuantityIndex = -1 ; ChangeOfState_S.FormulationIndex = -1 ; ChangeOfState_S.InIndex = -1 ; ChangeOfState_S.Criterion = 1.e-2 ; ChangeOfState_S.ExpressionIndex = ChangeOfState_S.ExpressionIndex2 = -1 ; ChangeOfState_S.FlagIndex = -1 ; ChangeOfState_S.ActiveList[0] = NULL ; ChangeOfState_S.ActiveList[1] = NULL ; ; break;} case 513: #line 4988 "GetDP.y" { ChangeOfState_S.Type = Get_DefineForString(ChangeOfState_Type, yyvsp[-1].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of ChangeOfState: %s", yyvsp[-1].c); Get_Valid_SXD(ChangeOfState_Type); } Free(yyvsp[-1].c) ; ; break;} case 514: #line 4998 "GetDP.y" { if (Current_System >= 0) { ListOfInt_Lnew = ((struct DefineSystem *)List_Pointer(Resolution_S.DefineSystem, Current_System))->FormulationIndex ; ListOfInt_P =(int *)List_Pointer(ListOfInt_Lnew, 0) ; for (j=0 ; jDefineQuantity ; if ((i = List_ISearchSeq(Formulation_S.DefineQuantity, yyvsp[-1].c, fcmp_DefineQuantity_Name)) >= 0) break ; } if (j= 0) j = ((struct DefineQuantity *) List_Pointer (((struct Formulation *) List_Pointer(Problem_S.Formulation, PostProcessing_S.FormulationIndex))->DefineQuantity, PostQuantityTerm_S.QuantityIndexTable[i])) -> Type ; if (PostQuantityTerm_S.Type == 0) PostQuantityTerm_S.Type = j ; else if (PostQuantityTerm_S.Type != j) yyerror("Mixed discrete Quantity types in term (should be split in separate terms)") ; } if (PostQuantityTerm_S.Type == 0) PostQuantityTerm_S.Type = LOCALQUANTITY ; } ; break;} case 546: #line 5241 "GetDP.y" { /* force the Type */ PostQuantityTerm_S.Type = Get_DefineForString(DefineQuantity_Type, yyvsp[-1].c, &FlagError) ; if (FlagError){ vyyerror("Unknown type of Operation: %s", yyvsp[-1].c); Get_Valid_SXD(DefineQuantity_Type); } Free(yyvsp[-1].c) ; ; break;} case 547: #line 5252 "GetDP.y" { PostQuantityTerm_S.InIndex = Num_Group(&Group_S, "PQ_In", yyvsp[-1].i) ; ; break;} case 548: #line 5257 "GetDP.y" { if ((i = List_ISearchSeq(Problem_S.JacobianMethod, yyvsp[-1].c, fcmp_JacobianMethod_Name)) < 0) vyyerror("Unknown Jacobian method: %s",yyvsp[-1].c) ; else PostQuantityTerm_S.JacobianMethodIndex = i ; Free(yyvsp[-1].c) ; ; break;} case 549: #line 5266 "GetDP.y" { if ((i = List_ISearchSeq(Problem_S.IntegrationMethod, yyvsp[-1].c, fcmp_IntegrationMethod_Name)) < 0) vyyerror("Unknown Integration method: %s",yyvsp[-1].c) ; else PostQuantityTerm_S.IntegrationMethodIndex = i ; Free(yyvsp[-1].c) ; ; break;} case 550: #line 5283 "GetDP.y" { if (!Problem_S.PostOperation) Problem_S.PostOperation = List_Create(10, 5, sizeof (struct PostOperation)) ; ; break;} case 552: #line 5295 "GetDP.y" { List_Add(Problem_S.PostOperation, &PostOperation_S) ; ; break;} case 555: #line 5304 "GetDP.y" { PostOperation_S.Name = NULL ; PostOperation_S.AppendString = NULL ; PostOperation_S.Format = FORMAT_GMSH ; PostOperation_S.PostProcessingIndex = -1 ; ; break;} case 557: #line 5316 "GetDP.y" { Check_NameOfStructNotExist("PostOperation", Problem_S.PostOperation, yyvsp[-1].c, fcmp_PostOperation_Name) ; PostOperation_S.Name = yyvsp[-1].c ; ; break;} case 558: #line 5323 "GetDP.y" { if ((i = List_ISearchSeq(Problem_S.PostProcessing, yyvsp[-1].c, fcmp_PostProcessing_Name)) < 0) vyyerror("Unknown PostProcessing: %s", yyvsp[-1].c) ; else { PostOperation_S.PostProcessingIndex = i ; List_Read(Problem_S.PostProcessing, i, &InteractivePostProcessing_S) ; } Free(yyvsp[-1].c) ; ; break;} case 559: #line 5335 "GetDP.y" { PostOperation_S.Format = Get_DefineForString(PostSubOperation_Format, yyvsp[-1].c, &FlagError) ; if (FlagError){ vyyerror("Unknown PostProcessing Format: %s", yyvsp[-1].c); Get_Valid_SXD(PostSubOperation_Format); } Free(yyvsp[-1].c) ; ; break;} case 560: #line 5346 "GetDP.y" { PostOperation_S.AppendString = yyvsp[-1].c ; ; break;} case 561: #line 5351 "GetDP.y" { PostOperation_S.PostSubOperation = yyvsp[-1].l ; ; break;} case 562: #line 5357 "GetDP.y" { PostOperation_S.PostProcessingIndex = -1 ; PostOperation_S.AppendString = NULL ; PostOperation_S.Format = FORMAT_GMSH ; if ((i = List_ISearchSeq(Problem_S.PostProcessing, yyvsp[0].c, fcmp_PostProcessing_Name)) < 0) vyyerror("Unknown PostProcessing: %s", yyvsp[0].c) ; else { PostOperation_S.PostProcessingIndex = i ; List_Read(Problem_S.PostProcessing, i, &InteractivePostProcessing_S) ; if (!Problem_S.PostOperation) Problem_S.PostOperation = List_Create(5, 5, sizeof (struct PostOperation)) ; PostOperation_S.Name = yyvsp[-2].c ; } Free(yyvsp[0].c) ; ; break;} case 563: #line 5374 "GetDP.y" { PostOperation_S.PostSubOperation = yyvsp[-1].l ; if (PostOperation_S.PostProcessingIndex >= 0) List_Add(Problem_S.PostOperation, &PostOperation_S) ; ; break;} case 564: #line 5384 "GetDP.y" { yyval.l = List_Create(5, 5, sizeof (struct PostSubOperation)) ; ; break;} case 565: #line 5387 "GetDP.y" { PostSubOperation_S.Format = -1 ; ; break;} case 566: #line 5391 "GetDP.y" { if (PostSubOperation_S.Type != POP_NONE) { if(PostSubOperation_S.Format<0) PostSubOperation_S.Format = PostOperation_S.Format ; List_Add(yyval.l = yyvsp[-2].l, &PostSubOperation_S) ; } ; break;} case 567: #line 5404 "GetDP.y" { vyyerror("Plot has been superseded by Print (Plot OnRegion becomes Print OnElementsOf)") ; ; break;} case 568: #line 5409 "GetDP.y" { PostSubOperation_S.Type = POP_PRINT ; ; break;} case 569: #line 5414 "GetDP.y" { PostSubOperation_S.Type = POP_EXPRESSION ; PostSubOperation_S.Case.Expression.String = yyvsp[-5].c ; PostSubOperation_S.Case.Expression.String2 = NULL ; PostSubOperation_S.Case.Expression.ExpressionIndex = yyvsp[-3].i ; PostSubOperation_S.PostQuantityIndex[0] = -1 ; ; break;} case 570: #line 5423 "GetDP.y" { PostSubOperation_S.Type = POP_EXPRESSION ; PostSubOperation_S.Case.Expression.String = yyvsp[-8].c ; PostSubOperation_S.Case.Expression.String2 = yyvsp[-4].c ; PostSubOperation_S.Case.Expression.ExpressionIndex = -1 ; PostSubOperation_S.PostQuantityIndex[0] = -1 ; ; break;} case 571: #line 5432 "GetDP.y" { PostSubOperation_S.Type = POP_EXPRESSION ; PostSubOperation_S.Case.Expression.String = yyvsp[-3].c ; PostSubOperation_S.Case.Expression.String2 = NULL ; PostSubOperation_S.Case.Expression.ExpressionIndex = -1 ; PostSubOperation_S.PostQuantityIndex[0] = -1 ; ; break;} case 572: #line 5441 "GetDP.y" { PostSubOperation_S.Type = POP_GROUP ; PostSubOperation_S.Case.Group.ExtendedGroupIndex = Num_Group(&Group_S, "PO_Group", yyvsp[0].i) ; PostSubOperation_S.PostQuantityIndex[0] = -1 ; ; break;} case 573: #line 5447 "GetDP.y" { PostSubOperation_S.Case.Group.GroupIndex = Num_Group(&Group_S, "PO_Group", yyvsp[-3].i) ; ; break;} case 574: #line 5452 "GetDP.y" { PostSubOperation_S.Type = POP_NONE ; ; break;} case 575: #line 5461 "GetDP.y" { if ((i = List_ISearchSeq(InteractivePostProcessing_S.PostQuantity, yyvsp[-2].c, fcmp_PostQuantity_Name)) < 0) vyyerror("Unknown PostProcessing Quantity: %s", yyvsp[-2].c) ; PostSubOperation_S.PostQuantityIndex[0] = i ; PostSubOperation_S.PostQuantityIndex[1] = -1 ; PostSubOperation_S.PostQuantitySupport[0] = yyvsp[-1].i ; PostSubOperation_S.PostQuantitySupport[1] = -1 ; Free(yyvsp[-2].c) ; ; break;} case 576: #line 5473 "GetDP.y" { if ((i = List_ISearchSeq(InteractivePostProcessing_S.PostQuantity, yyvsp[-5].c, fcmp_PostQuantity_Name)) < 0) vyyerror("Unknown PostProcessing Quantity: %s", yyvsp[-5].c) ; PostSubOperation_S.PostQuantityIndex[0] = i ; PostSubOperation_S.PostQuantitySupport[0] = yyvsp[-4].i ; if ((j = List_ISearchSeq(InteractivePostProcessing_S.PostQuantity, yyvsp[-2].c, fcmp_PostQuantity_Name)) < 0) vyyerror("Unknown PostProcessing Quantity: %s", yyvsp[-2].c) ; PostSubOperation_S.PostQuantityIndex[1] = j ; PostSubOperation_S.PostQuantitySupport[1] = yyvsp[-1].i ; if ((yyvsp[-4].i<0 && yyvsp[-1].i<0) || (yyvsp[-4].i>=0 && yyvsp[-1].i>=0)) { vyyerror("Postprocessing Quantities '%s' and '%s' of same type (%s)", yyvsp[-5].c, yyvsp[-2].c, (yyvsp[-4].i>0)? "with Support":"without Support") ; } Free(yyvsp[-5].c) ; Free(yyvsp[-2].c) ; ; break;} case 577: #line 5496 "GetDP.y" { PostSubOperation_S.CombinationType = MULTIPLICATION ; ; break;} case 578: #line 5497 "GetDP.y" { PostSubOperation_S.CombinationType = DIVISION ; ; break;} case 579: #line 5498 "GetDP.y" { PostSubOperation_S.CombinationType = ADDITION ; ; break;} case 580: #line 5499 "GetDP.y" { PostSubOperation_S.CombinationType = SOUSTRACTION ; ; break;} case 581: #line 5505 "GetDP.y" { yyval.i = -1 ; ; break;} case 582: #line 5507 "GetDP.y" { yyval.i = Num_Group(&Group_S, "PO_Support", yyvsp[-1].i) ; ; break;} case 583: #line 5513 "GetDP.y" { PostSubOperation_S.SubType = PRINT_ONREGION ; PostSubOperation_S.Case.OnRegion.RegionIndex = -1 ; ; break;} case 584: #line 5519 "GetDP.y" { PostSubOperation_S.SubType = PRINT_ONREGION ; PostSubOperation_S.Case.OnRegion.RegionIndex = Num_Group(&Group_S, "PO_OnRegion", yyvsp[0].i) ; ; break;} case 585: #line 5526 "GetDP.y" { PostSubOperation_S.SubType = PRINT_ONELEMENTSOF ; PostSubOperation_S.Case.OnRegion.RegionIndex = Num_Group(&Group_S, "PO_OnElementsOf", yyvsp[0].i) ; ; break;} case 586: #line 5535 "GetDP.y" { PostSubOperation_S.SubType = PRINT_ONSECTION_2D ; if(List_Nbr(yyvsp[-8].l)!=3 || List_Nbr(yyvsp[-5].l)!=3 || List_Nbr(yyvsp[-2].l)!=3) vyyerror("Expected {3}{3}{3} coordinates, got {%d}{%d}{%d}", List_Nbr(yyvsp[-8].l), List_Nbr(yyvsp[-5].l), List_Nbr(yyvsp[-2].l)); else{ List_Read(yyvsp[-8].l, 0, &PostSubOperation_S.Case.OnSection.x[0]); List_Read(yyvsp[-8].l, 1, &PostSubOperation_S.Case.OnSection.y[0]); List_Read(yyvsp[-8].l, 2, &PostSubOperation_S.Case.OnSection.z[0]); List_Read(yyvsp[-5].l, 0, &PostSubOperation_S.Case.OnSection.x[1]); List_Read(yyvsp[-5].l, 1, &PostSubOperation_S.Case.OnSection.y[1]); List_Read(yyvsp[-5].l, 2, &PostSubOperation_S.Case.OnSection.z[1]); List_Read(yyvsp[-2].l, 0, &PostSubOperation_S.Case.OnSection.x[2]); List_Read(yyvsp[-2].l, 1, &PostSubOperation_S.Case.OnSection.y[2]); List_Read(yyvsp[-2].l, 2, &PostSubOperation_S.Case.OnSection.z[2]); } List_Delete(yyvsp[-8].l); List_Delete(yyvsp[-5].l); List_Delete(yyvsp[-2].l); ; break;} case 587: #line 5557 "GetDP.y" { PostSubOperation_S.SubType = PRINT_ONGRID ; PostSubOperation_S.Case.OnRegion.RegionIndex = Num_Group(&Group_S, "PO_OnGrid", yyvsp[0].i) ; ; break;} case 588: #line 5565 "GetDP.y" { PostSubOperation_S.SubType = PRINT_ONGRID_PARAM ; PostSubOperation_S.Case.OnParamGrid.ExpressionIndex[0] = yyvsp[-12].i ; PostSubOperation_S.Case.OnParamGrid.ExpressionIndex[1] = yyvsp[-10].i ; PostSubOperation_S.Case.OnParamGrid.ExpressionIndex[2] = yyvsp[-8].i ; PostSubOperation_S.Case.OnParamGrid.ParameterValue[0] = yyvsp[-5].l ; PostSubOperation_S.Case.OnParamGrid.ParameterValue[1] = yyvsp[-3].l ; PostSubOperation_S.Case.OnParamGrid.ParameterValue[2] = yyvsp[-1].l ; ; break;} case 589: #line 5576 "GetDP.y" { PostSubOperation_S.SubType = PRINT_ONGRID_0D ; if(List_Nbr(yyvsp[-1].l)!=3) vyyerror("Expected {3} coordinates, got {%d}", List_Nbr(yyvsp[-1].l)); else{ List_Read(yyvsp[-1].l, 0, &PostSubOperation_S.Case.OnGrid.x[0]); List_Read(yyvsp[-1].l, 1, &PostSubOperation_S.Case.OnGrid.y[0]); List_Read(yyvsp[-1].l, 2, &PostSubOperation_S.Case.OnGrid.z[0]); } List_Delete(yyvsp[-1].l); ; break;} case 590: #line 5590 "GetDP.y" { PostSubOperation_S.SubType = PRINT_ONGRID_1D ; if(List_Nbr(yyvsp[-8].l)!=3 || List_Nbr(yyvsp[-5].l)!=3) vyyerror("Expected {3}{3} coordinates, got {%d}{%d}", List_Nbr(yyvsp[-8].l), List_Nbr(yyvsp[-5].l)); else{ List_Read(yyvsp[-8].l, 0, &PostSubOperation_S.Case.OnGrid.x[0]); List_Read(yyvsp[-8].l, 1, &PostSubOperation_S.Case.OnGrid.y[0]); List_Read(yyvsp[-8].l, 2, &PostSubOperation_S.Case.OnGrid.z[0]); List_Read(yyvsp[-5].l, 0, &PostSubOperation_S.Case.OnGrid.x[1]); List_Read(yyvsp[-5].l, 1, &PostSubOperation_S.Case.OnGrid.y[1]); List_Read(yyvsp[-5].l, 2, &PostSubOperation_S.Case.OnGrid.z[1]); } PostSubOperation_S.Case.OnGrid.n[0] = (int)yyvsp[-1].d ; List_Delete(yyvsp[-8].l); List_Delete(yyvsp[-5].l); ; break;} case 591: #line 5611 "GetDP.y" { PostSubOperation_S.SubType = PRINT_ONGRID_2D ; if(List_Nbr(yyvsp[-13].l)!=3 || List_Nbr(yyvsp[-10].l)!=3 || List_Nbr(yyvsp[-7].l)!=3) vyyerror("Expected {3}{3}{3} coordinates, got {%d}{%d}{%d}", List_Nbr(yyvsp[-13].l), List_Nbr(yyvsp[-10].l), List_Nbr(yyvsp[-7].l)); else{ List_Read(yyvsp[-13].l, 0, &PostSubOperation_S.Case.OnGrid.x[0]); List_Read(yyvsp[-13].l, 1, &PostSubOperation_S.Case.OnGrid.y[0]); List_Read(yyvsp[-13].l, 2, &PostSubOperation_S.Case.OnGrid.z[0]); List_Read(yyvsp[-10].l, 0, &PostSubOperation_S.Case.OnGrid.x[1]); List_Read(yyvsp[-10].l, 1, &PostSubOperation_S.Case.OnGrid.y[1]); List_Read(yyvsp[-10].l, 2, &PostSubOperation_S.Case.OnGrid.z[1]); List_Read(yyvsp[-7].l, 0, &PostSubOperation_S.Case.OnGrid.x[2]); List_Read(yyvsp[-7].l, 1, &PostSubOperation_S.Case.OnGrid.y[2]); List_Read(yyvsp[-7].l, 2, &PostSubOperation_S.Case.OnGrid.z[2]); } PostSubOperation_S.Case.OnGrid.n[0] = (int)yyvsp[-3].d ; PostSubOperation_S.Case.OnGrid.n[1] = (int)yyvsp[-1].d ; List_Delete(yyvsp[-13].l); List_Delete(yyvsp[-10].l); List_Delete(yyvsp[-7].l); ; break;} case 592: #line 5638 "GetDP.y" { PostSubOperation_S.SubType = PRINT_ONGRID_3D ; if(List_Nbr(yyvsp[-18].l)!=3 || List_Nbr(yyvsp[-15].l)!=3 || List_Nbr(yyvsp[-12].l)!=3 || List_Nbr(yyvsp[-9].l)!=3) vyyerror("Expected {3}{3}{3}{3} coordinates, got {%d}{%d}{%d}{%d}", List_Nbr(yyvsp[-18].l), List_Nbr(yyvsp[-15].l), List_Nbr(yyvsp[-12].l), List_Nbr(yyvsp[-9].l)); else{ List_Read(yyvsp[-18].l, 0, &PostSubOperation_S.Case.OnGrid.x[0]); List_Read(yyvsp[-18].l, 1, &PostSubOperation_S.Case.OnGrid.y[0]); List_Read(yyvsp[-18].l, 2, &PostSubOperation_S.Case.OnGrid.z[0]); List_Read(yyvsp[-15].l, 0, &PostSubOperation_S.Case.OnGrid.x[1]); List_Read(yyvsp[-15].l, 1, &PostSubOperation_S.Case.OnGrid.y[1]); List_Read(yyvsp[-15].l, 2, &PostSubOperation_S.Case.OnGrid.z[1]); List_Read(yyvsp[-12].l, 0, &PostSubOperation_S.Case.OnGrid.x[2]); List_Read(yyvsp[-12].l, 1, &PostSubOperation_S.Case.OnGrid.y[2]); List_Read(yyvsp[-12].l, 2, &PostSubOperation_S.Case.OnGrid.z[2]); List_Read(yyvsp[-9].l, 0, &PostSubOperation_S.Case.OnGrid.x[3]); List_Read(yyvsp[-9].l, 1, &PostSubOperation_S.Case.OnGrid.y[3]); List_Read(yyvsp[-9].l, 2, &PostSubOperation_S.Case.OnGrid.z[3]); } PostSubOperation_S.Case.OnGrid.n[0] = (int)yyvsp[-5].d ; PostSubOperation_S.Case.OnGrid.n[1] = (int)yyvsp[-3].d ; PostSubOperation_S.Case.OnGrid.n[2] = (int)yyvsp[-1].d ; List_Delete(yyvsp[-18].l); List_Delete(yyvsp[-15].l); List_Delete(yyvsp[-12].l); List_Delete(yyvsp[-9].l); ; break;} case 593: #line 5669 "GetDP.y" { PostSubOperation_S.SubType = PRINT_WITHARGUMENT ; PostSubOperation_S.Case.WithArgument.RegionIndex = Num_Group(&Group_S, "PO_On", yyvsp[-10].i) ; if((i = List_ISearchSeq(Problem_S.Expression, yyvsp[-8].c, fcmp_Expression_Name)) < 0) vyyerror("Unknown Name of Expression: %s", yyvsp[-8].c) ; Free(yyvsp[-8].c) ; PostSubOperation_S.Case.WithArgument.ArgumentIndex = i ; PostSubOperation_S.Case.WithArgument.x[0] = yyvsp[-6].d ; PostSubOperation_S.Case.WithArgument.x[1] = yyvsp[-4].d ; PostSubOperation_S.Case.WithArgument.n = (int)yyvsp[-1].d ; ; break;} case 594: #line 5689 "GetDP.y" { PostSubOperation_S.FileOut = NULL ; PostSubOperation_S.Depth = 1 ; PostSubOperation_S.Smoothing = 0 ; PostSubOperation_S.Skin = 0 ; PostSubOperation_S.Comma = 0 ; PostSubOperation_S.Dimension = _ALL ; PostSubOperation_S.Adapt = 0 ; PostSubOperation_S.Target = -1. ; PostSubOperation_S.HarmonicToTime = 1 ; PostSubOperation_S.FrozenTimeStepList = 0; PostSubOperation_S.TimeStep_L = List_Create(10,10,sizeof(int)); ; PostSubOperation_S.Frequency_L = List_Create(10,10,sizeof(double)); ; PostSubOperation_S.Value_L = List_Create(10,10,sizeof(double)); ; PostSubOperation_S.Iso = 0 ; PostSubOperation_S.Iso_L = List_Create(10,10,sizeof(double)); ; PostSubOperation_S.Sort = 0 ; PostSubOperation_S.NoNewLine = 0 ; PostSubOperation_S.DecomposeInSimplex = 0 ; PostSubOperation_S.ChangeOfCoordinates[0] = -1 ; PostSubOperation_S.ChangeOfCoordinates[1] = -1 ; PostSubOperation_S.ChangeOfCoordinates[2] = -1 ; PostSubOperation_S.ChangeOfValues = NULL ; PostSubOperation_S.Legend = LEGEND_NONE; PostSubOperation_S.LegendPosition[0] = 0.; PostSubOperation_S.LegendPosition[1] = 0.; PostSubOperation_S.LegendPosition[2] = 0.; PostSubOperation_S.EvaluationPoints = NULL ; PostSubOperation_S.StoreInRegister = -1 ; PostSubOperation_S.LastTimeStepOnly = 0; ; break;} case 596: #line 5725 "GetDP.y" { PostSubOperation_S.FileOut = yyvsp[0].c ; if(PostOperation_S.AppendString) strcat(PostSubOperation_S.FileOut, PostOperation_S.AppendString) ; PostSubOperation_S.CatFile = 0 ; ; break;} case 597: #line 5732 "GetDP.y" { PostSubOperation_S.FileOut = yyvsp[0].c ; if(PostOperation_S.AppendString) strcat(PostSubOperation_S.FileOut, PostOperation_S.AppendString) ; PostSubOperation_S.CatFile = 1 ; ; break;} case 598: #line 5739 "GetDP.y" { PostSubOperation_S.FileOut = yyvsp[0].c ; if(PostOperation_S.AppendString) strcat(PostSubOperation_S.FileOut, PostOperation_S.AppendString) ; PostSubOperation_S.CatFile = 2 ; ; break;} case 599: #line 5746 "GetDP.y" { PostSubOperation_S.Depth = (int)yyvsp[0].d ; ; break;} case 600: #line 5750 "GetDP.y" { PostSubOperation_S.Skin = 1 ; ; break;} case 601: #line 5754 "GetDP.y" { PostSubOperation_S.Smoothing = 1 ; ; break;} case 602: #line 5758 "GetDP.y" { PostSubOperation_S.HarmonicToTime = (int)yyvsp[0].d ; ; break;} case 603: #line 5762 "GetDP.y" { PostSubOperation_S.Format = Get_DefineForString(PostSubOperation_Format, yyvsp[0].c, &FlagError) ; if (FlagError){ vyyerror("Unknown PostProcessing Format: %s", yyvsp[0].c); Get_Valid_SXD(PostSubOperation_Format); } Free(yyvsp[0].c) ; ; break;} case 604: #line 5772 "GetDP.y" { PostSubOperation_S.HeaderChar_L = List_Copy(ListOfChar_L) ; PostSubOperation_S.HeaderTag_L = List_Copy(ListOfInt_L) ; ; break;} case 605: #line 5777 "GetDP.y" { PostSubOperation_S.FooterChar_L = List_Copy(ListOfChar_L) ; PostSubOperation_S.FooterTag_L = List_Copy(ListOfInt_L) ; ; break;} case 606: #line 5782 "GetDP.y" { PostSubOperation_S.FormatChar_L = List_Copy(ListOfChar_L) ; PostSubOperation_S.FormatTag_L = List_Copy(ListOfInt_L) ; printf("--> string: \""); for(i=0;i tags: "); for(i=0;i= 1 && (int)yyvsp[0].d <= 3) PostSubOperation_S.Dimension = (int)yyvsp[0].d ; else vyyerror("Wrong Dimension in Print") ; ; break;} case 609: #line 5813 "GetDP.y" { PostSubOperation_S.FrozenTimeStepList = 1; for(i=0 ; i= 0.) PostSubOperation_S.Target = yyvsp[0].d ; else vyyerror("Bad Target value") ; ; break;} case 613: #line 5848 "GetDP.y" { for(i=0 ; i' || yyvsp[0].c[i] == '<' || yyvsp[0].c[i] == '|' || yyvsp[0].c[i] == '&' || yyvsp[0].c[i] == '$' || yyvsp[0].c[i] == '\'' || yyvsp[0].c[i] == '\\' || yyvsp[0].c[i] == '/' || yyvsp[0].c[i] == '{' || yyvsp[0].c[i] == '}' || yyvsp[0].c[i] == '(' || yyvsp[0].c[i] == ')' || yyvsp[0].c[i] == '[' || yyvsp[0].c[i] == ']' || yyvsp[0].c[i] == '!' || yyvsp[0].c[i] == ',' || yyvsp[0].c[i] == '^' || yyvsp[0].c[i] == '.' || yyvsp[0].c[i] == ';' || yyvsp[0].c[i] == '~' || yyvsp[0].c[i] == ' ' || yyvsp[0].c[i] == '\n' || yyvsp[0].c[i] == '\t' || yyvsp[0].c[i] == '#' || yyvsp[0].c[i] == '`' || yyvsp[0].c[i] == ':' ){ break ; } i++ ; } while(i<(int)strlen(yyvsp[0].c)) ; strncpy(tmpstr, &yyvsp[0].c[j], i-j); tmpstr[i-j] = '\0'; k = Get_DefineForString(PostSubOperation_FormatTag, tmpstr, &FlagError) ; if (FlagError){ vyyerror("Unknown Tag in Format: %s", tmpstr); Get_Valid_SXD(PostSubOperation_FormatTag) ; } else { l = List_Nbr(ListOfChar_L) ; List_Add(ListOfInt_L, &l); List_Add(ListOfInt_L, &k); } } else{ List_Add(ListOfChar_L, &yyvsp[0].c[i]); i++ ; } } while (i<(int)strlen(yyvsp[0].c)) ; Free(yyvsp[0].c) ; ; break;} case 632: #line 6017 "GetDP.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d ; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d ; LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ; LoopControlVariablesNameTab[ImbricatedLoop] = "" ; fgetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylinenum ; ImbricatedLoop++; if(ImbricatedLoop > MAX_RECUR_LOOPS-1){ vyyerror("Reached maximum number of imbricated loops"); ImbricatedLoop = MAX_RECUR_LOOPS-1; } if(yyvsp[-3].d > yyvsp[-1].d) skip_until("For", "EndFor"); ; break;} case 633: #line 6032 "GetDP.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d ; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d ; LoopControlVariablesTab[ImbricatedLoop][2] = yyvsp[-1].d ; LoopControlVariablesNameTab[ImbricatedLoop] = "" ; fgetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylinenum ; ImbricatedLoop++; if(ImbricatedLoop > MAX_RECUR_LOOPS-1){ vyyerror("Reached maximum number of imbricated loops"); ImbricatedLoop = MAX_RECUR_LOOPS-1; } if((yyvsp[-1].d > 0. && yyvsp[-5].d > yyvsp[-3].d) || (yyvsp[-1].d < 0. && yyvsp[-5].d < yyvsp[-3].d)) skip_until("For", "EndFor"); ; break;} case 634: #line 6048 "GetDP.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d ; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d ; LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ; LoopControlVariablesNameTab[ImbricatedLoop] = yyvsp[-6].c ; Constant_S.Name = yyvsp[-6].c ; Constant_S.Type = VAR_FLOAT ; Constant_S.Value.Float = yyvsp[-3].d ; List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ; fgetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); /* hack_fsetpos_printf(); */ yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylinenum ; ImbricatedLoop++; if(ImbricatedLoop > MAX_RECUR_LOOPS-1){ vyyerror("Reached maximum number of imbricated loops"); ImbricatedLoop = MAX_RECUR_LOOPS-1; } if(yyvsp[-3].d > yyvsp[-1].d) skip_until("For", "EndFor"); ; break;} case 635: #line 6068 "GetDP.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d ; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d ; LoopControlVariablesTab[ImbricatedLoop][2] = yyvsp[-1].d ; LoopControlVariablesNameTab[ImbricatedLoop] = yyvsp[-8].c ; Constant_S.Name = yyvsp[-8].c ; Constant_S.Type = VAR_FLOAT ; Constant_S.Value.Float = yyvsp[-5].d ; List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ; fgetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylinenum ; ImbricatedLoop++; if(ImbricatedLoop > MAX_RECUR_LOOPS-1){ vyyerror("Reached maximum number of imbricated loops"); ImbricatedLoop = MAX_RECUR_LOOPS-1; } if((yyvsp[-1].d > 0. && yyvsp[-5].d > yyvsp[-3].d) || (yyvsp[-1].d < 0. && yyvsp[-5].d < yyvsp[-3].d)) skip_until("For", "EndFor"); ; break;} case 636: #line 6088 "GetDP.y" { if(ImbricatedLoop <= 0){ vyyerror("Invalid For/EndFor loop"); ImbricatedLoop = 0; } else{ x0 = LoopControlVariablesTab[ImbricatedLoop-1][0]; x1 = LoopControlVariablesTab[ImbricatedLoop-1][1]; step = LoopControlVariablesTab[ImbricatedLoop-1][2]; do_next = (step > 0.) ? (x0+step <= x1) : (x0+step >= x1); if(do_next){ LoopControlVariablesTab[ImbricatedLoop-1][0] += LoopControlVariablesTab[ImbricatedLoop-1][2]; if(strlen(LoopControlVariablesNameTab[ImbricatedLoop-1])){ Constant_S.Name = LoopControlVariablesNameTab[ImbricatedLoop-1] ; Constant_S.Type = VAR_FLOAT ; Constant_S.Value.Float = LoopControlVariablesTab[ImbricatedLoop-1][0] ; if ((i=List_ISearchSeq(ConstantTable_L, &Constant_S, fcmp_Constant))<0) vyyerror("Unknown For/EndFor loop control variable %s", Constant_S.Name) ; List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ; } fsetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop-1]); /* fsetpos() seems to position the file just after the For but with one additional character (the one after EndFor) at the beginning. I do not understand why there is such a mixing of two separate data. hack_fsetpos() removes the useless additional character. */ hack_fsetpos(); /* hack_fsetpos_printf(); */ yylinenum = yylinenoImbricatedLoopsTab[ImbricatedLoop-1]; } else{ ImbricatedLoop--; } } ; break;} case 637: #line 6126 "GetDP.y" { if(!yyvsp[-1].d) skip_until("If", "EndIf"); ; break;} case 638: #line 6130 "GetDP.y" { ; break;} case 640: #line 6145 "GetDP.y" { Constant_S.Name = yyvsp[-3].c ; if(List_Nbr(yyvsp[-1].l) == 1){ Constant_S.Type = VAR_FLOAT ; List_Read(yyvsp[-1].l, 0, &Constant_S.Value.Float) ; List_Delete(yyvsp[-1].l); } else{ Constant_S.Type = VAR_LISTOFFLOAT ; Constant_S.Value.ListOfFloat = yyvsp[-1].l; } List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ; ; break;} case 641: #line 6160 "GetDP.y" { Constant_S.Name = yyvsp[-3].c ; Constant_S.Type = VAR_CHAR ; Constant_S.Value.Char = yyvsp[-1].c ; List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ; ; break;} case 642: #line 6166 "GetDP.y" { Constant_S.Name = yyvsp[-6].c ; Constant_S.Type = VAR_CHAR ; Constant_S.Value.Char = yyvsp[-2].c ; List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ; ; break;} case 643: #line 6172 "GetDP.y" { Constant_S.Name = yyvsp[-3].c ; Constant_S.Type = VAR_CHAR ; Constant_S.Value.Char = yyvsp[-1].c ; List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ; ; break;} case 644: #line 6178 "GetDP.y" { Constant_S.Name = yyvsp[-6].c ; Constant_S.Type = VAR_LISTOFFLOAT ; if (!(File = fopen(yyvsp[-2].c, "r"))) Msg(GERROR, "Unable to open file '%s'", yyvsp[-2].c); Constant_S.Value.ListOfFloat = List_Create(100,100,sizeof(double)); while (!feof(File)) if (fscanf(File, "%lf", &d) != EOF) List_Add(Constant_S.Value.ListOfFloat, &d) ; fclose(File) ; List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ; ; break;} case 645: #line 6189 "GetDP.y" { Msg(DIRECT, yyvsp[-2].c); ; break;} case 646: #line 6194 "GetDP.y" { Constant_S.Name = yyvsp[-1].c ; if (!List_Query(ConstantTable_L, &Constant_S, fcmp_Constant)) vyyerror("Unknown Constant: %s", yyvsp[-1].c) ; else if (Constant_S.Type != VAR_LISTOFFLOAT) printf("%s: %g\n", yyvsp[-1].c, Constant_S.Value.Float); else printf("%s: Dimension %d\n", yyvsp[-1].c, List_Nbr(Constant_S.Value.ListOfFloat)); for(i=0 ; i0) vyyerror("Too many arguments (%d) in Printf", i); else Msg(INFO2, tmpstr); List_Delete(yyvsp[-2].l); ; break;} case 649: #line 6227 "GetDP.y" { Msg(INFO2, "? "); fgets(tmpstr, sizeof(tmpstr), stdin); Constant_S.Value.Float = atof(tmpstr); Constant_S.Name = yyvsp[-2].c ; Constant_S.Type = VAR_FLOAT ; List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ; ; break;} case 650: #line 6237 "GetDP.y" { Msg(INFO2, "[=%g] ? ",yyvsp[-2].d); fgets(tmpstr, sizeof(tmpstr), stdin); if(!strcmp(tmpstr,"\n")) Constant_S.Value.Float = yyvsp[-2].d; else Constant_S.Value.Float = atof(tmpstr); Constant_S.Name = yyvsp[-5].c ; Constant_S.Type = VAR_FLOAT ; List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ; ; break;} case 652: #line 6256 "GetDP.y" { Constant_S.Name = yyvsp[0].c ; Constant_S.Type = VAR_FLOAT ; Constant_S.Value.Float = 0. ; if (!List_Search(ConstantTable_L, &Constant_S, fcmp_Constant)) List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ; ; break;} case 653: #line 6262 "GetDP.y" { Constant_S.Name = yyvsp[-2].c ; Constant_S.Type = VAR_FLOAT ; Constant_S.Value.Float = yyvsp[0].d ; if (!List_Search(ConstantTable_L, &Constant_S, fcmp_Constant)) List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ; ; break;} case 654: #line 6268 "GetDP.y" { Constant_S.Name = yyvsp[-2].c ; Constant_S.Type = VAR_CHAR ; Constant_S.Value.Char = yyvsp[0].c ; if (!List_Search(ConstantTable_L, &Constant_S, fcmp_Constant)) List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ; ; break;} case 655: #line 6279 "GetDP.y" { yyval.c = "Exp"; ; break;} case 656: #line 6280 "GetDP.y" { yyval.c = "Log"; ; break;} case 657: #line 6281 "GetDP.y" { yyval.c = "Log10"; ; break;} case 658: #line 6282 "GetDP.y" { yyval.c = "Sqrt"; ; break;} case 659: #line 6283 "GetDP.y" { yyval.c = "Sin"; ; break;} case 660: #line 6284 "GetDP.y" { yyval.c = "Asin"; ; break;} case 661: #line 6285 "GetDP.y" { yyval.c = "Cos"; ; break;} case 662: #line 6286 "GetDP.y" { yyval.c = "Acos"; ; break;} case 663: #line 6287 "GetDP.y" { yyval.c = "Tan"; ; break;} case 664: #line 6288 "GetDP.y" { yyval.c = "Atan"; ; break;} case 665: #line 6289 "GetDP.y" { yyval.c = "Atan2"; ; break;} case 666: #line 6290 "GetDP.y" { yyval.c = "Sinh"; ; break;} case 667: #line 6291 "GetDP.y" { yyval.c = "Cosh"; ; break;} case 668: #line 6292 "GetDP.y" { yyval.c = "Tanh"; ; break;} case 669: #line 6293 "GetDP.y" { yyval.c = "Fabs"; ; break;} case 670: #line 6294 "GetDP.y" { yyval.c = "Floor"; ; break;} case 671: #line 6295 "GetDP.y" { yyval.c = "Ceil"; ; break;} case 672: #line 6296 "GetDP.y" { yyval.c = "Fmod"; ; break;} case 673: #line 6297 "GetDP.y" { yyval.c = "Modulo"; ; break;} case 674: #line 6298 "GetDP.y" { yyval.c = "Hypot"; ; break;} case 675: #line 6299 "GetDP.y" { yyval.c = yyvsp[0].c; ; break;} case 676: #line 6303 "GetDP.y" { yyval.d = yyvsp[0].d ; ; break;} case 677: #line 6304 "GetDP.y" { yyval.d = yyvsp[-1].d ; ; break;} case 678: #line 6305 "GetDP.y" { yyval.d = -yyvsp[0].d ; ; break;} case 679: #line 6306 "GetDP.y" { yyval.d = !yyvsp[0].d ; ; break;} case 680: #line 6307 "GetDP.y" { yyval.d = yyvsp[-2].d - yyvsp[0].d ; ; break;} case 681: #line 6308 "GetDP.y" { yyval.d = yyvsp[-2].d + yyvsp[0].d ; ; break;} case 682: #line 6309 "GetDP.y" { yyval.d = yyvsp[-2].d * yyvsp[0].d ; ; break;} case 683: #line 6310 "GetDP.y" { yyval.d = yyvsp[-2].d / yyvsp[0].d ; ; break;} case 684: #line 6311 "GetDP.y" { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d ; ; break;} case 685: #line 6312 "GetDP.y" { yyval.d = pow(yyvsp[-2].d,yyvsp[0].d) ; ; break;} case 686: #line 6313 "GetDP.y" { yyval.d = yyvsp[-2].d < yyvsp[0].d ; ; break;} case 687: #line 6314 "GetDP.y" { yyval.d = yyvsp[-2].d > yyvsp[0].d ; ; break;} case 688: #line 6315 "GetDP.y" { yyval.d = yyvsp[-2].d <= yyvsp[0].d ; ; break;} case 689: #line 6316 "GetDP.y" { yyval.d = yyvsp[-2].d >= yyvsp[0].d ; ; break;} case 690: #line 6317 "GetDP.y" { yyval.d = yyvsp[-2].d == yyvsp[0].d ; ; break;} case 691: #line 6318 "GetDP.y" { yyval.d = yyvsp[-2].d != yyvsp[0].d ; ; break;} case 692: #line 6319 "GetDP.y" { yyval.d = yyvsp[-2].d && yyvsp[0].d ; ; break;} case 693: #line 6320 "GetDP.y" { yyval.d = yyvsp[-2].d || yyvsp[0].d ; ; break;} case 694: #line 6321 "GetDP.y" { yyval.d = exp(yyvsp[-1].d); ; break;} case 695: #line 6322 "GetDP.y" { yyval.d = log(yyvsp[-1].d); ; break;} case 696: #line 6323 "GetDP.y" { yyval.d = log10(yyvsp[-1].d); ; break;} case 697: #line 6324 "GetDP.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} case 698: #line 6325 "GetDP.y" { yyval.d = sin(yyvsp[-1].d); ; break;} case 699: #line 6326 "GetDP.y" { yyval.d = asin(yyvsp[-1].d); ; break;} case 700: #line 6327 "GetDP.y" { yyval.d = cos(yyvsp[-1].d); ; break;} case 701: #line 6328 "GetDP.y" { yyval.d = acos(yyvsp[-1].d); ; break;} case 702: #line 6329 "GetDP.y" { yyval.d = tan(yyvsp[-1].d); ; break;} case 703: #line 6330 "GetDP.y" { yyval.d = atan(yyvsp[-1].d); ; break;} case 704: #line 6331 "GetDP.y" { yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ; break;} case 705: #line 6332 "GetDP.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} case 706: #line 6333 "GetDP.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} case 707: #line 6334 "GetDP.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} case 708: #line 6335 "GetDP.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} case 709: #line 6336 "GetDP.y" { yyval.d = floor(yyvsp[-1].d); ; break;} case 710: #line 6337 "GetDP.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} case 711: #line 6338 "GetDP.y" { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d); ; break;} case 712: #line 6339 "GetDP.y" { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d); ; break;} case 713: #line 6340 "GetDP.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} case 714: #line 6344 "GetDP.y" { Msg(DIRECT, "Value (line %ld) --> %.16g", yylinenum, yyvsp[-1].d); ; break;} case 715: #line 6349 "GetDP.y" { yyval.d = yyvsp[0].d ; ; break;} case 716: #line 6350 "GetDP.y" { yyval.d = (double)yyvsp[0].i ; ; break;} case 717: #line 6351 "GetDP.y" { yyval.d = 3.1415926535897932 ; ; break;} case 718: #line 6352 "GetDP.y" { yyval.d = (double)_0D ; ; break;} case 719: #line 6353 "GetDP.y" { yyval.d = (double)_1D ; ; break;} case 720: #line 6354 "GetDP.y" { yyval.d = (double)_2D ; ; break;} case 721: #line 6355 "GetDP.y" { yyval.d = (double)_3D ; ; break;} case 722: #line 6357 "GetDP.y" { Constant_S.Name = yyvsp[0].c ; if (!List_Query(ConstantTable_L, &Constant_S, fcmp_Constant)) { vyyerror("Unknown Constant: %s", yyvsp[0].c) ; yyval.d = 0. ; } else { if (Constant_S.Type == VAR_FLOAT) yyval.d = Constant_S.Value.Float ; else { vyyerror("Single value Constant needed: %s", yyvsp[0].c) ; yyval.d = 0. ; } } Free(yyvsp[0].c) ; ; break;} case 723: #line 6375 "GetDP.y" { yyval.l = NULL; ; break;} case 724: #line 6378 "GetDP.y" { yyval.l = List_Create(1,1,sizeof(double)) ; List_Add(yyval.l, &(yyvsp[0].d)) ; ; break;} case 725: #line 6384 "GetDP.y" { yyval.l = yyvsp[0].l; ; break;} case 726: #line 6387 "GetDP.y" { yyval.l = yyvsp[-1].l; ; break;} case 727: #line 6394 "GetDP.y" { yyval.l = List_Create(20,20,sizeof(double)); List_Add(yyval.l, &(yyvsp[0].d)) ; ; break;} case 728: #line 6400 "GetDP.y" { yyval.l = yyvsp[0].l; ; break;} case 729: #line 6403 "GetDP.y" { List_Add(yyval.l, &(yyvsp[0].d)) ; ; break;} case 730: #line 6406 "GetDP.y" { for(i=0 ; i=yyvsp[0].d) ; (yyvsp[-2].dyyvsp[-2].d && yyvsp[0].d>0)){ vyyerror("Wrong increment in '%g : %g : %g'", yyvsp[-4].d, yyvsp[-2].d, yyvsp[0].d) ; List_Add(yyval.l, &(yyvsp[-4].d)) ; } else for(d=yyvsp[-4].d ; (yyvsp[0].d>0)?(d<=yyvsp[-2].d):(d>=yyvsp[-2].d) ; d+=yyvsp[0].d) List_Add(yyval.l, &d) ; ; break;} case 733: #line 6435 "GetDP.y" { yyval.l = List_Create(20,20,sizeof(double)) ; Constant_S.Name = yyvsp[-2].c ; if (!List_Query(ConstantTable_L, &Constant_S, fcmp_Constant)) vyyerror("Unknown Constant: %s", yyvsp[-2].c) ; else if (Constant_S.Type != VAR_LISTOFFLOAT) /* vyyerror("Multi value Constant needed: %s", $1) ; */ List_Add(yyval.l, &Constant_S.Value.Float) ; else for(i=0 ; i0){ vyyerror("Too many arguments (%d) in Sprintf", i); yyval.c = yyvsp[-3].c; } else{ yyval.c = (char*)Malloc((strlen(tmpstr)+1)*sizeof(char)); strcpy(yyval.c, tmpstr); Free(yyvsp[-3].c); } List_Delete(yyvsp[-1].l); ; break;} case 748: #line 6622 "GetDP.y" { time(&date_info); yyval.c = (char *)Malloc((strlen(ctime(&date_info))+1)*sizeof(char)) ; strcpy(yyval.c, ctime(&date_info)); yyval.c[strlen(yyval.c)-1] = 0; ; break;} case 749: #line 6632 "GetDP.y" { if (yyvsp[-3].c != NULL && yyvsp[-1].c != NULL) { yyval.c = (char *)Malloc((strlen(yyvsp[-3].c)+strlen(yyvsp[-1].c)+1)*sizeof(char)) ; strcpy(yyval.c, yyvsp[-3].c) ; strcat(yyval.c, yyvsp[-1].c) ; } else { vyyerror("Undefined argument for StrCat function") ; yyval.c = NULL ; } ; break;} } /* the action file gets copied in in place of this dollarsign */ #line 543 "/usr/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; #ifdef YYLSP_NEEDED yylsp -= yylen; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif *++yyvsp = yyval; #ifdef YYLSP_NEEDED yylsp++; if (yylen == 0) { yylsp->first_line = yylloc.first_line; yylsp->first_column = yylloc.first_column; yylsp->last_line = (yylsp-1)->last_line; yylsp->last_column = (yylsp-1)->last_column; yylsp->text = 0; } else { yylsp->last_line = (yylsp+yylen-1)->last_line; yylsp->last_column = (yylsp+yylen-1)->last_column; } #endif /* Now "shift" the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTBASE] + *yyssp; if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTBASE]; goto yynewstate; yyerrlab: /* here on detecting error */ if (! yyerrstatus) /* If not already recovering from an error, report this error. */ { ++yynerrs; #ifdef YYERROR_VERBOSE yyn = yypact[yystate]; if (yyn > YYFLAG && yyn < YYLAST) { int size = 0; char *msg; int x, count; count = 0; /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) size += strlen(yytname[x]) + 15, count++; msg = (char *) malloc(size + 15); if (msg != 0) { strcpy(msg, "parse error"); if (count < 5) { count = 0; for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) { strcat(msg, count == 0 ? ", expecting `" : " or `"); strcat(msg, yytname[x]); strcat(msg, "'"); count++; } } yyerror(msg); free(msg); } else yyerror ("parse error; also virtual memory exceeded"); } else #endif /* YYERROR_VERBOSE */ yyerror("parse error"); } goto yyerrlab1; yyerrlab1: /* here on error raised explicitly by an action */ if (yyerrstatus == 3) { /* if just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) YYABORT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); #endif yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this */ goto yyerrhandle; yyerrdefault: /* current state does not do anything special for the error token. */ #if 0 /* This is wrong; only states that explicitly want error tokens should shift them. */ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ if (yyn) goto yydefault; #endif yyerrpop: /* pop the current state because it cannot handle the error token */ if (yyssp == yyss) YYABORT; yyvsp--; yystate = *--yyssp; #ifdef YYLSP_NEEDED yylsp--; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "Error: state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif yyerrhandle: yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrdefault; yyn += YYTERROR; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) goto yyerrdefault; yyn = yytable[yyn]; if (yyn < 0) { if (yyn == YYFLAG) goto yyerrpop; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting error token, "); #endif *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif yystate = yyn; goto yynewstate; yyacceptlab: /* YYACCEPT comes here. */ if (yyfree_stacks) { free (yyss); free (yyvs); #ifdef YYLSP_NEEDED free (yyls); #endif } return 0; yyabortlab: /* YYABORT comes here. */ if (yyfree_stacks) { free (yyss); free (yyvs); #ifdef YYLSP_NEEDED free (yyls); #endif } return 1; } #line 6643 "GetDP.y" /* This is a hack... Bison redefines 'const' if !__cplusplus and !__STDC__ */ #ifdef const #undef const #endif /* A d d _ G r o u p & C o . */ int Add_Group(struct Group * Group_P, char * Name, int Flag_Plus, int Num_Index) { int i ; if (!Problem_S.Group) Problem_S.Group = List_Create(50, 50, sizeof (struct Group) ) ; switch (Flag_Plus) { case 1 : sprintf(tmpstr, "_%s_%d", Name, List_Nbr(Problem_S.Group)) ; Group_P->Name = strsave(tmpstr) ; break ; case 2 : sprintf(tmpstr, "%s_%d", Name, Num_Index) ; Group_P->Name = strsave(tmpstr) ; break ; default : Group_P->Name = Name ; } if ((i = List_ISearchSeq(Problem_S.Group, Group_P->Name, fcmp_Group_Name)) < 0) { i = Group_P->Num = List_Nbr(Problem_S.Group) ; Group_P->ExtendedList = NULL ; Group_P->ExtendedSuppList = NULL ; List_Add(Problem_S.Group, Group_P) ; } else List_Write(Problem_S.Group, i, Group_P) ; return i ; } int Add_Group_2(struct Group * Group_P, char * Name, int Flag_Add, int Flag_Plus, int Num_Index1, int Num_Index2) { int i, j ; List_T *InitialList; if (!Problem_S.Group) Problem_S.Group = List_Create(50, 50, sizeof (struct Group) ) ; if (Flag_Plus == 0) sprintf(tmpstr, "%s", Name) ; else if (Flag_Plus == 1) sprintf(tmpstr, "%s_%d", Name, Num_Index1) ; else if (Flag_Plus == 2) sprintf(tmpstr, "%s_%d_%d", Name, Num_Index1,Num_Index2) ; Group_P->Name = strsave(tmpstr) ; if ((i = List_ISearchSeq(Problem_S.Group, Group_P->Name, fcmp_Group_Name)) < 0) { i = Group_P->Num = List_Nbr(Problem_S.Group) ; Group_P->ExtendedList = NULL ; Group_P->ExtendedSuppList = NULL ; List_Add(Problem_S.Group, Group_P) ; } else if (Flag_Add) { InitialList = ((struct Group *)List_Pointer(Problem_S.Group, i))->InitialList ; for (j = 0 ; j < List_Nbr(Group_P->InitialList) ; j++) { List_Add(InitialList, (int *)List_Pointer(Group_P->InitialList, j)) ; } } else List_Write(Problem_S.Group, i, Group_P) ; return i ; } int Num_Group(struct Group * Group_P, char * Name, int Num_Group) { if (Num_Group >= 0) /* OK */ ; else if (Num_Group == -1) Num_Group = Add_Group(Group_P, Name, 1, 0) ; else vyyerror("Bad Group right hand side") ; return Num_Group ; } /* A d d _ E x p r e s s i o n */ int Add_Expression(struct Expression * Expression_P, char * Name, int Flag_Plus) { int i ; if (!Problem_S.Expression) Problem_S.Expression = List_Create(50, 50, sizeof (struct Expression) ) ; if (Flag_Plus) { sprintf(tmpstr, "_%s_%d", Name, List_Nbr(Problem_S.Expression)) ; Expression_P->Name = strsave(tmpstr) ; } else Expression_P->Name = Name ; if ((i = List_ISearchSeq (Problem_S.Expression, Name, fcmp_Expression_Name)) < 0) { i = List_Nbr(Problem_S.Expression) ; List_Add(Problem_S.Expression, Expression_P) ; } else List_Write(Problem_S.Expression, i, Expression_P) ; return i ; } /* L i s t e I n d e x d e s D e f i n e Q u a n t i t y */ void Pro_DefineQuantityIndex_1(List_T * WholeQuantity_L, int TraceGroupIndex) { int i ; struct WholeQuantity * WholeQuantity_P ; struct TwoInt Pair ; WholeQuantity_P = (List_Nbr(WholeQuantity_L) > 0)? (struct WholeQuantity*)List_Pointer(WholeQuantity_L, 0) : NULL ; for (i = 0 ; i < List_Nbr(WholeQuantity_L) ; i++) switch ((WholeQuantity_P+i)->Type) { case WQ_OPERATORANDQUANTITY : case WQ_OPERATORANDQUANTITYEVAL : case WQ_SOLIDANGLE : case WQ_ORDER : Pair.Int1 = (WholeQuantity_P+i)->Case.OperatorAndQuantity.Index ; Pair.Int2 = TraceGroupIndex ; List_Insert(ListOfTwoInt_L, &Pair, fcmp_int) ; break ; case WQ_MHTRANSFORM : Pro_DefineQuantityIndex_1 ((WholeQuantity_P+i)->Case.MHTransform.WholeQuantity, TraceGroupIndex) ; case WQ_TIMEDERIVATIVE : Pro_DefineQuantityIndex_1 ((WholeQuantity_P+i)->Case.TimeDerivative.WholeQuantity, TraceGroupIndex) ; break ; case WQ_ATANTERIORTIMESTEP : Pro_DefineQuantityIndex_1 ((WholeQuantity_P+i)->Case.AtAnteriorTimeStep.WholeQuantity, TraceGroupIndex) ; break ; case WQ_CAST : Pro_DefineQuantityIndex_1 ((WholeQuantity_P+i)->Case.Cast.WholeQuantity, TraceGroupIndex) ; break ; case WQ_TRACE : Pro_DefineQuantityIndex_1 ((WholeQuantity_P+i)->Case.Trace.WholeQuantity, (WholeQuantity_P+i)->Case.Trace.InIndex) ; break ; case WQ_TEST : Pro_DefineQuantityIndex_1 ((WholeQuantity_P+i)->Case.Test.WholeQuantity_True, TraceGroupIndex) ; Pro_DefineQuantityIndex_1 ((WholeQuantity_P+i)->Case.Test.WholeQuantity_False, TraceGroupIndex) ; break ; } List_Sort(ListOfTwoInt_L, fcmp_int) ; } void Pro_DefineQuantityIndex(List_T * WholeQuantity_L, int DefineQuantityIndexEqu, int * NbrQuantityIndex, int ** QuantityIndexTable, int ** QuantityTraceGroupIndexTable) { int i ; struct TwoInt Pair, *Pair_P ; List_Reset(ListOfTwoInt_L) ; /* special case for the Equ part (right of the comma) FIXME: change this when we allow a full WholeQuantity expression there */ if (DefineQuantityIndexEqu >= 0){ Pair.Int1 = DefineQuantityIndexEqu ; Pair.Int2 = -1 ; List_Add(ListOfTwoInt_L, &Pair) ; } Pro_DefineQuantityIndex_1(WholeQuantity_L, -1) ; *NbrQuantityIndex = List_Nbr(ListOfTwoInt_L) ; *QuantityIndexTable = (int *)Malloc(List_Nbr(ListOfTwoInt_L) * sizeof(int)) ; *QuantityTraceGroupIndexTable = (int *)Malloc(List_Nbr(ListOfTwoInt_L) * sizeof(int)) ; for (i = 0 ; i < List_Nbr(ListOfTwoInt_L) ; i++){ Pair_P = (struct TwoInt*)List_Pointer(ListOfTwoInt_L, i) ; (*QuantityIndexTable)[i] = Pair_P->Int1 ; (*QuantityTraceGroupIndexTable)[i] = Pair_P->Int2 ; } } /* C h e c k _ N a m e O f S t r u c t N o t E x i s t */ void Check_NameOfStructNotExist(char * Struct, List_T * List_L, void * data, int (*fcmp)(const void *a, const void *b)) { if (List_ISearchSeq(List_L, data, fcmp) >= 0) vyyerror("Redefinition of %s %s", Struct, (char*)data) ; } /* P r i n t _ C o n s t a n t */ void Print_Constant(){ int i,j; char tmp1[1000], tmp2[100]; struct Constant *Constant_P; for(i=0 ; iType){ case VAR_FLOAT: Msg(CHECK, "%s = %g;\n", Constant_P->Name, Constant_P->Value.Float); break; case VAR_LISTOFFLOAT: sprintf(tmp1, "%g", *(double*)List_Pointer(Constant_P->Value.ListOfFloat,0)); for(j=1 ; jValue.ListOfFloat) ; j++){ sprintf(tmp2, ",%g", *(double*)List_Pointer(Constant_P->Value.ListOfFloat,j)); strcat(tmp1,tmp2); } Msg(CHECK, "%s = {%s};\n", Constant_P->Name, tmp1); break; case VAR_CHAR: Msg(CHECK, "%s = \"%s\";\n", Constant_P->Name, Constant_P->Value.Char); break; } } } /* f c m p _ . . . */ int fcmp_Constant (const void *a, const void *b) { return ( strcmp(((struct Constant *)a)->Name, ((struct Constant *)b)->Name)) ; } int fcmp_Expression_Name(const void * a, const void * b) { return ( strcmp((char *)a, ((struct Expression *)b)->Name ) ) ; } int fcmp_Group_Name(const void * a, const void * b) { return ( strcmp((char *)a, ((struct Group *)b)->Name ) ) ; } int fcmp_Constraint_Name(const void * a, const void * b) { return ( strcmp((char *)a, ((struct Constraint *)b)->Name ) ) ; } int fcmp_JacobianMethod_Name(const void * a, const void * b) { return ( strcmp((char *)a, ((struct JacobianMethod *)b)->Name ) ) ; } int fcmp_IntegrationMethod_Name(const void * a, const void * b) { return ( strcmp((char *)a, ((struct IntegrationMethod *)b)->Name ) ) ; } int fcmp_BasisFunction_Name(const void * a, const void * b) { return ( strcmp((char *)a, ((struct BasisFunction *)b)->Name ) ) ; } int fcmp_FunctionSpace_Name(const void * a, const void * b) { return ( strcmp((char *)a, ((struct FunctionSpace *)b)->Name ) ) ; } int fcmp_BasisFunction_NameOfCoef(const void * a, const void * b) { return ( strcmp((char *)a, ((struct BasisFunction *)b)->NameOfCoef ) ) ; } int fcmp_SubSpace_Name(const void * a, const void * b) { return ( strcmp((char *)a, ((struct SubSpace *)b)->Name ) ) ; } int fcmp_GlobalQuantity_Name(const void * a, const void * b) { return ( strcmp((char *)a, ((struct GlobalQuantity *)b)->Name ) ) ; } int fcmp_Formulation_Name(const void * a, const void * b) { return ( strcmp((char *)a, ((struct Formulation *)b)->Name ) ) ; } int fcmp_DefineQuantity_Name(const void * a, const void * b) { return ( strcmp((char *)a, ((struct DefineQuantity *)b)->Name ) ) ; } int fcmp_DefineSystem_Name(const void * a, const void * b) { return ( strcmp((char *)a, ((struct DefineSystem *)b)->Name ) ) ; } int fcmp_Resolution_Name(const void * a, const void * b) { return ( strcmp((char *)a, ((struct Resolution *)b)->Name ) ) ; } int fcmp_PostProcessing_Name(const void * a, const void * b) { return ( strcmp((char *)a, ((struct PostProcessing *)b)->Name ) ) ; } int fcmp_PostQuantity_Name(const void * a, const void * b) { return ( strcmp((char *)a, ((struct PostQuantity *)b)->Name ) ) ; } int fcmp_PostOperation_Name(const void * a, const void * b) { return ( strcmp((char *)a, ((struct PostOperation *)b)->Name ) ) ; } int Print_ListOfDouble(char *format, List_T *list, char *buffer){ int i, j, k; char tmp1[256], tmp2[256]; j=0; while(format[j]!='%') j++; strncpy(buffer, format, j); buffer[j]='\0'; for(i = 0 ; i