diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index b341d76ca5032a9d880cb7fa682feb3ab65f7bd1..936739d844cf38db67606d61a3ccab10aa3c0307 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -130,7 +130,7 @@ #line 1 "Gmsh.y" -// $Id: Gmsh.tab.cpp,v 1.318 2007-04-21 19:46:27 geuzaine Exp $ +// $Id: Gmsh.tab.cpp,v 1.319 2007-04-22 06:42:26 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -536,34 +536,34 @@ static const short yyrline[] = { 0, 574, 584, 589, 593, 602, 604, 605, 606, 607, 610, 612, 615, 650, 689, 743, 760, 778, 789, 806, 813, 827, 844, 870, 897, 911, 928, 942, 959, 979, 1002, - 1012, 1026, 1031, 1039, 1065, 1082, 1099, 1109, 1120, 1123, - 1131, 1164, 1200, 1222, 1240, 1258, 1276, 1302, 1320, 1346, - 1366, 1390, 1414, 1440, 1457, 1476, 1494, 1533, 1538, 1543, - 1549, 1571, 1593, 1609, 1629, 1646, 1663, 1683, 1689, 1694, - 1699, 1706, 1708, 1709, 1712, 1717, 1721, 1744, 1767, 1790, - 1817, 1830, 1836, 1842, 1853, 1863, 1873, 1889, 1907, 1921, - 1928, 1934, 1943, 1956, 2007, 2022, 2037, 2057, 2067, 2089, - 2093, 2098, 2103, 2113, 2130, 2146, 2172, 2199, 2231, 2238, - 2243, 2249, 2253, 2261, 2270, 2278, 2286, 2290, 2298, 2302, - 2310, 2314, 2322, 2326, 2333, 2337, 2349, 2356, 2363, 2370, - 2377, 2384, 2391, 2398, 2405, 2412, 2416, 2423, 2427, 2434, - 2438, 2445, 2449, 2456, 2460, 2467, 2471, 2478, 2482, 2489, - 2493, 2500, 2504, 2514, 2518, 2523, 2533, 2555, 2579, 2583, - 2606, 2625, 2643, 2661, 2690, 2725, 2730, 2757, 2771, 2789, - 2796, 2802, 2805, 2813, 2823, 2825, 2826, 2827, 2828, 2829, - 2830, 2831, 2832, 2839, 2840, 2841, 2842, 2843, 2844, 2845, - 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, - 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, - 2866, 2867, 2868, 2869, 2870, 2872, 2873, 2874, 2875, 2876, - 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, - 2887, 2888, 2889, 2890, 2891, 2892, 2897, 2902, 2903, 2904, - 2905, 2906, 2907, 2911, 2927, 2942, 2962, 2976, 2989, 3012, - 3030, 3048, 3066, 3084, 3091, 3096, 3100, 3104, 3108, 3114, - 3119, 3123, 3127, 3133, 3139, 3146, 3152, 3156, 3161, 3165, - 3173, 3183, 3192, 3200, 3206, 3217, 3237, 3247, 3257, 3267, - 3284, 3310, 3316, 3320, 3324, 3336, 3341, 3353, 3360, 3381, - 3386, 3400, 3406, 3412, 3417, 3423, 3428, 3436, 3444, 3458, - 3472, 3476, 3495, 3517 + 1012, 1026, 1031, 1039, 1065, 1081, 1102, 1117, 1132, 1139, + 1151, 1185, 1221, 1243, 1261, 1279, 1297, 1323, 1341, 1367, + 1387, 1411, 1435, 1461, 1478, 1497, 1515, 1553, 1557, 1561, + 1566, 1588, 1610, 1626, 1646, 1663, 1680, 1700, 1706, 1711, + 1716, 1723, 1725, 1726, 1729, 1734, 1738, 1761, 1784, 1807, + 1834, 1847, 1853, 1859, 1870, 1880, 1890, 1906, 1924, 1938, + 1945, 1951, 1960, 1973, 2024, 2039, 2054, 2074, 2084, 2106, + 2110, 2115, 2120, 2130, 2147, 2163, 2189, 2216, 2248, 2255, + 2260, 2266, 2270, 2278, 2287, 2295, 2303, 2307, 2315, 2319, + 2327, 2331, 2339, 2343, 2350, 2354, 2366, 2373, 2380, 2387, + 2394, 2401, 2408, 2415, 2422, 2429, 2433, 2440, 2444, 2451, + 2455, 2462, 2466, 2473, 2477, 2484, 2488, 2495, 2499, 2506, + 2510, 2517, 2521, 2531, 2535, 2540, 2550, 2572, 2596, 2600, + 2623, 2642, 2660, 2678, 2707, 2742, 2747, 2774, 2788, 2806, + 2813, 2819, 2822, 2830, 2840, 2842, 2843, 2844, 2845, 2846, + 2847, 2848, 2849, 2856, 2857, 2858, 2859, 2860, 2861, 2862, + 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, + 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, + 2883, 2884, 2885, 2886, 2887, 2889, 2890, 2891, 2892, 2893, + 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, + 2904, 2905, 2906, 2907, 2908, 2909, 2914, 2919, 2920, 2921, + 2922, 2923, 2924, 2928, 2944, 2959, 2979, 2993, 3006, 3029, + 3047, 3065, 3083, 3101, 3108, 3113, 3117, 3121, 3125, 3131, + 3136, 3140, 3144, 3150, 3156, 3163, 3169, 3173, 3178, 3182, + 3190, 3200, 3209, 3217, 3223, 3234, 3254, 3264, 3274, 3284, + 3301, 3327, 3333, 3337, 3341, 3353, 3358, 3370, 3377, 3398, + 3403, 3417, 3423, 3429, 3434, 3440, 3445, 3453, 3461, 3475, + 3489, 3493, 3512, 3534 }; #endif @@ -3821,7 +3821,7 @@ case 85: case 86: #line 1082 "Gmsh.y" { - AttractorField *att = new AttractorField(); + AttractorField *att = new AttractorField(); for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ double d; List_Read(yyvsp[-1].l, i, &d); @@ -3835,54 +3835,70 @@ case 86: } } att->buildFastSearchStructures(); - fields.insert(att,(int)yyvsp[-4].d); + fields.insert(att, (int)yyvsp[-4].d); + // dummy values + yyval.s.Type = 0; + yyval.s.Num = 0; ; break;} case 87: -#line 1099 "Gmsh.y" +#line 1103 "Gmsh.y" { - double pars[]={0,CTX.lc/10,CTX.lc,CTX.lc/100,CTX.lc/20}; - for (int i=0;i<List_Nbr(yyvsp[-1].l);i++){ - if(i>4) - yymsg(GERROR,"Too many parameters for Thresold Field (max=5)"); - else - List_Read(yyvsp[-1].l,i,&pars[i]); - } - fields.insert(new ThresholdField(fields.get((int)pars[0]),pars[1],pars[2],pars[3],pars[4]),(int)yyvsp[-4].d); - ; + double pars[] = {0, CTX.lc/10, CTX.lc, CTX.lc/100, CTX.lc/20}; + for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ + if(i > 4) + yymsg(GERROR, "Too many parameters for Thresold Field (max=5)"); + else + List_Read(yyvsp[-1].l, i, &pars[i]); + } + fields.insert(new ThresholdField(fields.get((int)pars[0]), pars[1], + pars[2], pars[3], pars[4]), (int)yyvsp[-4].d); + // dummy values + yyval.s.Type = 0; + yyval.s.Num = 0; + ; break;} case 88: -#line 1109 "Gmsh.y" -{ - std::list<Field*> *flist=new std::list<Field*>; - flist->resize(0); - for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ - double id; - List_Read(yyvsp[-1].l, i, &id); - Field *pfield=fields.get((int)id); - if(pfield)flist->push_front(pfield); - } - fields.insert(new FunctionField(flist,yyvsp[-2].c),(int)yyvsp[-5].d); - ; +#line 1118 "Gmsh.y" +{ + std::list<Field*> *flist = new std::list<Field*>; + flist->resize(0); + for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ + double id; + List_Read(yyvsp[-1].l, i, &id); + Field *pfield = fields.get((int)id); + if(pfield)flist->push_front(pfield); + } + fields.insert(new FunctionField(flist,yyvsp[-2].c),(int)yyvsp[-5].d); + // dummy values + yyval.s.Type = 0; + yyval.s.Num = 0; + ; break;} case 89: -#line 1120 "Gmsh.y" +#line 1133 "Gmsh.y" { - fields.insert(new StructuredField(yyvsp[-1].c),(int)yyvsp[-4].d); - ; + fields.insert(new StructuredField(yyvsp[-1].c), (int)yyvsp[-4].d); + // dummy values + yyval.s.Type = 0; + yyval.s.Num = 0; + ; break;} case 90: -#line 1123 "Gmsh.y" +#line 1140 "Gmsh.y" { - for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ - double id; - List_Read(yyvsp[-1].l, i, &id); + for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ + double id; + List_Read(yyvsp[-1].l, i, &id); BGMAddField(fields.get((int)id)); - } - ; + } + // dummy values + yyval.s.Type = 0; + yyval.s.Num = 0; + ; break;} case 91: -#line 1132 "Gmsh.y" +#line 1152 "Gmsh.y" { double pars[] = { CTX.lc/10, CTX.lc/100., CTX.lc/20, 1, 3 }; for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ @@ -3893,9 +3909,10 @@ case 91: } // treshold attractor: first parameter is the treshold, next two // are the in and out size fields, last is transition factor - AttractorField *attractor= new AttractorField(); + AttractorField *attractor = new AttractorField(); fields.insert(attractor); - Field *threshold=new ThresholdField(attractor,pars[0],pars[0]*pars[4],pars[1],pars[2]); + Field *threshold = new ThresholdField(attractor, pars[0], pars[0] * pars[4], + pars[1], pars[2]); fields.insert(threshold); BGMAddField(threshold); for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ @@ -3917,7 +3934,7 @@ case 91: ; break;} case 92: -#line 1165 "Gmsh.y" +#line 1186 "Gmsh.y" { double pars[] = { CTX.lc/10, CTX.lc/100., CTX.lc/20, 10, 3 }; for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ @@ -3930,10 +3947,10 @@ case 92: // are the in and out size fields, last is transition factor AttractorField *att = new AttractorField(); fields.insert(att); - Field *threshold=new ThresholdField(att,pars[0],pars[0]*pars[4],pars[1],pars[2]); + Field *threshold = new ThresholdField(att, pars[0], pars[0] * pars[4], + pars[1], pars[2]); fields.insert(threshold); BGMAddField(threshold); - //tresholdAttractor::New(pars[0], pars[1], pars[2], pars[4]); for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; List_Read(yyvsp[-3].l, i, &d); @@ -3955,7 +3972,7 @@ case 92: ; break;} case 93: -#line 1201 "Gmsh.y" +#line 1222 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -3976,7 +3993,7 @@ case 93: ; break;} case 94: -#line 1223 "Gmsh.y" +#line 1244 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindCurve(num)){ @@ -3996,7 +4013,7 @@ case 94: ; break;} case 95: -#line 1241 "Gmsh.y" +#line 1262 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindCurve(num)){ @@ -4016,7 +4033,7 @@ case 95: ; break;} case 96: -#line 1259 "Gmsh.y" +#line 1280 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindCurve(num)){ @@ -4036,7 +4053,7 @@ case 96: ; break;} case 97: -#line 1277 "Gmsh.y" +#line 1298 "Gmsh.y" { int num = (int)yyvsp[-6].d; if(FindCurve(num)){ @@ -4064,7 +4081,7 @@ case 97: ; break;} case 98: -#line 1303 "Gmsh.y" +#line 1324 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindCurve(num)){ @@ -4084,7 +4101,7 @@ case 98: ; break;} case 99: -#line 1321 "Gmsh.y" +#line 1342 "Gmsh.y" { int num = (int)yyvsp[-6].d; if(FindCurve(num)){ @@ -4112,7 +4129,7 @@ case 99: ; break;} case 100: -#line 1348 "Gmsh.y" +#line 1369 "Gmsh.y" { int num = (int)yyvsp[-14].d; if(FindCurve(num)){ @@ -4133,7 +4150,7 @@ case 100: ; break;} case 101: -#line 1367 "Gmsh.y" +#line 1388 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(List_Nbr(yyvsp[-1].l) < 4){ @@ -4159,7 +4176,7 @@ case 101: ; break;} case 102: -#line 1391 "Gmsh.y" +#line 1412 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(List_Nbr(yyvsp[-1].l) < 4){ @@ -4185,7 +4202,7 @@ case 102: ; break;} case 103: -#line 1415 "Gmsh.y" +#line 1436 "Gmsh.y" { int num = (int)yyvsp[-8].d; if(List_Nbr(yyvsp[-5].l) + (int)yyvsp[-1].d + 1 != List_Nbr(yyvsp[-3].l)){ @@ -4213,7 +4230,7 @@ case 103: ; break;} case 104: -#line 1441 "Gmsh.y" +#line 1462 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindEdgeLoop(num)){ @@ -4232,7 +4249,7 @@ case 104: ; break;} case 105: -#line 1458 "Gmsh.y" +#line 1479 "Gmsh.y" { int num = (int)yyvsp[-4].i; if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE)){ @@ -4250,7 +4267,7 @@ case 105: ; break;} case 106: -#line 1477 "Gmsh.y" +#line 1498 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindSurface(num)){ @@ -4270,7 +4287,7 @@ case 106: ; break;} case 107: -#line 1495 "Gmsh.y" +#line 1516 "Gmsh.y" { int num = (int)yyvsp[-4].d, type = 0; if(FindSurface(num)){ @@ -4310,26 +4327,26 @@ case 107: ; break;} case 108: -#line 1534 "Gmsh.y" +#line 1554 "Gmsh.y" { - myGmshSurface = 0; - ; + myGmshSurface = 0; + ; break;} case 109: -#line 1539 "Gmsh.y" +#line 1558 "Gmsh.y" { - myGmshSurface = gmshSurface :: surfaceByTag ( (int) yyvsp[-1].d); - ; + myGmshSurface = gmshSurface :: surfaceByTag ( (int) yyvsp[-1].d); + ; break;} case 110: -#line 1544 "Gmsh.y" +#line 1562 "Gmsh.y" { - int num = (int)yyvsp[-6].d, type = 0; - myGmshSurface = gmshParametricSurface::NewParametricSurface ((int)yyvsp[-6].d,yyvsp[-3].c,yyvsp[-2].c,yyvsp[-1].c); - ; + int num = (int)yyvsp[-6].d, type = 0; + myGmshSurface = gmshParametricSurface::NewParametricSurface ((int)yyvsp[-6].d,yyvsp[-3].c,yyvsp[-2].c,yyvsp[-1].c); + ; break;} case 111: -#line 1550 "Gmsh.y" +#line 1567 "Gmsh.y" { int num = (int)yyvsp[-4].d, type = 0; if (List_Nbr(yyvsp[-1].l) != 2){ @@ -4353,7 +4370,7 @@ case 111: ; break;} case 112: -#line 1572 "Gmsh.y" +#line 1589 "Gmsh.y" { int num = (int)yyvsp[-4].d, type = 0; if (List_Nbr(yyvsp[-1].l) != 2){ @@ -4377,7 +4394,7 @@ case 112: ; break;} case 113: -#line 1594 "Gmsh.y" +#line 1611 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindSurfaceLoop(num)){ @@ -4395,7 +4412,7 @@ case 113: ; break;} case 114: -#line 1610 "Gmsh.y" +#line 1627 "Gmsh.y" { int num = (int)yyvsp[-4].i; if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ @@ -4413,7 +4430,7 @@ case 114: ; break;} case 115: -#line 1630 "Gmsh.y" +#line 1647 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindVolume(num)){ @@ -4432,7 +4449,7 @@ case 115: ; break;} case 116: -#line 1647 "Gmsh.y" +#line 1664 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindVolume(num)){ @@ -4451,7 +4468,7 @@ case 116: ; break;} case 117: -#line 1664 "Gmsh.y" +#line 1681 "Gmsh.y" { int num = (int)yyvsp[-4].i; if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME)){ @@ -4469,59 +4486,59 @@ case 117: ; break;} case 118: -#line 1685 "Gmsh.y" +#line 1702 "Gmsh.y" { TranslateShapes(yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], yyvsp[-1].l); yyval.l = yyvsp[-1].l; ; break;} case 119: -#line 1690 "Gmsh.y" +#line 1707 "Gmsh.y" { RotateShapes(yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2], yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d, yyvsp[-1].l); yyval.l = yyvsp[-1].l; ; break;} case 120: -#line 1695 "Gmsh.y" +#line 1712 "Gmsh.y" { SymmetryShapes(yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], yyvsp[-3].v[3], yyvsp[-1].l); yyval.l = yyvsp[-1].l; ; break;} case 121: -#line 1700 "Gmsh.y" +#line 1717 "Gmsh.y" { DilatShapes(yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d, yyvsp[-1].l); yyval.l = yyvsp[-1].l; ; break;} case 122: -#line 1707 "Gmsh.y" +#line 1724 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 123: -#line 1708 "Gmsh.y" +#line 1725 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 124: -#line 1709 "Gmsh.y" +#line 1726 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 125: -#line 1714 "Gmsh.y" +#line 1731 "Gmsh.y" { yyval.l = List_Create(3, 3, sizeof(Shape)); ; break;} case 126: -#line 1718 "Gmsh.y" +#line 1735 "Gmsh.y" { List_Add(yyval.l, &yyvsp[0].s); ; break;} case 127: -#line 1722 "Gmsh.y" +#line 1739 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -4546,7 +4563,7 @@ case 127: ; break;} case 128: -#line 1745 "Gmsh.y" +#line 1762 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -4571,7 +4588,7 @@ case 128: ; break;} case 129: -#line 1768 "Gmsh.y" +#line 1785 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -4596,7 +4613,7 @@ case 129: ; break;} case 130: -#line 1791 "Gmsh.y" +#line 1808 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -4621,7 +4638,7 @@ case 130: ; break;} case 131: -#line 1819 "Gmsh.y" +#line 1836 "Gmsh.y" { yyval.l = List_Create(3, 3, sizeof(Shape)); for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ @@ -4634,7 +4651,7 @@ case 131: ; break;} case 132: -#line 1831 "Gmsh.y" +#line 1848 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 0); Free(yyvsp[-4].c); @@ -4642,7 +4659,7 @@ case 132: ; break;} case 133: -#line 1837 "Gmsh.y" +#line 1854 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 0); Free(yyvsp[-4].c); @@ -4650,7 +4667,7 @@ case 133: ; break;} case 134: -#line 1843 "Gmsh.y" +#line 1860 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 1); Free(yyvsp[-4].c); @@ -4658,7 +4675,7 @@ case 134: ; break;} case 135: -#line 1855 "Gmsh.y" +#line 1872 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -4669,7 +4686,7 @@ case 135: ; break;} case 136: -#line 1864 "Gmsh.y" +#line 1881 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")){ RemoveViewByIndex((int)yyvsp[-2].d); @@ -4681,7 +4698,7 @@ case 136: ; break;} case 137: -#line 1874 "Gmsh.y" +#line 1891 "Gmsh.y" { if(!strcmp(yyvsp[-1].c, "Meshes") || !strcmp(yyvsp[-1].c, "All")){ GMODEL->destroy(); @@ -4699,7 +4716,7 @@ case 137: ; break;} case 138: -#line 1890 "Gmsh.y" +#line 1907 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Empty") && !strcmp(yyvsp[-1].c, "Views")){ for(int i = List_Nbr(CTX.post.list) - 1; i >= 0; i--){ @@ -4715,7 +4732,7 @@ case 138: ; break;} case 139: -#line 1909 "Gmsh.y" +#line 1926 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -4726,7 +4743,7 @@ case 139: ; break;} case 140: -#line 1923 "Gmsh.y" +#line 1940 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape(yyvsp[-1].c, i, 1); @@ -4734,7 +4751,7 @@ case 140: ; break;} case 141: -#line 1929 "Gmsh.y" +#line 1946 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape(yyvsp[-1].c, i, 0); @@ -4742,7 +4759,7 @@ case 141: ; break;} case 142: -#line 1935 "Gmsh.y" +#line 1952 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -4753,7 +4770,7 @@ case 142: ; break;} case 143: -#line 1944 "Gmsh.y" +#line 1961 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -4764,7 +4781,7 @@ case 143: ; break;} case 144: -#line 1958 "Gmsh.y" +#line 1975 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Include")){ char tmpstring[1024]; @@ -4816,7 +4833,7 @@ case 144: ; break;} case 145: -#line 2008 "Gmsh.y" +#line 2025 "Gmsh.y" { if(!strcmp(yyvsp[-6].c, "Save") && !strcmp(yyvsp[-5].c, "View")){ Post_View **vv = (Post_View **)List_Pointer_Test(CTX.post.list, (int)yyvsp[-3].d); @@ -4833,7 +4850,7 @@ case 145: ; break;} case 146: -#line 2023 "Gmsh.y" +#line 2040 "Gmsh.y" { if(!strcmp(yyvsp[-6].c, "Background") && !strcmp(yyvsp[-5].c, "Mesh") && !strcmp(yyvsp[-4].c, "View")){ Post_View **vv = (Post_View **)List_Pointer_Test(CTX.post.list, (int)yyvsp[-2].d); @@ -4850,7 +4867,7 @@ case 146: ; break;} case 147: -#line 2038 "Gmsh.y" +#line 2055 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Sleep")){ SleepInSeconds(yyvsp[-1].d); @@ -4872,7 +4889,7 @@ case 147: ; break;} case 148: -#line 2058 "Gmsh.y" +#line 2075 "Gmsh.y" { try { GMSH_PluginManager::instance()->action(yyvsp[-4].c, yyvsp[-1].c, 0); @@ -4884,7 +4901,7 @@ case 148: ; break;} case 149: -#line 2068 "Gmsh.y" +#line 2085 "Gmsh.y" { if(!strcmp(yyvsp[-1].c, "ElementsFromAllViews")) CombineViews(0, 1, CTX.post.combine_remove_orig); @@ -4908,27 +4925,27 @@ case 149: ; break;} case 150: -#line 2090 "Gmsh.y" +#line 2107 "Gmsh.y" { exit(0); ; break;} case 151: -#line 2094 "Gmsh.y" +#line 2111 "Gmsh.y" { CTX.forced_bbox = 0; SetBoundingBox(); ; break;} case 152: -#line 2099 "Gmsh.y" +#line 2116 "Gmsh.y" { CTX.forced_bbox = 1; SetBoundingBox(yyvsp[-12].d, yyvsp[-10].d, yyvsp[-8].d, yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d); ; break;} case 153: -#line 2104 "Gmsh.y" +#line 2121 "Gmsh.y" { #if defined(HAVE_FLTK) Draw(); @@ -4936,7 +4953,7 @@ case 153: ; break;} case 154: -#line 2116 "Gmsh.y" +#line 2133 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d; @@ -4953,7 +4970,7 @@ case 154: ; break;} case 155: -#line 2131 "Gmsh.y" +#line 2148 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d; @@ -4971,7 +4988,7 @@ case 155: ; break;} case 156: -#line 2147 "Gmsh.y" +#line 2164 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d; @@ -4999,7 +5016,7 @@ case 156: ; break;} case 157: -#line 2173 "Gmsh.y" +#line 2190 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d; @@ -5028,7 +5045,7 @@ case 157: ; break;} case 158: -#line 2200 "Gmsh.y" +#line 2217 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(GERROR, "Invalid For/EndFor loop"); @@ -5062,7 +5079,7 @@ case 158: ; break;} case 159: -#line 2232 "Gmsh.y" +#line 2249 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction(yyvsp[0].c, yyin, yyname, yylineno)) yymsg(GERROR, "Redefinition of function %s", yyvsp[0].c); @@ -5071,14 +5088,14 @@ case 159: ; break;} case 160: -#line 2239 "Gmsh.y" +#line 2256 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction(&yyin, yyname, yylineno)) yymsg(GERROR, "Error while exiting function"); ; break;} case 161: -#line 2244 "Gmsh.y" +#line 2261 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c, &yyin, yyname, yylineno)) yymsg(GERROR, "Unknown function %s", yyvsp[-1].c); @@ -5086,18 +5103,18 @@ case 161: ; break;} case 162: -#line 2250 "Gmsh.y" +#line 2267 "Gmsh.y" { if(!yyvsp[-1].d) skip_until("If", "EndIf"); ; break;} case 163: -#line 2254 "Gmsh.y" +#line 2271 "Gmsh.y" { ; break;} case 164: -#line 2263 "Gmsh.y" +#line 2280 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, yyvsp[-1].l, @@ -5107,7 +5124,7 @@ case 164: ; break;} case 165: -#line 2271 "Gmsh.y" +#line 2288 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, yyvsp[-1].l, @@ -5117,7 +5134,7 @@ case 165: ; break;} case 166: -#line 2279 "Gmsh.y" +#line 2296 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, yyvsp[-1].l, @@ -5127,13 +5144,13 @@ case 166: ; break;} case 167: -#line 2287 "Gmsh.y" +#line 2304 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 168: -#line 2291 "Gmsh.y" +#line 2308 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, yyvsp[-3].l, @@ -5143,13 +5160,13 @@ case 168: ; break;} case 169: -#line 2299 "Gmsh.y" +#line 2316 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 170: -#line 2303 "Gmsh.y" +#line 2320 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, yyvsp[-3].l, @@ -5159,13 +5176,13 @@ case 170: ; break;} case 171: -#line 2311 "Gmsh.y" +#line 2328 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 172: -#line 2315 "Gmsh.y" +#line 2332 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, yyvsp[-3].l, @@ -5175,13 +5192,13 @@ case 172: ; break;} case 173: -#line 2323 "Gmsh.y" +#line 2340 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 174: -#line 2327 "Gmsh.y" +#line 2344 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(BOUNDARY_LAYER, yyvsp[-3].l, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., @@ -5190,13 +5207,13 @@ case 174: ; break;} case 175: -#line 2334 "Gmsh.y" +#line 2351 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 176: -#line 2338 "Gmsh.y" +#line 2355 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); extr.mesh.ViewIndex = (int)yyvsp[-6].d; @@ -5208,7 +5225,7 @@ case 176: ; break;} case 177: -#line 2350 "Gmsh.y" +#line 2367 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)yyvsp[-4].d, @@ -5217,7 +5234,7 @@ case 177: ; break;} case 178: -#line 2357 "Gmsh.y" +#line 2374 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)yyvsp[-4].d, @@ -5226,7 +5243,7 @@ case 178: ; break;} case 179: -#line 2364 "Gmsh.y" +#line 2381 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)yyvsp[-4].d, @@ -5235,7 +5252,7 @@ case 179: ; break;} case 180: -#line 2371 "Gmsh.y" +#line 2388 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)yyvsp[-8].d, @@ -5244,7 +5261,7 @@ case 180: ; break;} case 181: -#line 2378 "Gmsh.y" +#line 2395 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)yyvsp[-8].d, @@ -5253,7 +5270,7 @@ case 181: ; break;} case 182: -#line 2385 "Gmsh.y" +#line 2402 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)yyvsp[-8].d, @@ -5262,7 +5279,7 @@ case 182: ; break;} case 183: -#line 2392 "Gmsh.y" +#line 2409 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)yyvsp[-10].d, @@ -5271,7 +5288,7 @@ case 183: ; break;} case 184: -#line 2399 "Gmsh.y" +#line 2416 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)yyvsp[-10].d, @@ -5280,7 +5297,7 @@ case 184: ; break;} case 185: -#line 2406 "Gmsh.y" +#line 2423 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)yyvsp[-10].d, @@ -5289,13 +5306,13 @@ case 185: ; break;} case 186: -#line 2413 "Gmsh.y" +#line 2430 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 187: -#line 2417 "Gmsh.y" +#line 2434 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)yyvsp[-8].d, @@ -5304,13 +5321,13 @@ case 187: ; break;} case 188: -#line 2424 "Gmsh.y" +#line 2441 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 189: -#line 2428 "Gmsh.y" +#line 2445 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)yyvsp[-8].d, @@ -5319,13 +5336,13 @@ case 189: ; break;} case 190: -#line 2435 "Gmsh.y" +#line 2452 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 191: -#line 2439 "Gmsh.y" +#line 2456 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)yyvsp[-8].d, @@ -5334,13 +5351,13 @@ case 191: ; break;} case 192: -#line 2446 "Gmsh.y" +#line 2463 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 193: -#line 2450 "Gmsh.y" +#line 2467 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)yyvsp[-12].d, @@ -5349,13 +5366,13 @@ case 193: ; break;} case 194: -#line 2457 "Gmsh.y" +#line 2474 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 195: -#line 2461 "Gmsh.y" +#line 2478 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)yyvsp[-12].d, @@ -5364,13 +5381,13 @@ case 195: ; break;} case 196: -#line 2468 "Gmsh.y" +#line 2485 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 197: -#line 2472 "Gmsh.y" +#line 2489 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)yyvsp[-12].d, @@ -5379,13 +5396,13 @@ case 197: ; break;} case 198: -#line 2479 "Gmsh.y" +#line 2496 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 199: -#line 2483 "Gmsh.y" +#line 2500 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)yyvsp[-14].d, @@ -5394,13 +5411,13 @@ case 199: ; break;} case 200: -#line 2490 "Gmsh.y" +#line 2507 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 201: -#line 2494 "Gmsh.y" +#line 2511 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)yyvsp[-14].d, @@ -5409,13 +5426,13 @@ case 201: ; break;} case 202: -#line 2501 "Gmsh.y" +#line 2518 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 203: -#line 2505 "Gmsh.y" +#line 2522 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)yyvsp[-14].d, @@ -5424,17 +5441,17 @@ case 203: ; break;} case 204: -#line 2516 "Gmsh.y" +#line 2533 "Gmsh.y" { ; break;} case 205: -#line 2519 "Gmsh.y" +#line 2536 "Gmsh.y" { ; break;} case 206: -#line 2525 "Gmsh.y" +#line 2542 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = 1; @@ -5445,7 +5462,7 @@ case 206: ; break;} case 207: -#line 2534 "Gmsh.y" +#line 2551 "Gmsh.y" { double d; extr.mesh.ExtrudeMesh = true; @@ -5469,7 +5486,7 @@ case 207: ; break;} case 208: -#line 2556 "Gmsh.y" +#line 2573 "Gmsh.y" { yymsg(WARNING, "Explicit region numbers in layers are deprecated"); double d; @@ -5495,13 +5512,13 @@ case 208: ; break;} case 209: -#line 2580 "Gmsh.y" +#line 2597 "Gmsh.y" { extr.mesh.Recombine = true; ; break;} case 210: -#line 2584 "Gmsh.y" +#line 2601 "Gmsh.y" { int num = (int)yyvsp[-6].d; if(FindSurface(num)){ @@ -5522,7 +5539,7 @@ case 210: ; break;} case 211: -#line 2608 "Gmsh.y" +#line 2625 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -5542,7 +5559,7 @@ case 211: ; break;} case 212: -#line 2626 "Gmsh.y" +#line 2643 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){ double d; @@ -5562,7 +5579,7 @@ case 212: ; break;} case 213: -#line 2644 "Gmsh.y" +#line 2661 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){ double d; @@ -5582,7 +5599,7 @@ case 213: ; break;} case 214: -#line 2662 "Gmsh.y" +#line 2679 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d); if(!s) @@ -5613,7 +5630,7 @@ case 214: ; break;} case 215: -#line 2691 "Gmsh.y" +#line 2708 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-5].d); if(!s) @@ -5650,14 +5667,14 @@ case 215: ; break;} case 216: -#line 2726 "Gmsh.y" +#line 2743 "Gmsh.y" { yymsg(WARNING, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete(yyvsp[-1].l); ; break;} case 217: -#line 2731 "Gmsh.y" +#line 2748 "Gmsh.y" { Volume *v = FindVolume((int)yyvsp[-4].d); if(!v) @@ -5686,7 +5703,7 @@ case 217: ; break;} case 218: -#line 2758 "Gmsh.y" +#line 2775 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -5702,7 +5719,7 @@ case 218: ; break;} case 219: -#line 2772 "Gmsh.y" +#line 2789 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ double d; @@ -5717,7 +5734,7 @@ case 219: ; break;} case 220: -#line 2791 "Gmsh.y" +#line 2808 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-2].d); if(s) @@ -5725,7 +5742,7 @@ case 220: ; break;} case 221: -#line 2797 "Gmsh.y" +#line 2814 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-2].d); if(s) @@ -5733,55 +5750,55 @@ case 221: ; break;} case 222: -#line 2803 "Gmsh.y" +#line 2820 "Gmsh.y" { ; break;} case 223: -#line 2806 "Gmsh.y" +#line 2823 "Gmsh.y" { ; break;} case 224: -#line 2815 "Gmsh.y" +#line 2832 "Gmsh.y" { ReplaceAllDuplicates(); ; break;} case 225: -#line 2824 "Gmsh.y" +#line 2841 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 226: -#line 2825 "Gmsh.y" +#line 2842 "Gmsh.y" { yyval.d = yyvsp[-1].d; ; break;} case 227: -#line 2826 "Gmsh.y" +#line 2843 "Gmsh.y" { yyval.d = -yyvsp[0].d; ; break;} case 228: -#line 2827 "Gmsh.y" +#line 2844 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 229: -#line 2828 "Gmsh.y" +#line 2845 "Gmsh.y" { yyval.d = !yyvsp[0].d; ; break;} case 230: -#line 2829 "Gmsh.y" +#line 2846 "Gmsh.y" { yyval.d = yyvsp[-2].d - yyvsp[0].d; ; break;} case 231: -#line 2830 "Gmsh.y" +#line 2847 "Gmsh.y" { yyval.d = yyvsp[-2].d + yyvsp[0].d; ; break;} case 232: -#line 2831 "Gmsh.y" +#line 2848 "Gmsh.y" { yyval.d = yyvsp[-2].d * yyvsp[0].d; ; break;} case 233: -#line 2833 "Gmsh.y" +#line 2850 "Gmsh.y" { if(!yyvsp[0].d) yymsg(GERROR, "Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d); @@ -5790,247 +5807,247 @@ case 233: ; break;} case 234: -#line 2839 "Gmsh.y" +#line 2856 "Gmsh.y" { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d; ; break;} case 235: -#line 2840 "Gmsh.y" +#line 2857 "Gmsh.y" { yyval.d = pow(yyvsp[-2].d, yyvsp[0].d); ; break;} case 236: -#line 2841 "Gmsh.y" +#line 2858 "Gmsh.y" { yyval.d = yyvsp[-2].d < yyvsp[0].d; ; break;} case 237: -#line 2842 "Gmsh.y" +#line 2859 "Gmsh.y" { yyval.d = yyvsp[-2].d > yyvsp[0].d; ; break;} case 238: -#line 2843 "Gmsh.y" +#line 2860 "Gmsh.y" { yyval.d = yyvsp[-2].d <= yyvsp[0].d; ; break;} case 239: -#line 2844 "Gmsh.y" +#line 2861 "Gmsh.y" { yyval.d = yyvsp[-2].d >= yyvsp[0].d; ; break;} case 240: -#line 2845 "Gmsh.y" +#line 2862 "Gmsh.y" { yyval.d = yyvsp[-2].d == yyvsp[0].d; ; break;} case 241: -#line 2846 "Gmsh.y" +#line 2863 "Gmsh.y" { yyval.d = yyvsp[-2].d != yyvsp[0].d; ; break;} case 242: -#line 2847 "Gmsh.y" +#line 2864 "Gmsh.y" { yyval.d = yyvsp[-2].d && yyvsp[0].d; ; break;} case 243: -#line 2848 "Gmsh.y" +#line 2865 "Gmsh.y" { yyval.d = yyvsp[-2].d || yyvsp[0].d; ; break;} case 244: -#line 2849 "Gmsh.y" +#line 2866 "Gmsh.y" { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d; ; break;} case 245: -#line 2850 "Gmsh.y" +#line 2867 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} case 246: -#line 2851 "Gmsh.y" +#line 2868 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} case 247: -#line 2852 "Gmsh.y" +#line 2869 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} case 248: -#line 2853 "Gmsh.y" +#line 2870 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} case 249: -#line 2854 "Gmsh.y" +#line 2871 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} case 250: -#line 2855 "Gmsh.y" +#line 2872 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} case 251: -#line 2856 "Gmsh.y" +#line 2873 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} case 252: -#line 2857 "Gmsh.y" +#line 2874 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} case 253: -#line 2858 "Gmsh.y" +#line 2875 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} case 254: -#line 2859 "Gmsh.y" +#line 2876 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} case 255: -#line 2860 "Gmsh.y" +#line 2877 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);; break;} case 256: -#line 2861 "Gmsh.y" +#line 2878 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} case 257: -#line 2862 "Gmsh.y" +#line 2879 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} case 258: -#line 2863 "Gmsh.y" +#line 2880 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} case 259: -#line 2864 "Gmsh.y" +#line 2881 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} case 260: -#line 2865 "Gmsh.y" +#line 2882 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} case 261: -#line 2866 "Gmsh.y" +#line 2883 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} case 262: -#line 2867 "Gmsh.y" +#line 2884 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 263: -#line 2868 "Gmsh.y" +#line 2885 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 264: -#line 2869 "Gmsh.y" +#line 2886 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} case 265: -#line 2870 "Gmsh.y" +#line 2887 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} case 266: -#line 2872 "Gmsh.y" +#line 2889 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} case 267: -#line 2873 "Gmsh.y" +#line 2890 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} case 268: -#line 2874 "Gmsh.y" +#line 2891 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} case 269: -#line 2875 "Gmsh.y" +#line 2892 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} case 270: -#line 2876 "Gmsh.y" +#line 2893 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} case 271: -#line 2877 "Gmsh.y" +#line 2894 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} case 272: -#line 2878 "Gmsh.y" +#line 2895 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} case 273: -#line 2879 "Gmsh.y" +#line 2896 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} case 274: -#line 2880 "Gmsh.y" +#line 2897 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} case 275: -#line 2881 "Gmsh.y" +#line 2898 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} case 276: -#line 2882 "Gmsh.y" +#line 2899 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);; break;} case 277: -#line 2883 "Gmsh.y" +#line 2900 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} case 278: -#line 2884 "Gmsh.y" +#line 2901 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} case 279: -#line 2885 "Gmsh.y" +#line 2902 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} case 280: -#line 2886 "Gmsh.y" +#line 2903 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} case 281: -#line 2887 "Gmsh.y" +#line 2904 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} case 282: -#line 2888 "Gmsh.y" +#line 2905 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} case 283: -#line 2889 "Gmsh.y" +#line 2906 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 284: -#line 2890 "Gmsh.y" +#line 2907 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 285: -#line 2891 "Gmsh.y" +#line 2908 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} case 286: -#line 2892 "Gmsh.y" +#line 2909 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} case 287: -#line 2901 "Gmsh.y" +#line 2918 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 288: -#line 2902 "Gmsh.y" +#line 2919 "Gmsh.y" { yyval.d = 3.141592653589793; ; break;} case 289: -#line 2903 "Gmsh.y" +#line 2920 "Gmsh.y" { yyval.d = ParUtil::Instance()->rank(); ; break;} case 290: -#line 2904 "Gmsh.y" +#line 2921 "Gmsh.y" { yyval.d = ParUtil::Instance()->size(); ; break;} case 291: -#line 2905 "Gmsh.y" +#line 2922 "Gmsh.y" { yyval.d = Get_GmshMajorVersion(); ; break;} case 292: -#line 2906 "Gmsh.y" +#line 2923 "Gmsh.y" { yyval.d = Get_GmshMinorVersion(); ; break;} case 293: -#line 2907 "Gmsh.y" +#line 2924 "Gmsh.y" { yyval.d = Get_GmshPatchVersion(); ; break;} case 294: -#line 2912 "Gmsh.y" +#line 2929 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[0].c; @@ -6045,7 +6062,7 @@ case 294: ; break;} case 295: -#line 2928 "Gmsh.y" +#line 2945 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", yyvsp[-4].c, (int)yyvsp[-1].d) ; @@ -6062,7 +6079,7 @@ case 295: ; break;} case 296: -#line 2943 "Gmsh.y" +#line 2960 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-3].c; @@ -6084,7 +6101,7 @@ case 296: ; break;} case 297: -#line 2963 "Gmsh.y" +#line 2980 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-2].c; @@ -6100,7 +6117,7 @@ case 297: ; break;} case 298: -#line 2977 "Gmsh.y" +#line 2994 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-1].c; @@ -6115,7 +6132,7 @@ case 298: ; break;} case 299: -#line 2990 "Gmsh.y" +#line 3007 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-4].c; @@ -6137,7 +6154,7 @@ case 299: ; break;} case 300: -#line 3013 "Gmsh.y" +#line 3030 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -6157,7 +6174,7 @@ case 300: ; break;} case 301: -#line 3031 "Gmsh.y" +#line 3048 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -6177,7 +6194,7 @@ case 301: ; break;} case 302: -#line 3049 "Gmsh.y" +#line 3066 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -6197,7 +6214,7 @@ case 302: ; break;} case 303: -#line 3067 "Gmsh.y" +#line 3084 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -6217,107 +6234,107 @@ case 303: ; break;} case 304: -#line 3085 "Gmsh.y" +#line 3102 "Gmsh.y" { yyval.d = GetValue(yyvsp[-3].c, yyvsp[-1].d); Free(yyvsp[-3].c); ; break;} case 305: -#line 3093 "Gmsh.y" +#line 3110 "Gmsh.y" { memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double)); ; break;} case 306: -#line 3097 "Gmsh.y" +#line 3114 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = -yyvsp[0].v[i]; ; break;} case 307: -#line 3101 "Gmsh.y" +#line 3118 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[0].v[i]; ; break;} case 308: -#line 3105 "Gmsh.y" +#line 3122 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i]; ; break;} case 309: -#line 3109 "Gmsh.y" +#line 3126 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i]; ; break;} case 310: -#line 3116 "Gmsh.y" +#line 3133 "Gmsh.y" { yyval.v[0] = yyvsp[-9].d; yyval.v[1] = yyvsp[-7].d; yyval.v[2] = yyvsp[-5].d; yyval.v[3] = yyvsp[-3].d; yyval.v[4] = yyvsp[-1].d; ; break;} case 311: -#line 3120 "Gmsh.y" +#line 3137 "Gmsh.y" { yyval.v[0] = yyvsp[-7].d; yyval.v[1] = yyvsp[-5].d; yyval.v[2] = yyvsp[-3].d; yyval.v[3] = yyvsp[-1].d; yyval.v[4] = 1.0; ; break;} case 312: -#line 3124 "Gmsh.y" +#line 3141 "Gmsh.y" { yyval.v[0] = yyvsp[-5].d; yyval.v[1] = yyvsp[-3].d; yyval.v[2] = yyvsp[-1].d; yyval.v[3] = 0.0; yyval.v[4] = 1.0; ; break;} case 313: -#line 3128 "Gmsh.y" +#line 3145 "Gmsh.y" { yyval.v[0] = yyvsp[-5].d; yyval.v[1] = yyvsp[-3].d; yyval.v[2] = yyvsp[-1].d; yyval.v[3] = 0.0; yyval.v[4] = 1.0; ; break;} case 314: -#line 3135 "Gmsh.y" +#line 3152 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(List_T*)); List_Add(yyval.l, &(yyvsp[0].l)); ; break;} case 315: -#line 3140 "Gmsh.y" +#line 3157 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].l)); ; break;} case 316: -#line 3148 "Gmsh.y" +#line 3165 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); List_Add(yyval.l, &(yyvsp[0].d)); ; break;} case 317: -#line 3153 "Gmsh.y" +#line 3170 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 318: -#line 3157 "Gmsh.y" +#line 3174 "Gmsh.y" { // creates an empty list yyval.l = List_Create(2, 1, sizeof(double)); ; break;} case 319: -#line 3162 "Gmsh.y" +#line 3179 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} case 320: -#line 3166 "Gmsh.y" +#line 3183 "Gmsh.y" { yyval.l = yyvsp[-1].l; for(int i = 0; i < List_Nbr(yyval.l); i++){ @@ -6327,7 +6344,7 @@ case 320: ; break;} case 321: -#line 3174 "Gmsh.y" +#line 3191 "Gmsh.y" { yyval.l = yyvsp[-1].l; for(int i = 0; i < List_Nbr(yyval.l); i++){ @@ -6337,7 +6354,7 @@ case 321: ; break;} case 322: -#line 3185 "Gmsh.y" +#line 3202 "Gmsh.y" { yyval.l = yyvsp[0].l; for(int i = 0; i < List_Nbr(yyval.l); i++){ @@ -6347,7 +6364,7 @@ case 322: ; break;} case 323: -#line 3193 "Gmsh.y" +#line 3210 "Gmsh.y" { yyval.l = yyvsp[0].l; for(int i = 0; i < List_Nbr(yyval.l); i++){ @@ -6357,7 +6374,7 @@ case 323: ; break;} case 324: -#line 3201 "Gmsh.y" +#line 3218 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); for(double d = yyvsp[-2].d; (yyvsp[-2].d < yyvsp[0].d) ? (d <= yyvsp[0].d) : (d >= yyvsp[0].d); (yyvsp[-2].d < yyvsp[0].d) ? (d += 1.) : (d -= 1.)) @@ -6365,7 +6382,7 @@ case 324: ; break;} case 325: -#line 3207 "Gmsh.y" +#line 3224 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); if(!yyvsp[0].d || (yyvsp[-4].d < yyvsp[-2].d && yyvsp[0].d < 0) || (yyvsp[-4].d > yyvsp[-2].d && yyvsp[0].d > 0)){ @@ -6378,7 +6395,7 @@ case 325: ; break;} case 326: -#line 3218 "Gmsh.y" +#line 3235 "Gmsh.y" { // Returns the coordinates of a point and fills a list with it. // This allows to ensure e.g. that relative point positions are @@ -6400,7 +6417,7 @@ case 326: ; break;} case 327: -#line 3238 "Gmsh.y" +#line 3255 "Gmsh.y" { yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)); for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ @@ -6412,7 +6429,7 @@ case 327: ; break;} case 328: -#line 3248 "Gmsh.y" +#line 3265 "Gmsh.y" { yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)); for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ @@ -6424,7 +6441,7 @@ case 328: ; break;} case 329: -#line 3258 "Gmsh.y" +#line 3275 "Gmsh.y" { yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)); for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ @@ -6436,7 +6453,7 @@ case 329: ; break;} case 330: -#line 3268 "Gmsh.y" +#line 3285 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6455,7 +6472,7 @@ case 330: ; break;} case 331: -#line 3285 "Gmsh.y" +#line 3302 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6481,26 +6498,26 @@ case 331: ; break;} case 332: -#line 3312 "Gmsh.y" +#line 3329 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); List_Add(yyval.l, &(yyvsp[0].d)); ; break;} case 333: -#line 3317 "Gmsh.y" +#line 3334 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 334: -#line 3321 "Gmsh.y" +#line 3338 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].d)); ; break;} case 335: -#line 3325 "Gmsh.y" +#line 3342 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ double d; @@ -6511,19 +6528,19 @@ case 335: ; break;} case 336: -#line 3338 "Gmsh.y" +#line 3355 "Gmsh.y" { yyval.u = CTX.PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d); ; break;} case 337: -#line 3342 "Gmsh.y" +#line 3359 "Gmsh.y" { yyval.u = CTX.PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255); ; break;} case 338: -#line 3354 "Gmsh.y" +#line 3371 "Gmsh.y" { int flag; yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag); @@ -6532,7 +6549,7 @@ case 338: ; break;} case 339: -#line 3361 "Gmsh.y" +#line 3378 "Gmsh.y" { unsigned int (*pColOpt)(int num, int action, unsigned int value); StringXColor *pColCat; @@ -6553,13 +6570,13 @@ case 339: ; break;} case 340: -#line 3383 "Gmsh.y" +#line 3400 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} case 341: -#line 3387 "Gmsh.y" +#line 3404 "Gmsh.y" { yyval.l = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = Get_ColorTable((int)yyvsp[-3].d); @@ -6573,38 +6590,38 @@ case 341: ; break;} case 342: -#line 3402 "Gmsh.y" +#line 3419 "Gmsh.y" { yyval.l = List_Create(256, 10, sizeof(unsigned int)); List_Add(yyval.l, &(yyvsp[0].u)); ; break;} case 343: -#line 3407 "Gmsh.y" +#line 3424 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].u)); ; break;} case 344: -#line 3414 "Gmsh.y" +#line 3431 "Gmsh.y" { yyval.c = yyvsp[0].c; ; break;} case 345: -#line 3418 "Gmsh.y" +#line 3435 "Gmsh.y" { Msg(WARNING, "Named string expressions not implemented yet"); ; break;} case 346: -#line 3425 "Gmsh.y" +#line 3442 "Gmsh.y" { yyval.c = yyvsp[0].c; ; break;} case 347: -#line 3429 "Gmsh.y" +#line 3446 "Gmsh.y" { yyval.c = (char *)Malloc(32*sizeof(char)); time_t now; @@ -6614,7 +6631,7 @@ case 347: ; break;} case 348: -#line 3437 "Gmsh.y" +#line 3454 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-3].c)+strlen(yyvsp[-1].c)+1)*sizeof(char)); strcpy(yyval.c, yyvsp[-3].c); @@ -6624,7 +6641,7 @@ case 348: ; break;} case 349: -#line 3445 "Gmsh.y" +#line 3462 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char)); int i; @@ -6640,7 +6657,7 @@ case 349: ; break;} case 350: -#line 3459 "Gmsh.y" +#line 3476 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char)); int i; @@ -6656,13 +6673,13 @@ case 350: ; break;} case 351: -#line 3473 "Gmsh.y" +#line 3490 "Gmsh.y" { yyval.c = yyvsp[-1].c; ; break;} case 352: -#line 3477 "Gmsh.y" +#line 3494 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble(yyvsp[-3].c, yyvsp[-1].l, tmpstring); @@ -6683,7 +6700,7 @@ case 352: ; break;} case 353: -#line 3496 "Gmsh.y" +#line 3513 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -6707,7 +6724,7 @@ case 353: ; break;} case 354: -#line 3518 "Gmsh.y" +#line 3535 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -6952,7 +6969,7 @@ yyerrhandle: } return 1; } -#line 3541 "Gmsh.y" +#line 3558 "Gmsh.y" void DeleteSymbol(void *a, void *b){ diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index fa2cbc05a58cd8fcc29e99b57e31abd17d00fdad..b89a5b425b040de6476f4135d1dc0e8e7f74ac9b 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1,5 +1,5 @@ %{ -// $Id: Gmsh.y,v 1.273 2007-04-16 11:46:27 remacle Exp $ +// $Id: Gmsh.y,v 1.274 2007-04-22 06:42:26 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -1078,9 +1078,9 @@ Shape : $$.Type = MSH_PHYSICAL_POINT; $$.Num = num; } - - | tAttractor tPoint tField '(' FExpr ')' tAFFECT ListOfDouble tEND { - AttractorField *att = new AttractorField(); + | tAttractor tPoint tField '(' FExpr ')' tAFFECT ListOfDouble tEND + { + AttractorField *att = new AttractorField(); for(int i = 0; i < List_Nbr($8); i++){ double d; List_Read($8, i, &d); @@ -1094,40 +1094,60 @@ Shape : } } att->buildFastSearchStructures(); - fields.insert(att,(int)$5); + fields.insert(att, (int)$5); + // dummy values + $$.Type = 0; + $$.Num = 0; } - | tThreshold tField '(' FExpr ')' tAFFECT ListOfDouble tEND { - double pars[]={0,CTX.lc/10,CTX.lc,CTX.lc/100,CTX.lc/20}; - for (int i=0;i<List_Nbr($7);i++){ - if(i>4) - yymsg(GERROR,"Too many parameters for Thresold Field (max=5)"); - else - List_Read($7,i,&pars[i]); + | tThreshold tField '(' FExpr ')' tAFFECT ListOfDouble tEND + { + double pars[] = {0, CTX.lc/10, CTX.lc, CTX.lc/100, CTX.lc/20}; + for(int i = 0; i < List_Nbr($7); i++){ + if(i > 4) + yymsg(GERROR, "Too many parameters for Thresold Field (max=5)"); + else + List_Read($7, i, &pars[i]); + } + fields.insert(new ThresholdField(fields.get((int)pars[0]), pars[1], + pars[2], pars[3], pars[4]), (int)$4); + // dummy values + $$.Type = 0; + $$.Num = 0; } - fields.insert(new ThresholdField(fields.get((int)pars[0]),pars[1],pars[2],pars[3],pars[4]),(int)$4); - } - | tFunction tField '(' FExpr ')' tAFFECT tBIGSTR ListOfDouble tEND{ - std::list<Field*> *flist=new std::list<Field*>; - flist->resize(0); - for(int i = 0; i < List_Nbr($8); i++){ - double id; - List_Read($8, i, &id); - Field *pfield=fields.get((int)id); - if(pfield)flist->push_front(pfield); - } - fields.insert(new FunctionField(flist,$7),(int)$4); - } - | tStructured tField '(' FExpr ')' tAFFECT tBIGSTR tEND{ - fields.insert(new StructuredField($7),(int)$4); - } - | tCharacteristic tLength tField ListOfDouble tEND { - for(int i = 0; i < List_Nbr($4); i++){ - double id; - List_Read($4, i, &id); + | tFunction tField '(' FExpr ')' tAFFECT tBIGSTR ListOfDouble tEND + { + std::list<Field*> *flist = new std::list<Field*>; + flist->resize(0); + for(int i = 0; i < List_Nbr($8); i++){ + double id; + List_Read($8, i, &id); + Field *pfield = fields.get((int)id); + if(pfield)flist->push_front(pfield); + } + fields.insert(new FunctionField(flist,$7),(int)$4); + // dummy values + $$.Type = 0; + $$.Num = 0; + } + | tStructured tField '(' FExpr ')' tAFFECT tBIGSTR tEND + { + fields.insert(new StructuredField($7), (int)$4); + // dummy values + $$.Type = 0; + $$.Num = 0; + } + | tCharacteristic tLength tField ListOfDouble tEND + { + for(int i = 0; i < List_Nbr($4); i++){ + double id; + List_Read($4, i, &id); BGMAddField(fields.get((int)id)); - } - } - /* backward compatibility */ + } + // dummy values + $$.Type = 0; + $$.Num = 0; + } + // backward compatibility | tAttractor tPoint ListOfDouble tAFFECT ListOfDouble tEND { double pars[] = { CTX.lc/10, CTX.lc/100., CTX.lc/20, 1, 3 }; @@ -1139,9 +1159,10 @@ Shape : } // treshold attractor: first parameter is the treshold, next two // are the in and out size fields, last is transition factor - AttractorField *attractor= new AttractorField(); + AttractorField *attractor = new AttractorField(); fields.insert(attractor); - Field *threshold=new ThresholdField(attractor,pars[0],pars[0]*pars[4],pars[1],pars[2]); + Field *threshold = new ThresholdField(attractor, pars[0], pars[0] * pars[4], + pars[1], pars[2]); fields.insert(threshold); BGMAddField(threshold); for(int i = 0; i < List_Nbr($3); i++){ @@ -1174,10 +1195,10 @@ Shape : // are the in and out size fields, last is transition factor AttractorField *att = new AttractorField(); fields.insert(att); - Field *threshold=new ThresholdField(att,pars[0],pars[0]*pars[4],pars[1],pars[2]); + Field *threshold = new ThresholdField(att, pars[0], pars[0] * pars[4], + pars[1], pars[2]); fields.insert(threshold); BGMAddField(threshold); - //tresholdAttractor::New(pars[0], pars[1], pars[2], pars[4]); for(int i = 0; i < List_Nbr($3); i++){ double d; List_Read($3, i, &d); @@ -1529,23 +1550,19 @@ Shape : $$.Type = type; $$.Num = num; } - | tEuclidian tCoordinates tEND - { - myGmshSurface = 0; - } - + { + myGmshSurface = 0; + } | tCoordinates tSurface FExpr tEND - { - myGmshSurface = gmshSurface :: surfaceByTag ( (int) $3); - } - + { + myGmshSurface = gmshSurface :: surfaceByTag ( (int) $3); + } | tParametric tSurface '(' FExpr ')' tAFFECT tBIGSTR tBIGSTR tBIGSTR tEND - { - int num = (int)$4, type = 0; - myGmshSurface = gmshParametricSurface::NewParametricSurface ((int)$4,$7,$8,$9); - } - + { + int num = (int)$4, type = 0; + myGmshSurface = gmshParametricSurface::NewParametricSurface ((int)$4,$7,$8,$9); + } | tSphere '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$3, type = 0; diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index 0e2e7c9e675bd43e3840819bf23e7363bee08099..665ded2d9073c8f0c35b9b5256fdfd3915dac797 100644 --- a/Parser/Gmsh.yy.cpp +++ b/Parser/Gmsh.yy.cpp @@ -2,7 +2,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.317 2007-04-21 19:46:28 geuzaine Exp $ + * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.318 2007-04-22 06:42:26 geuzaine Exp $ */ #define FLEX_SCANNER @@ -752,7 +752,7 @@ char *yytext; #line 1 "Gmsh.l" #define INITIAL 0 #line 2 "Gmsh.l" -// $Id: Gmsh.yy.cpp,v 1.317 2007-04-21 19:46:28 geuzaine Exp $ +// $Id: Gmsh.yy.cpp,v 1.318 2007-04-22 06:42:26 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle //