diff --git a/Common/GmshMessage.cpp b/Common/GmshMessage.cpp index 3b9650048649a07b35887abe2e3a3fb4fa1d849c..288d84cc5b55f173edea731506c2782771be105f 100644 --- a/Common/GmshMessage.cpp +++ b/Common/GmshMessage.cpp @@ -1083,6 +1083,20 @@ void Msg::ImportPhysicalsAsOnelabRegions() #endif } +void Msg::RunOnelabClient(const std::string &name) +{ +#if defined(HAVE_ONELAB) + onelab::server::citer it = onelab::server::instance()->findClient(name); + if(it == onelab::server::instance()->lastClient()){ + Msg::Error("Unknown ONELAB client `%s'", name.c_str()); + return; + } + onelab::string o(name + "/Action", "compute"); + onelab::server::instance()->set(o); + it->second->run(); +#endif +} + void Msg::FinalizeOnelab() { #if defined(HAVE_ONELAB) diff --git a/Common/GmshMessage.h b/Common/GmshMessage.h index 2345fee8121a8fdd67b8f2c6b1855b4f1630cfbd..609c6721e8b789a798d70ffe30e14aeb00ce787b 100644 --- a/Common/GmshMessage.h +++ b/Common/GmshMessage.h @@ -113,6 +113,7 @@ class Msg { std::map<std::string, std::vector<double> > &fopt, std::map<std::string, std::vector<std::string> > &copt); static void UndefineOnelabParameter(const std::string &name); + static void RunOnelabClient(const std::string &name); static void ImportPhysicalsAsOnelabRegions(); }; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index fdc453021cc3042f91bb4bc75a5330decc1e73fa..e123e9c65c34f40943ff99a82ea18a9808902e8d 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -1178,33 +1178,33 @@ static const yytype_uint16 yyrline[] = 1935, 1946, 1947, 1952, 1955, 1959, 1982, 2005, 2028, 2056, 2077, 2103, 2124, 2146, 2166, 2278, 2297, 2335, 2444, 2453, 2459, 2474, 2502, 2519, 2528, 2542, 2548, 2554, 2563, 2572, - 2581, 2595, 2648, 2665, 2680, 2699, 2711, 2735, 2739, 2744, - 2751, 2757, 2762, 2768, 2776, 2780, 2784, 2789, 2844, 2857, - 2874, 2891, 2912, 2933, 2968, 2976, 2982, 2989, 2993, 3002, - 3010, 3018, 3027, 3026, 3041, 3040, 3055, 3054, 3069, 3068, - 3082, 3089, 3096, 3103, 3110, 3117, 3124, 3131, 3138, 3146, - 3145, 3159, 3158, 3172, 3171, 3185, 3184, 3198, 3197, 3211, - 3210, 3224, 3223, 3237, 3236, 3250, 3249, 3266, 3269, 3275, - 3287, 3307, 3331, 3335, 3339, 3343, 3347, 3353, 3359, 3363, - 3367, 3371, 3375, 3394, 3407, 3410, 3426, 3429, 3446, 3449, - 3455, 3458, 3465, 3521, 3591, 3596, 3663, 3699, 3707, 3750, - 3789, 3809, 3836, 3876, 3899, 3922, 3926, 3930, 3953, 3992, - 4031, 4052, 4073, 4100, 4104, 4114, 4149, 4150, 4151, 4155, - 4161, 4173, 4191, 4219, 4220, 4221, 4222, 4223, 4224, 4225, - 4226, 4227, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, - 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, - 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, - 4262, 4263, 4264, 4265, 4266, 4275, 4276, 4277, 4278, 4279, - 4280, 4281, 4282, 4283, 4284, 4289, 4288, 4296, 4313, 4331, - 4349, 4354, 4360, 4372, 4389, 4407, 4428, 4433, 4438, 4448, - 4458, 4463, 4472, 4477, 4504, 4508, 4512, 4516, 4520, 4527, - 4531, 4535, 4539, 4546, 4551, 4558, 4563, 4567, 4572, 4576, - 4584, 4595, 4599, 4611, 4619, 4627, 4634, 4644, 4664, 4668, - 4672, 4676, 4680, 4709, 4738, 4767, 4796, 4806, 4816, 4828, - 4840, 4861, 4866, 4870, 4874, 4886, 4890, 4902, 4909, 4919, - 4923, 4938, 4943, 4950, 4954, 4967, 4975, 4986, 4990, 4998, - 5004, 5012, 5020, 5028, 5042, 5056, 5068, 5084, 5088, 5108, - 5107, 5120, 5125, 5131, 5140, 5153, 5156 + 2581, 2595, 2651, 2668, 2683, 2702, 2714, 2738, 2742, 2747, + 2754, 2760, 2765, 2771, 2779, 2783, 2787, 2792, 2847, 2860, + 2877, 2894, 2915, 2936, 2971, 2979, 2985, 2992, 2996, 3005, + 3013, 3021, 3030, 3029, 3044, 3043, 3058, 3057, 3072, 3071, + 3085, 3092, 3099, 3106, 3113, 3120, 3127, 3134, 3141, 3149, + 3148, 3162, 3161, 3175, 3174, 3188, 3187, 3201, 3200, 3214, + 3213, 3227, 3226, 3240, 3239, 3253, 3252, 3269, 3272, 3278, + 3290, 3310, 3334, 3338, 3342, 3346, 3350, 3356, 3362, 3366, + 3370, 3374, 3378, 3397, 3410, 3413, 3429, 3432, 3449, 3452, + 3458, 3461, 3468, 3524, 3594, 3599, 3666, 3702, 3710, 3753, + 3792, 3812, 3839, 3879, 3902, 3925, 3929, 3933, 3956, 3995, + 4034, 4055, 4076, 4103, 4107, 4117, 4152, 4153, 4154, 4158, + 4164, 4176, 4194, 4222, 4223, 4224, 4225, 4226, 4227, 4228, + 4229, 4230, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, + 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, + 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, + 4265, 4266, 4267, 4268, 4269, 4278, 4279, 4280, 4281, 4282, + 4283, 4284, 4285, 4286, 4287, 4292, 4291, 4299, 4316, 4334, + 4352, 4357, 4363, 4375, 4392, 4410, 4431, 4436, 4441, 4451, + 4461, 4466, 4475, 4480, 4507, 4511, 4515, 4519, 4523, 4530, + 4534, 4538, 4542, 4549, 4554, 4561, 4566, 4570, 4575, 4579, + 4587, 4598, 4602, 4614, 4622, 4630, 4637, 4647, 4667, 4671, + 4675, 4679, 4683, 4712, 4741, 4770, 4799, 4809, 4819, 4831, + 4843, 4864, 4869, 4873, 4877, 4889, 4893, 4905, 4912, 4922, + 4926, 4941, 4946, 4953, 4957, 4970, 4978, 4989, 4993, 5001, + 5007, 5015, 5023, 5031, 5045, 5059, 5071, 5087, 5091, 5111, + 5110, 5123, 5128, 5134, 5143, 5156, 5159 }; #endif @@ -7206,6 +7206,9 @@ yyreduce: std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(2) - (3)].c)); CreateSingleDir(tmp); } + else if(!strcmp((yyvsp[(1) - (3)].c), "OnelabRun")){ + Msg::RunOnelabClient((yyvsp[(2) - (3)].c)); + } else{ yymsg(0, "Unknown command '%s'", (yyvsp[(1) - (3)].c)); } @@ -7214,7 +7217,7 @@ yyreduce: break; case 202: -#line 2649 "Gmsh.y" +#line 2652 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ @@ -7234,7 +7237,7 @@ yyreduce: break; case 203: -#line 2666 "Gmsh.y" +#line 2669 "Gmsh.y" { #if defined(HAVE_POST) && defined(HAVE_MESH) if(!strcmp((yyvsp[(1) - (7)].c), "Background") && !strcmp((yyvsp[(2) - (7)].c), "Mesh") && !strcmp((yyvsp[(3) - (7)].c), "View")){ @@ -7252,7 +7255,7 @@ yyreduce: break; case 204: -#line 2681 "Gmsh.y" +#line 2684 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -7274,7 +7277,7 @@ yyreduce: break; case 205: -#line 2700 "Gmsh.y" +#line 2703 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -7289,7 +7292,7 @@ yyreduce: break; case 206: -#line 2712 "Gmsh.y" +#line 2715 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) @@ -7316,14 +7319,14 @@ yyreduce: break; case 207: -#line 2736 "Gmsh.y" +#line 2739 "Gmsh.y" { Msg::Exit(0); ;} break; case 208: -#line 2740 "Gmsh.y" +#line 2743 "Gmsh.y" { gmsh_yyerrorstate = 999; // this will be checked when yyparse returns YYABORT; @@ -7331,7 +7334,7 @@ yyreduce: break; case 209: -#line 2745 "Gmsh.y" +#line 2748 "Gmsh.y" { // FIXME: this is a hack to force a transfer from the old DB to // the new DB. This will become unnecessary if/when we fill the @@ -7341,7 +7344,7 @@ yyreduce: break; case 210: -#line 2752 "Gmsh.y" +#line 2755 "Gmsh.y" { CTX::instance()->forcedBBox = 0; GModel::current()->importGEOInternals(); @@ -7350,7 +7353,7 @@ yyreduce: break; case 211: -#line 2758 "Gmsh.y" +#line 2761 "Gmsh.y" { CTX::instance()->forcedBBox = 1; SetBoundingBox((yyvsp[(3) - (15)].d), (yyvsp[(5) - (15)].d), (yyvsp[(7) - (15)].d), (yyvsp[(9) - (15)].d), (yyvsp[(11) - (15)].d), (yyvsp[(13) - (15)].d)); @@ -7358,7 +7361,7 @@ yyreduce: break; case 212: -#line 2763 "Gmsh.y" +#line 2766 "Gmsh.y" { #if defined(HAVE_OPENGL) drawContext::global()->draw(); @@ -7367,7 +7370,7 @@ yyreduce: break; case 213: -#line 2769 "Gmsh.y" +#line 2772 "Gmsh.y" { #if defined(HAVE_OPENGL) CTX::instance()->mesh.changed = ENT_ALL; @@ -7378,21 +7381,21 @@ yyreduce: break; case 214: -#line 2777 "Gmsh.y" +#line 2780 "Gmsh.y" { GModel::current()->createTopologyFromMesh(); ;} break; case 215: -#line 2781 "Gmsh.y" +#line 2784 "Gmsh.y" { GModel::current()->createTopologyFromMesh(1); ;} break; case 216: -#line 2785 "Gmsh.y" +#line 2788 "Gmsh.y" { GModel::current()->importGEOInternals(); GModel::current()->refineMesh(CTX::instance()->mesh.secondOrderLinear); @@ -7400,7 +7403,7 @@ yyreduce: break; case 217: -#line 2791 "Gmsh.y" +#line 2794 "Gmsh.y" { int lock = CTX::instance()->lock; CTX::instance()->lock = 0; @@ -7457,7 +7460,7 @@ yyreduce: break; case 218: -#line 2845 "Gmsh.y" +#line 2848 "Gmsh.y" { #if defined(HAVE_MESH) SetOrderN(GModel::current(), (yyvsp[(2) - (3)].d), CTX::instance()->mesh.secondOrderLinear, @@ -7468,7 +7471,7 @@ yyreduce: break; case 219: -#line 2858 "Gmsh.y" +#line 2861 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -7488,7 +7491,7 @@ yyreduce: break; case 220: -#line 2875 "Gmsh.y" +#line 2878 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -7508,7 +7511,7 @@ yyreduce: break; case 221: -#line 2892 "Gmsh.y" +#line 2895 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -7532,7 +7535,7 @@ yyreduce: break; case 222: -#line 2913 "Gmsh.y" +#line 2916 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -7556,7 +7559,7 @@ yyreduce: break; case 223: -#line 2934 "Gmsh.y" +#line 2937 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -7594,7 +7597,7 @@ yyreduce: break; case 224: -#line 2969 "Gmsh.y" +#line 2972 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction ((yyvsp[(2) - (2)].c), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -7605,7 +7608,7 @@ yyreduce: break; case 225: -#line 2977 "Gmsh.y" +#line 2980 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction (&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -7614,7 +7617,7 @@ yyreduce: break; case 226: -#line 2983 "Gmsh.y" +#line 2986 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction ((yyvsp[(2) - (3)].c), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -7624,20 +7627,20 @@ yyreduce: break; case 227: -#line 2990 "Gmsh.y" +#line 2993 "Gmsh.y" { if(!(yyvsp[(3) - (4)].d)) skip_until("If", "EndIf"); ;} break; case 228: -#line 2994 "Gmsh.y" +#line 2997 "Gmsh.y" { ;} break; case 229: -#line 3003 "Gmsh.y" +#line 3006 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (5)].l), @@ -7648,7 +7651,7 @@ yyreduce: break; case 230: -#line 3011 "Gmsh.y" +#line 3014 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (11)].l), @@ -7659,7 +7662,7 @@ yyreduce: break; case 231: -#line 3019 "Gmsh.y" +#line 3022 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -7670,7 +7673,7 @@ yyreduce: break; case 232: -#line 3027 "Gmsh.y" +#line 3030 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -7679,7 +7682,7 @@ yyreduce: break; case 233: -#line 3033 "Gmsh.y" +#line 3036 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -7690,7 +7693,7 @@ yyreduce: break; case 234: -#line 3041 "Gmsh.y" +#line 3044 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -7699,7 +7702,7 @@ yyreduce: break; case 235: -#line 3047 "Gmsh.y" +#line 3050 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -7710,7 +7713,7 @@ yyreduce: break; case 236: -#line 3055 "Gmsh.y" +#line 3058 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -7719,7 +7722,7 @@ yyreduce: break; case 237: -#line 3061 "Gmsh.y" +#line 3064 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -7730,7 +7733,7 @@ yyreduce: break; case 238: -#line 3069 "Gmsh.y" +#line 3072 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -7739,7 +7742,7 @@ yyreduce: break; case 239: -#line 3075 "Gmsh.y" +#line 3078 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., @@ -7749,7 +7752,7 @@ yyreduce: break; case 240: -#line 3083 "Gmsh.y" +#line 3086 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -7759,7 +7762,7 @@ yyreduce: break; case 241: -#line 3090 "Gmsh.y" +#line 3093 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -7769,7 +7772,7 @@ yyreduce: break; case 242: -#line 3097 "Gmsh.y" +#line 3100 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -7779,7 +7782,7 @@ yyreduce: break; case 243: -#line 3104 "Gmsh.y" +#line 3107 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -7789,7 +7792,7 @@ yyreduce: break; case 244: -#line 3111 "Gmsh.y" +#line 3114 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -7799,7 +7802,7 @@ yyreduce: break; case 245: -#line 3118 "Gmsh.y" +#line 3121 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -7809,7 +7812,7 @@ yyreduce: break; case 246: -#line 3125 "Gmsh.y" +#line 3128 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -7819,7 +7822,7 @@ yyreduce: break; case 247: -#line 3132 "Gmsh.y" +#line 3135 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -7829,7 +7832,7 @@ yyreduce: break; case 248: -#line 3139 "Gmsh.y" +#line 3142 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -7839,7 +7842,7 @@ yyreduce: break; case 249: -#line 3146 "Gmsh.y" +#line 3149 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -7848,7 +7851,7 @@ yyreduce: break; case 250: -#line 3152 "Gmsh.y" +#line 3155 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -7858,7 +7861,7 @@ yyreduce: break; case 251: -#line 3159 "Gmsh.y" +#line 3162 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -7867,7 +7870,7 @@ yyreduce: break; case 252: -#line 3165 "Gmsh.y" +#line 3168 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -7877,7 +7880,7 @@ yyreduce: break; case 253: -#line 3172 "Gmsh.y" +#line 3175 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -7886,7 +7889,7 @@ yyreduce: break; case 254: -#line 3178 "Gmsh.y" +#line 3181 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -7896,7 +7899,7 @@ yyreduce: break; case 255: -#line 3185 "Gmsh.y" +#line 3188 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -7905,7 +7908,7 @@ yyreduce: break; case 256: -#line 3191 "Gmsh.y" +#line 3194 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -7915,7 +7918,7 @@ yyreduce: break; case 257: -#line 3198 "Gmsh.y" +#line 3201 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -7924,7 +7927,7 @@ yyreduce: break; case 258: -#line 3204 "Gmsh.y" +#line 3207 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -7934,7 +7937,7 @@ yyreduce: break; case 259: -#line 3211 "Gmsh.y" +#line 3214 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -7943,7 +7946,7 @@ yyreduce: break; case 260: -#line 3217 "Gmsh.y" +#line 3220 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -7953,7 +7956,7 @@ yyreduce: break; case 261: -#line 3224 "Gmsh.y" +#line 3227 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -7962,7 +7965,7 @@ yyreduce: break; case 262: -#line 3230 "Gmsh.y" +#line 3233 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -7972,7 +7975,7 @@ yyreduce: break; case 263: -#line 3237 "Gmsh.y" +#line 3240 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -7981,7 +7984,7 @@ yyreduce: break; case 264: -#line 3243 "Gmsh.y" +#line 3246 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -7991,7 +7994,7 @@ yyreduce: break; case 265: -#line 3250 "Gmsh.y" +#line 3253 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -8000,7 +8003,7 @@ yyreduce: break; case 266: -#line 3256 "Gmsh.y" +#line 3259 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -8010,19 +8013,19 @@ yyreduce: break; case 267: -#line 3267 "Gmsh.y" +#line 3270 "Gmsh.y" { ;} break; case 268: -#line 3270 "Gmsh.y" +#line 3273 "Gmsh.y" { ;} break; case 269: -#line 3276 "Gmsh.y" +#line 3279 "Gmsh.y" { int n = (int)fabs((yyvsp[(3) - (5)].d)); if(n){ // we accept n==0 to easily disable layers @@ -8037,7 +8040,7 @@ yyreduce: break; case 270: -#line 3288 "Gmsh.y" +#line 3291 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -8060,7 +8063,7 @@ yyreduce: break; case 271: -#line 3308 "Gmsh.y" +#line 3311 "Gmsh.y" { yymsg(0, "Explicit region numbers in layers are deprecated"); extr.mesh.ExtrudeMesh = true; @@ -8086,35 +8089,35 @@ yyreduce: break; case 272: -#line 3332 "Gmsh.y" +#line 3335 "Gmsh.y" { extr.mesh.ScaleLast = true; ;} break; case 273: -#line 3336 "Gmsh.y" +#line 3339 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; case 274: -#line 3340 "Gmsh.y" +#line 3343 "Gmsh.y" { yymsg(0, "Keyword 'QuadTriSngl' deprecated. Use 'QuadTriNoNewVerts' instead."); ;} break; case 275: -#line 3344 "Gmsh.y" +#line 3347 "Gmsh.y" { yymsg(0, "Keyword 'QuadTriSngl' deprecated. Use 'QuadTriNoNewVerts' instead."); ;} break; case 276: -#line 3348 "Gmsh.y" +#line 3351 "Gmsh.y" { yymsg(0, "Method 'QuadTriDbl' deprecated. Use 'QuadTriAddVerts' instead, " "which has no requirement for the number of extrusion layers and meshes " @@ -8123,7 +8126,7 @@ yyreduce: break; case 277: -#line 3354 "Gmsh.y" +#line 3357 "Gmsh.y" { yymsg(0, "Method 'QuadTriDbl' deprecated. Use 'QuadTriAddVerts' instead, " "which has no requirement for the number of extrusion layers and meshes " @@ -8132,35 +8135,35 @@ yyreduce: break; case 278: -#line 3360 "Gmsh.y" +#line 3363 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1; ;} break; case 279: -#line 3364 "Gmsh.y" +#line 3367 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1_RECOMB; ;} break; case 280: -#line 3368 "Gmsh.y" +#line 3371 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_NOVERTS_1; ;} break; case 281: -#line 3372 "Gmsh.y" +#line 3375 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_NOVERTS_1_RECOMB; ;} break; case 282: -#line 3376 "Gmsh.y" +#line 3379 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -8182,7 +8185,7 @@ yyreduce: break; case 283: -#line 3395 "Gmsh.y" +#line 3398 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (6)].c), "Index")) extr.mesh.BoundaryLayerIndex = (yyvsp[(4) - (6)].d); @@ -8193,14 +8196,14 @@ yyreduce: break; case 284: -#line 3407 "Gmsh.y" +#line 3410 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; case 285: -#line 3411 "Gmsh.y" +#line 3414 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -8216,14 +8219,14 @@ yyreduce: break; case 286: -#line 3426 "Gmsh.y" +#line 3429 "Gmsh.y" { (yyval.i) = -1; // left ;} break; case 287: -#line 3430 "Gmsh.y" +#line 3433 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -8240,35 +8243,35 @@ yyreduce: break; case 288: -#line 3446 "Gmsh.y" +#line 3449 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; case 289: -#line 3450 "Gmsh.y" +#line 3453 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; case 290: -#line 3455 "Gmsh.y" +#line 3458 "Gmsh.y" { (yyval.i) = 45; ;} break; case 291: -#line 3459 "Gmsh.y" +#line 3462 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; case 292: -#line 3466 "Gmsh.y" +#line 3469 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; double coef = fabs((yyvsp[(6) - (7)].v)[1]); @@ -8327,7 +8330,7 @@ yyreduce: break; case 293: -#line 3522 "Gmsh.y" +#line 3525 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (6)].l)); if(k != 0 && k != 3 && k != 4){ @@ -8400,7 +8403,7 @@ yyreduce: break; case 294: -#line 3592 "Gmsh.y" +#line 3595 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); @@ -8408,7 +8411,7 @@ yyreduce: break; case 295: -#line 3597 "Gmsh.y" +#line 3600 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (5)].l)); if(k != 0 && k != 6 && k != 8){ @@ -8478,7 +8481,7 @@ yyreduce: break; case 296: -#line 3664 "Gmsh.y" +#line 3667 "Gmsh.y" { if(!(yyvsp[(2) - (3)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Volumes); @@ -8517,7 +8520,7 @@ yyreduce: break; case 297: -#line 3700 "Gmsh.y" +#line 3703 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (7)].l)); i++){ double d; @@ -8528,7 +8531,7 @@ yyreduce: break; case 298: -#line 3708 "Gmsh.y" +#line 3711 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -8574,7 +8577,7 @@ yyreduce: break; case 299: -#line 3751 "Gmsh.y" +#line 3754 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Volumes); @@ -8616,7 +8619,7 @@ yyreduce: break; case 300: -#line 3790 "Gmsh.y" +#line 3793 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -8639,7 +8642,7 @@ yyreduce: break; case 301: -#line 3810 "Gmsh.y" +#line 3813 "Gmsh.y" { if(List_Nbr((yyvsp[(5) - (6)].l)) != List_Nbr((yyvsp[(3) - (6)].l))){ yymsg(0, "Number of master (%d) different from number of slave (%d) lines", @@ -8669,7 +8672,7 @@ yyreduce: break; case 302: -#line 3838 "Gmsh.y" +#line 3841 "Gmsh.y" { if (List_Nbr((yyvsp[(5) - (12)].l)) != List_Nbr((yyvsp[(10) - (12)].l))){ yymsg(0, "Number of master surface edges (%d) different from number of " @@ -8711,7 +8714,7 @@ yyreduce: break; case 303: -#line 3877 "Gmsh.y" +#line 3880 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -8737,7 +8740,7 @@ yyreduce: break; case 304: -#line 3900 "Gmsh.y" +#line 3903 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -8763,21 +8766,21 @@ yyreduce: break; case 305: -#line 3923 "Gmsh.y" +#line 3926 "Gmsh.y" { Msg::Error("Point in Volume not implemented yet"); ;} break; case 306: -#line 3927 "Gmsh.y" +#line 3930 "Gmsh.y" { Msg::Error("Line in Volume not implemented yet"); ;} break; case 307: -#line 3931 "Gmsh.y" +#line 3934 "Gmsh.y" { Volume *v = FindVolume((int)(yyvsp[(8) - (10)].d)); if(v){ @@ -8803,7 +8806,7 @@ yyreduce: break; case 308: -#line 3954 "Gmsh.y" +#line 3957 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -8845,7 +8848,7 @@ yyreduce: break; case 309: -#line 3993 "Gmsh.y" +#line 3996 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Curves); @@ -8887,7 +8890,7 @@ yyreduce: break; case 310: -#line 4032 "Gmsh.y" +#line 4035 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::viter it = GModel::current()->firstVertex(); @@ -8911,7 +8914,7 @@ yyreduce: break; case 311: -#line 4053 "Gmsh.y" +#line 4056 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::eiter it = GModel::current()->firstEdge(); @@ -8935,7 +8938,7 @@ yyreduce: break; case 312: -#line 4074 "Gmsh.y" +#line 4077 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::fiter it = GModel::current()->firstFace(); @@ -8959,14 +8962,14 @@ yyreduce: break; case 313: -#line 4101 "Gmsh.y" +#line 4104 "Gmsh.y" { ReplaceAllDuplicates(); ;} break; case 314: -#line 4105 "Gmsh.y" +#line 4108 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) ReplaceAllDuplicates(); @@ -8979,7 +8982,7 @@ yyreduce: break; case 315: -#line 4115 "Gmsh.y" +#line 4118 "Gmsh.y" { if(List_Nbr((yyvsp[(4) - (6)].l)) >= 2){ double d; @@ -9012,22 +9015,22 @@ yyreduce: break; case 316: -#line 4149 "Gmsh.y" +#line 4152 "Gmsh.y" { (yyval.c) = (char*)"Homology"; ;} break; case 317: -#line 4150 "Gmsh.y" +#line 4153 "Gmsh.y" { (yyval.c) = (char*)"Cohomology"; ;} break; case 318: -#line 4151 "Gmsh.y" +#line 4154 "Gmsh.y" { (yyval.c) = (char*)"Betti"; ;} break; case 319: -#line 4156 "Gmsh.y" +#line 4159 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < 4; i++) dim.push_back(i); @@ -9036,7 +9039,7 @@ yyreduce: break; case 320: -#line 4162 "Gmsh.y" +#line 4165 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(3) - (5)].l)); i++){ @@ -9051,7 +9054,7 @@ yyreduce: break; case 321: -#line 4174 "Gmsh.y" +#line 4177 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(3) - (7)].l)); i++){ @@ -9072,7 +9075,7 @@ yyreduce: break; case 322: -#line 4192 "Gmsh.y" +#line 4195 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(6) - (10)].l)); i++){ @@ -9098,47 +9101,47 @@ yyreduce: break; case 323: -#line 4219 "Gmsh.y" +#line 4222 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 324: -#line 4220 "Gmsh.y" +#line 4223 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; case 325: -#line 4221 "Gmsh.y" +#line 4224 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; case 326: -#line 4222 "Gmsh.y" +#line 4225 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; case 327: -#line 4223 "Gmsh.y" +#line 4226 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; case 328: -#line 4224 "Gmsh.y" +#line 4227 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; case 329: -#line 4225 "Gmsh.y" +#line 4228 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; case 330: -#line 4226 "Gmsh.y" +#line 4229 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; case 331: -#line 4228 "Gmsh.y" +#line 4231 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -9148,227 +9151,227 @@ yyreduce: break; case 332: -#line 4234 "Gmsh.y" +#line 4237 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; case 333: -#line 4235 "Gmsh.y" +#line 4238 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; case 334: -#line 4236 "Gmsh.y" +#line 4239 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; case 335: -#line 4237 "Gmsh.y" +#line 4240 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; case 336: -#line 4238 "Gmsh.y" +#line 4241 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; case 337: -#line 4239 "Gmsh.y" +#line 4242 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; case 338: -#line 4240 "Gmsh.y" +#line 4243 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; case 339: -#line 4241 "Gmsh.y" +#line 4244 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; case 340: -#line 4242 "Gmsh.y" +#line 4245 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; case 341: -#line 4243 "Gmsh.y" +#line 4246 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; case 342: -#line 4244 "Gmsh.y" +#line 4247 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; case 343: -#line 4245 "Gmsh.y" +#line 4248 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 344: -#line 4246 "Gmsh.y" +#line 4249 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 345: -#line 4247 "Gmsh.y" +#line 4250 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 346: -#line 4248 "Gmsh.y" +#line 4251 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 347: -#line 4249 "Gmsh.y" +#line 4252 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 348: -#line 4250 "Gmsh.y" +#line 4253 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 349: -#line 4251 "Gmsh.y" +#line 4254 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 350: -#line 4252 "Gmsh.y" +#line 4255 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 351: -#line 4253 "Gmsh.y" +#line 4256 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 352: -#line 4254 "Gmsh.y" +#line 4257 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 353: -#line 4255 "Gmsh.y" +#line 4258 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 354: -#line 4256 "Gmsh.y" +#line 4259 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 355: -#line 4257 "Gmsh.y" +#line 4260 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 356: -#line 4258 "Gmsh.y" +#line 4261 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 357: -#line 4259 "Gmsh.y" +#line 4262 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 358: -#line 4260 "Gmsh.y" +#line 4263 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 359: -#line 4261 "Gmsh.y" +#line 4264 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 360: -#line 4262 "Gmsh.y" +#line 4265 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d) + 0.5); ;} break; case 361: -#line 4263 "Gmsh.y" +#line 4266 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 362: -#line 4264 "Gmsh.y" +#line 4267 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 363: -#line 4265 "Gmsh.y" +#line 4268 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 364: -#line 4266 "Gmsh.y" +#line 4269 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 365: -#line 4275 "Gmsh.y" +#line 4278 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 366: -#line 4276 "Gmsh.y" +#line 4279 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; case 367: -#line 4277 "Gmsh.y" +#line 4280 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; case 368: -#line 4278 "Gmsh.y" +#line 4281 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; case 369: -#line 4279 "Gmsh.y" +#line 4282 "Gmsh.y" { (yyval.d) = GetGmshMajorVersion(); ;} break; case 370: -#line 4280 "Gmsh.y" +#line 4283 "Gmsh.y" { (yyval.d) = GetGmshMinorVersion(); ;} break; case 371: -#line 4281 "Gmsh.y" +#line 4284 "Gmsh.y" { (yyval.d) = GetGmshPatchVersion(); ;} break; case 372: -#line 4282 "Gmsh.y" +#line 4285 "Gmsh.y" { (yyval.d) = Cpu(); ;} break; case 373: -#line 4283 "Gmsh.y" +#line 4286 "Gmsh.y" { (yyval.d) = GetMemoryUsage()/1024./1024.; ;} break; case 374: -#line 4284 "Gmsh.y" +#line 4287 "Gmsh.y" { (yyval.d) = TotalRam(); ;} break; case 375: -#line 4289 "Gmsh.y" +#line 4292 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 376: -#line 4291 "Gmsh.y" +#line 4294 "Gmsh.y" { std::vector<double> val(1, (yyvsp[(3) - (6)].d)); Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions); @@ -9377,7 +9380,7 @@ yyreduce: break; case 377: -#line 4297 "Gmsh.y" +#line 4300 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -9397,7 +9400,7 @@ yyreduce: break; case 378: -#line 4314 "Gmsh.y" +#line 4317 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -9418,7 +9421,7 @@ yyreduce: break; case 379: -#line 4332 "Gmsh.y" +#line 4335 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -9439,7 +9442,7 @@ yyreduce: break; case 380: -#line 4350 "Gmsh.y" +#line 4353 "Gmsh.y" { (yyval.d) = gmsh_yysymbols.count((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); @@ -9447,7 +9450,7 @@ yyreduce: break; case 381: -#line 4355 "Gmsh.y" +#line 4358 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(3) - (4)].c)); (yyval.d) = !StatFile(tmp); @@ -9456,7 +9459,7 @@ yyreduce: break; case 382: -#line 4361 "Gmsh.y" +#line 4364 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c)); @@ -9471,7 +9474,7 @@ yyreduce: break; case 383: -#line 4373 "Gmsh.y" +#line 4376 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -9491,7 +9494,7 @@ yyreduce: break; case 384: -#line 4390 "Gmsh.y" +#line 4393 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -9512,7 +9515,7 @@ yyreduce: break; case 385: -#line 4408 "Gmsh.y" +#line 4411 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -9533,7 +9536,7 @@ yyreduce: break; case 386: -#line 4429 "Gmsh.y" +#line 4432 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), (yyval.d)); Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c)); @@ -9541,7 +9544,7 @@ yyreduce: break; case 387: -#line 4434 "Gmsh.y" +#line 4437 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), (yyval.d)); Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c)); @@ -9549,7 +9552,7 @@ yyreduce: break; case 388: -#line 4439 "Gmsh.y" +#line 4442 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -9562,7 +9565,7 @@ yyreduce: break; case 389: -#line 4449 "Gmsh.y" +#line 4452 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -9575,7 +9578,7 @@ yyreduce: break; case 390: -#line 4459 "Gmsh.y" +#line 4462 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); @@ -9583,7 +9586,7 @@ yyreduce: break; case 391: -#line 4464 "Gmsh.y" +#line 4467 "Gmsh.y" { std::string s((yyvsp[(3) - (6)].c)), substr((yyvsp[(5) - (6)].c)); if(s.find(substr) != std::string::npos) @@ -9595,7 +9598,7 @@ yyreduce: break; case 392: -#line 4473 "Gmsh.y" +#line 4476 "Gmsh.y" { (yyval.d) = strcmp((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); Free((yyvsp[(3) - (6)].c)); Free((yyvsp[(5) - (6)].c)); @@ -9603,7 +9606,7 @@ yyreduce: break; case 393: -#line 4478 "Gmsh.y" +#line 4481 "Gmsh.y" { int align = 0, font = 0, fontsize = CTX::instance()->glFontSize; if(List_Nbr((yyvsp[(3) - (4)].l)) % 2){ @@ -9630,70 +9633,70 @@ yyreduce: break; case 394: -#line 4505 "Gmsh.y" +#line 4508 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; case 395: -#line 4509 "Gmsh.y" +#line 4512 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; case 396: -#line 4513 "Gmsh.y" +#line 4516 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; case 397: -#line 4517 "Gmsh.y" +#line 4520 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; case 398: -#line 4521 "Gmsh.y" +#line 4524 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; case 399: -#line 4528 "Gmsh.y" +#line 4531 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (11)].d); (yyval.v)[1] = (yyvsp[(4) - (11)].d); (yyval.v)[2] = (yyvsp[(6) - (11)].d); (yyval.v)[3] = (yyvsp[(8) - (11)].d); (yyval.v)[4] = (yyvsp[(10) - (11)].d); ;} break; case 400: -#line 4532 "Gmsh.y" +#line 4535 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (9)].d); (yyval.v)[1] = (yyvsp[(4) - (9)].d); (yyval.v)[2] = (yyvsp[(6) - (9)].d); (yyval.v)[3] = (yyvsp[(8) - (9)].d); (yyval.v)[4] = 1.0; ;} break; case 401: -#line 4536 "Gmsh.y" +#line 4539 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; case 402: -#line 4540 "Gmsh.y" +#line 4543 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; case 403: -#line 4547 "Gmsh.y" +#line 4550 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); @@ -9701,14 +9704,14 @@ yyreduce: break; case 404: -#line 4552 "Gmsh.y" +#line 4555 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; case 405: -#line 4559 "Gmsh.y" +#line 4562 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -9716,14 +9719,14 @@ yyreduce: break; case 406: -#line 4564 "Gmsh.y" +#line 4567 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 407: -#line 4568 "Gmsh.y" +#line 4571 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); @@ -9731,14 +9734,14 @@ yyreduce: break; case 408: -#line 4573 "Gmsh.y" +#line 4576 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 409: -#line 4577 "Gmsh.y" +#line 4580 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -9749,7 +9752,7 @@ yyreduce: break; case 410: -#line 4585 "Gmsh.y" +#line 4588 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -9760,14 +9763,14 @@ yyreduce: break; case 411: -#line 4596 "Gmsh.y" +#line 4599 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 412: -#line 4600 "Gmsh.y" +#line 4603 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -9779,7 +9782,7 @@ yyreduce: break; case 413: -#line 4612 "Gmsh.y" +#line 4615 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -9790,7 +9793,7 @@ yyreduce: break; case 414: -#line 4620 "Gmsh.y" +#line 4623 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -9801,7 +9804,7 @@ yyreduce: break; case 415: -#line 4628 "Gmsh.y" +#line 4631 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); for(double d = (yyvsp[(1) - (3)].d); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d <= (yyvsp[(3) - (3)].d)) : (d >= (yyvsp[(3) - (3)].d)); @@ -9811,7 +9814,7 @@ yyreduce: break; case 416: -#line 4635 "Gmsh.y" +#line 4638 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!(yyvsp[(5) - (5)].d)){ //|| ($1 < $3 && $5 < 0) || ($1 > $3 && $5 > 0) @@ -9824,7 +9827,7 @@ yyreduce: break; case 417: -#line 4645 "Gmsh.y" +#line 4648 "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 @@ -9847,35 +9850,35 @@ yyreduce: break; case 418: -#line 4665 "Gmsh.y" +#line 4668 "Gmsh.y" { (yyval.l) = GetAllEntityNumbers(0); ;} break; case 419: -#line 4669 "Gmsh.y" +#line 4672 "Gmsh.y" { (yyval.l) = GetAllEntityNumbers(1); ;} break; case 420: -#line 4673 "Gmsh.y" +#line 4676 "Gmsh.y" { (yyval.l) = GetAllEntityNumbers(2); ;} break; case 421: -#line 4677 "Gmsh.y" +#line 4680 "Gmsh.y" { (yyval.l) = GetAllEntityNumbers(3); ;} break; case 422: -#line 4681 "Gmsh.y" +#line 4684 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -9907,7 +9910,7 @@ yyreduce: break; case 423: -#line 4710 "Gmsh.y" +#line 4713 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -9939,7 +9942,7 @@ yyreduce: break; case 424: -#line 4739 "Gmsh.y" +#line 4742 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -9971,7 +9974,7 @@ yyreduce: break; case 425: -#line 4768 "Gmsh.y" +#line 4771 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -10003,7 +10006,7 @@ yyreduce: break; case 426: -#line 4797 "Gmsh.y" +#line 4800 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -10016,7 +10019,7 @@ yyreduce: break; case 427: -#line 4807 "Gmsh.y" +#line 4810 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -10029,7 +10032,7 @@ yyreduce: break; case 428: -#line 4817 "Gmsh.y" +#line 4820 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -10044,7 +10047,7 @@ yyreduce: break; case 429: -#line 4829 "Gmsh.y" +#line 4832 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(3) - (4)].c))) @@ -10059,7 +10062,7 @@ yyreduce: break; case 430: -#line 4841 "Gmsh.y" +#line 4844 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -10080,7 +10083,7 @@ yyreduce: break; case 431: -#line 4862 "Gmsh.y" +#line 4865 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -10088,21 +10091,21 @@ yyreduce: break; case 432: -#line 4867 "Gmsh.y" +#line 4870 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 433: -#line 4871 "Gmsh.y" +#line 4874 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; case 434: -#line 4875 "Gmsh.y" +#line 4878 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -10114,21 +10117,21 @@ yyreduce: break; case 435: -#line 4887 "Gmsh.y" +#line 4890 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d)); ;} break; case 436: -#line 4891 "Gmsh.y" +#line 4894 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255); ;} break; case 437: -#line 4903 "Gmsh.y" +#line 4906 "Gmsh.y" { int flag; (yyval.u) = GetColorForString(-1, (yyvsp[(1) - (1)].c), &flag); @@ -10138,7 +10141,7 @@ yyreduce: break; case 438: -#line 4910 "Gmsh.y" +#line 4913 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -10148,14 +10151,14 @@ yyreduce: break; case 439: -#line 4920 "Gmsh.y" +#line 4923 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 440: -#line 4924 "Gmsh.y" +#line 4927 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -10170,7 +10173,7 @@ yyreduce: break; case 441: -#line 4939 "Gmsh.y" +#line 4942 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); @@ -10178,21 +10181,21 @@ yyreduce: break; case 442: -#line 4944 "Gmsh.y" +#line 4947 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; case 443: -#line 4951 "Gmsh.y" +#line 4954 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 444: -#line 4955 "Gmsh.y" +#line 4958 "Gmsh.y" { if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown string variable '%s'", (yyvsp[(1) - (1)].c)); @@ -10208,7 +10211,7 @@ yyreduce: break; case 445: -#line 4968 "Gmsh.y" +#line 4971 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), out); @@ -10219,7 +10222,7 @@ yyreduce: break; case 446: -#line 4976 "Gmsh.y" +#line 4979 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -10230,14 +10233,14 @@ yyreduce: break; case 447: -#line 4987 "Gmsh.y" +#line 4990 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 448: -#line 4991 "Gmsh.y" +#line 4994 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -10248,7 +10251,7 @@ yyreduce: break; case 449: -#line 4999 "Gmsh.y" +#line 5002 "Gmsh.y" { std::string action = Msg::GetGmshOnelabAction(); (yyval.c) = (char *)Malloc(action.size() + 1); @@ -10257,7 +10260,7 @@ yyreduce: break; case 450: -#line 5005 "Gmsh.y" +#line 5008 "Gmsh.y" { const char *env = GetEnvironmentVar((yyvsp[(3) - (4)].c)); if(!env) env = ""; @@ -10268,7 +10271,7 @@ yyreduce: break; case 451: -#line 5013 "Gmsh.y" +#line 5016 "Gmsh.y" { std::string s = Msg::GetString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -10279,7 +10282,7 @@ yyreduce: break; case 452: -#line 5021 "Gmsh.y" +#line 5024 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (6)].c)) + strlen((yyvsp[(5) - (6)].c)) + 1) * sizeof(char)); strcpy((yyval.c), (yyvsp[(3) - (6)].c)); @@ -10290,7 +10293,7 @@ yyreduce: break; case 453: -#line 5029 "Gmsh.y" +#line 5032 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -10307,7 +10310,7 @@ yyreduce: break; case 454: -#line 5043 "Gmsh.y" +#line 5046 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -10324,7 +10327,7 @@ yyreduce: break; case 455: -#line 5057 "Gmsh.y" +#line 5060 "Gmsh.y" { std::string input = (yyvsp[(3) - (8)].c); std::string substr_old = (yyvsp[(5) - (8)].c); @@ -10339,7 +10342,7 @@ yyreduce: break; case 456: -#line 5069 "Gmsh.y" +#line 5072 "Gmsh.y" { int size = 0; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++) @@ -10358,14 +10361,14 @@ yyreduce: break; case 457: -#line 5085 "Gmsh.y" +#line 5088 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; case 458: -#line 5089 "Gmsh.y" +#line 5092 "Gmsh.y" { char tmpstring[5000]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -10387,12 +10390,12 @@ yyreduce: break; case 459: -#line 5108 "Gmsh.y" +#line 5111 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 460: -#line 5110 "Gmsh.y" +#line 5113 "Gmsh.y" { std::string val((yyvsp[(3) - (6)].c)); Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions); @@ -10403,7 +10406,7 @@ yyreduce: break; case 461: -#line 5121 "Gmsh.y" +#line 5124 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(char*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].c))); @@ -10411,12 +10414,12 @@ yyreduce: break; case 462: -#line 5126 "Gmsh.y" +#line 5129 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].c))); ;} break; case 463: -#line 5132 "Gmsh.y" +#line 5135 "Gmsh.y" { char tmpstr[256]; sprintf(tmpstr, "_%d", (int)(yyvsp[(4) - (5)].d)); @@ -10427,7 +10430,7 @@ yyreduce: break; case 464: -#line 5141 "Gmsh.y" +#line 5144 "Gmsh.y" { char tmpstr[256]; sprintf(tmpstr, "_%d", (int)(yyvsp[(4) - (5)].d)); @@ -10438,18 +10441,18 @@ yyreduce: break; case 465: -#line 5154 "Gmsh.y" +#line 5157 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 466: -#line 5157 "Gmsh.y" +#line 5160 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; /* Line 1267 of yacc.c. */ -#line 10453 "Gmsh.tab.cpp" +#line 10456 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -10663,7 +10666,7 @@ yyreturn: } -#line 5161 "Gmsh.y" +#line 5164 "Gmsh.y" void assignVariable(const std::string &name, int index, int assignType, diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 6d81fd30b79c6eac9b4a75808a880d4c9757d6cc..89397d471ba3f9d83863b937836d2f5f1b0e752e 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -2640,6 +2640,9 @@ Command : std::string tmp = FixRelativePath(gmsh_yyname, $2); CreateSingleDir(tmp); } + else if(!strcmp($1, "OnelabRun")){ + Msg::RunOnelabClient($2); + } else{ yymsg(0, "Unknown command '%s'", $1); }