From 33e9a7b085081583323c4c55ff6dac06871c9429 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Sat, 23 Feb 2019 09:25:31 +0100
Subject: [PATCH] mark SetPartition as deprecated

---
 Parser/Gmsh.tab.cpp | 1547 ++++++++++++++++++++++---------------------
 Parser/Gmsh.y       |    1 +
 2 files changed, 775 insertions(+), 773 deletions(-)

diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index 74ade2ff14..2fe6e6d9bb 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -874,44 +874,44 @@ static const yytype_uint16 yyrline[] =
     2382,  2398,  2414,  2431,  2468,  2490,  2514,  2515,  2520,  2523,
     2527,  2544,  2564,  2584,  2603,  2630,  2649,  2670,  2685,  2701,
     2719,  2770,  2791,  2813,  2836,  2941,  2957,  2992,  3014,  3036,
-    3042,  3057,  3085,  3097,  3106,  3113,  3125,  3144,  3148,  3153,
-    3157,  3162,  3169,  3176,  3183,  3195,  3268,  3286,  3311,  3326,
-    3359,  3371,  3395,  3399,  3404,  3411,  3416,  3426,  3431,  3437,
-    3445,  3449,  3453,  3457,  3461,  3470,  3534,  3550,  3567,  3584,
-    3606,  3628,  3663,  3671,  3679,  3685,  3692,  3699,  3719,  3745,
-    3757,  3768,  3786,  3804,  3823,  3822,  3847,  3846,  3873,  3872,
-    3897,  3896,  3919,  3935,  3952,  3969,  3992,  4020,  4023,  4029,
-    4041,  4061,  4065,  4069,  4073,  4077,  4081,  4085,  4089,  4098,
-    4111,  4112,  4113,  4114,  4115,  4119,  4120,  4121,  4122,  4123,
-    4126,  4150,  4169,  4192,  4195,  4211,  4214,  4231,  4234,  4240,
-    4243,  4250,  4253,  4260,  4282,  4323,  4367,  4406,  4431,  4443,
-    4455,  4467,  4479,  4488,  4518,  4544,  4570,  4602,  4629,  4655,
-    4681,  4707,  4733,  4755,  4766,  4814,  4868,  4883,  4895,  4906,
-    4913,  4928,  4942,  4943,  4944,  4948,  4954,  4966,  4984,  5012,
-    5013,  5014,  5015,  5016,  5017,  5018,  5019,  5020,  5027,  5028,
-    5029,  5030,  5031,  5032,  5033,  5034,  5035,  5036,  5037,  5038,
-    5039,  5040,  5041,  5042,  5043,  5044,  5045,  5046,  5047,  5048,
-    5049,  5050,  5051,  5052,  5053,  5054,  5055,  5056,  5057,  5058,
-    5059,  5060,  5061,  5062,  5063,  5064,  5073,  5074,  5075,  5076,
-    5077,  5078,  5079,  5080,  5081,  5082,  5083,  5088,  5087,  5095,
-    5097,  5102,  5107,  5111,  5116,  5121,  5125,  5129,  5133,  5137,
-    5141,  5145,  5151,  5167,  5172,  5178,  5184,  5203,  5224,  5257,
-    5261,  5266,  5270,  5274,  5278,  5283,  5288,  5298,  5308,  5313,
-    5324,  5333,  5338,  5343,  5371,  5372,  5378,  5379,  5385,  5384,
-    5407,  5409,  5414,  5423,  5425,  5431,  5432,  5437,  5441,  5445,
-    5449,  5453,  5460,  5464,  5468,  5472,  5479,  5484,  5491,  5496,
-    5500,  5505,  5509,  5517,  5528,  5532,  5536,  5550,  5558,  5566,
-    5573,  5583,  5606,  5611,  5617,  5622,  5628,  5639,  5645,  5651,
-    5657,  5667,  5677,  5687,  5699,  5703,  5708,  5720,  5724,  5728,
-    5732,  5750,  5758,  5766,  5795,  5805,  5821,  5832,  5837,  5841,
-    5845,  5857,  5861,  5873,  5890,  5900,  5904,  5919,  5924,  5931,
-    5935,  5940,  5954,  5970,  5974,  5978,  5982,  5986,  5994,  6000,
-    6006,  6012,  6021,  6025,  6029,  6037,  6043,  6049,  6053,  6061,
-    6069,  6076,  6085,  6089,  6093,  6108,  6122,  6136,  6148,  6164,
-    6173,  6182,  6192,  6203,  6211,  6219,  6223,  6242,  6249,  6255,
-    6262,  6270,  6269,  6279,  6303,  6305,  6311,  6316,  6318,  6323,
-    6328,  6333,  6335,  6339,  6351,  6365,  6369,  6376,  6384,  6392,
-    6403,  6405,  6408
+    3042,  3057,  3085,  3097,  3106,  3113,  3125,  3145,  3149,  3154,
+    3158,  3163,  3170,  3177,  3184,  3196,  3269,  3287,  3312,  3327,
+    3360,  3372,  3396,  3400,  3405,  3412,  3417,  3427,  3432,  3438,
+    3446,  3450,  3454,  3458,  3462,  3471,  3535,  3551,  3568,  3585,
+    3607,  3629,  3664,  3672,  3680,  3686,  3693,  3700,  3720,  3746,
+    3758,  3769,  3787,  3805,  3824,  3823,  3848,  3847,  3874,  3873,
+    3898,  3897,  3920,  3936,  3953,  3970,  3993,  4021,  4024,  4030,
+    4042,  4062,  4066,  4070,  4074,  4078,  4082,  4086,  4090,  4099,
+    4112,  4113,  4114,  4115,  4116,  4120,  4121,  4122,  4123,  4124,
+    4127,  4151,  4170,  4193,  4196,  4212,  4215,  4232,  4235,  4241,
+    4244,  4251,  4254,  4261,  4283,  4324,  4368,  4407,  4432,  4444,
+    4456,  4468,  4480,  4489,  4519,  4545,  4571,  4603,  4630,  4656,
+    4682,  4708,  4734,  4756,  4767,  4815,  4869,  4884,  4896,  4907,
+    4914,  4929,  4943,  4944,  4945,  4949,  4955,  4967,  4985,  5013,
+    5014,  5015,  5016,  5017,  5018,  5019,  5020,  5021,  5028,  5029,
+    5030,  5031,  5032,  5033,  5034,  5035,  5036,  5037,  5038,  5039,
+    5040,  5041,  5042,  5043,  5044,  5045,  5046,  5047,  5048,  5049,
+    5050,  5051,  5052,  5053,  5054,  5055,  5056,  5057,  5058,  5059,
+    5060,  5061,  5062,  5063,  5064,  5065,  5074,  5075,  5076,  5077,
+    5078,  5079,  5080,  5081,  5082,  5083,  5084,  5089,  5088,  5096,
+    5098,  5103,  5108,  5112,  5117,  5122,  5126,  5130,  5134,  5138,
+    5142,  5146,  5152,  5168,  5173,  5179,  5185,  5204,  5225,  5258,
+    5262,  5267,  5271,  5275,  5279,  5284,  5289,  5299,  5309,  5314,
+    5325,  5334,  5339,  5344,  5372,  5373,  5379,  5380,  5386,  5385,
+    5408,  5410,  5415,  5424,  5426,  5432,  5433,  5438,  5442,  5446,
+    5450,  5454,  5461,  5465,  5469,  5473,  5480,  5485,  5492,  5497,
+    5501,  5506,  5510,  5518,  5529,  5533,  5537,  5551,  5559,  5567,
+    5574,  5584,  5607,  5612,  5618,  5623,  5629,  5640,  5646,  5652,
+    5658,  5668,  5678,  5688,  5700,  5704,  5709,  5721,  5725,  5729,
+    5733,  5751,  5759,  5767,  5796,  5806,  5822,  5833,  5838,  5842,
+    5846,  5858,  5862,  5874,  5891,  5901,  5905,  5920,  5925,  5932,
+    5936,  5941,  5955,  5971,  5975,  5979,  5983,  5987,  5995,  6001,
+    6007,  6013,  6022,  6026,  6030,  6038,  6044,  6050,  6054,  6062,
+    6070,  6077,  6086,  6090,  6094,  6109,  6123,  6137,  6149,  6165,
+    6174,  6183,  6193,  6204,  6212,  6220,  6224,  6243,  6250,  6256,
+    6263,  6271,  6270,  6280,  6304,  6306,  6312,  6317,  6319,  6324,
+    6329,  6334,  6336,  6340,  6352,  6366,  6370,  6377,  6385,  6393,
+    6404,  6406,  6409
 };
 #endif
 
@@ -9373,6 +9373,7 @@ yyreduce:
   case 246:
 #line 3126 "Gmsh.y" /* yacc.c:1645  */
     {
+      yymsg(2, "'SetPartition' command is deprecated");
       std::vector<std::pair<int, int> > dimTags;
       ListOfShapes2VectorOfPairs((yyvsp[-1].l), dimTags);
       for(std::size_t i = 0; i < dimTags.size(); i++){
@@ -9385,89 +9386,89 @@ yyreduce:
       }
       List_Delete((yyvsp[-1].l));
     }
-#line 9389 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9390 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 247:
-#line 3145 "Gmsh.y" /* yacc.c:1645  */
+#line 3146 "Gmsh.y" /* yacc.c:1645  */
     {
       setVisibility(-1, 1, false);
     }
-#line 9397 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9398 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 248:
-#line 3149 "Gmsh.y" /* yacc.c:1645  */
+#line 3150 "Gmsh.y" /* yacc.c:1645  */
     {
       setVisibility(-1, 1, false);
       Free((yyvsp[-1].c));
     }
-#line 9406 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9407 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 249:
-#line 3154 "Gmsh.y" /* yacc.c:1645  */
+#line 3155 "Gmsh.y" /* yacc.c:1645  */
     {
       setVisibility(-1, 0, false);
     }
-#line 9414 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9415 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 250:
-#line 3158 "Gmsh.y" /* yacc.c:1645  */
+#line 3159 "Gmsh.y" /* yacc.c:1645  */
     {
       setVisibility(-1, 0, false);
       Free((yyvsp[-1].c));
     }
-#line 9423 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9424 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 251:
-#line 3163 "Gmsh.y" /* yacc.c:1645  */
+#line 3164 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<std::pair<int, int> > dimTags;
       ListOfShapes2VectorOfPairs((yyvsp[-1].l), dimTags);
       setVisibility(dimTags, 1, false);
       List_Delete((yyvsp[-1].l));
     }
-#line 9434 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9435 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 252:
-#line 3170 "Gmsh.y" /* yacc.c:1645  */
+#line 3171 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<std::pair<int, int> > dimTags;
       ListOfShapes2VectorOfPairs((yyvsp[-1].l), dimTags);
       setVisibility(dimTags, 1, true);
       List_Delete((yyvsp[-1].l));
     }
-#line 9445 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9446 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 253:
-#line 3177 "Gmsh.y" /* yacc.c:1645  */
+#line 3178 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<std::pair<int, int> > dimTags;
       ListOfShapes2VectorOfPairs((yyvsp[-1].l), dimTags);
       setVisibility(dimTags, 0, false);
       List_Delete((yyvsp[-1].l));
     }
-#line 9456 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9457 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 254:
-#line 3184 "Gmsh.y" /* yacc.c:1645  */
+#line 3185 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<std::pair<int, int> > dimTags;
       ListOfShapes2VectorOfPairs((yyvsp[-1].l), dimTags);
       setVisibility(dimTags, 0, true);
       List_Delete((yyvsp[-1].l));
     }
-#line 9467 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9468 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 255:
-#line 3196 "Gmsh.y" /* yacc.c:1645  */
+#line 3197 "Gmsh.y" /* yacc.c:1645  */
     {
       if(!strcmp((yyvsp[-2].c), "Include")){
         std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[-1].c));
@@ -9540,11 +9541,11 @@ yyreduce:
       }
       Free((yyvsp[-2].c)); Free((yyvsp[-1].c));
     }
-#line 9544 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9545 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 256:
-#line 3269 "Gmsh.y" /* yacc.c:1645  */
+#line 3270 "Gmsh.y" /* yacc.c:1645  */
     {
       int n = List_Nbr((yyvsp[-2].l));
       if(n == 1){
@@ -9562,11 +9563,11 @@ yyreduce:
       }
       List_Delete((yyvsp[-2].l));
     }
-#line 9566 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9567 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 257:
-#line 3287 "Gmsh.y" /* yacc.c:1645  */
+#line 3288 "Gmsh.y" /* yacc.c:1645  */
     {
 #if defined(HAVE_POST)
       if(!strcmp((yyvsp[-5].c), "View")){
@@ -9591,11 +9592,11 @@ yyreduce:
 #endif
       Free((yyvsp[-6].c)); Free((yyvsp[-5].c)); Free((yyvsp[-1].c));
     }
-#line 9595 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9596 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 258:
-#line 3312 "Gmsh.y" /* yacc.c:1645  */
+#line 3313 "Gmsh.y" /* yacc.c:1645  */
     {
 #if defined(HAVE_POST) && defined(HAVE_MESH)
       if(!strcmp((yyvsp[-6].c), "Background") && !strcmp((yyvsp[-5].c), "Mesh")  && !strcmp((yyvsp[-4].c), "View")){
@@ -9610,11 +9611,11 @@ yyreduce:
 #endif
       Free((yyvsp[-6].c)); Free((yyvsp[-5].c)); Free((yyvsp[-4].c));
     }
-#line 9614 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9615 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 259:
-#line 3327 "Gmsh.y" /* yacc.c:1645  */
+#line 3328 "Gmsh.y" /* yacc.c:1645  */
     {
       if(!strcmp((yyvsp[-2].c), "Sleep")){
 	SleepInSeconds((yyvsp[-1].d));
@@ -9647,11 +9648,11 @@ yyreduce:
 	yymsg(0, "Unknown command '%s'", (yyvsp[-2].c));
       Free((yyvsp[-2].c));
     }
-#line 9651 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9652 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 260:
-#line 3360 "Gmsh.y" /* yacc.c:1645  */
+#line 3361 "Gmsh.y" /* yacc.c:1645  */
     {
 #if defined(HAVE_PLUGINS)
        try {
@@ -9663,11 +9664,11 @@ yyreduce:
 #endif
        Free((yyvsp[-4].c)); Free((yyvsp[-1].c));
      }
-#line 9667 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9668 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 261:
-#line 3372 "Gmsh.y" /* yacc.c:1645  */
+#line 3373 "Gmsh.y" /* yacc.c:1645  */
     {
 #if defined(HAVE_POST)
       if(!strcmp((yyvsp[-1].c), "ElementsFromAllViews"))
@@ -9691,48 +9692,48 @@ yyreduce:
 #endif
       Free((yyvsp[-1].c));
     }
-#line 9695 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9696 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 262:
-#line 3396 "Gmsh.y" /* yacc.c:1645  */
+#line 3397 "Gmsh.y" /* yacc.c:1645  */
     {
       Msg::Exit(0);
     }
-#line 9703 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9704 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 263:
-#line 3400 "Gmsh.y" /* yacc.c:1645  */
+#line 3401 "Gmsh.y" /* yacc.c:1645  */
     {
       gmsh_yyerrorstate = 999; // this will be checked when yyparse returns
       YYABORT;
     }
-#line 9712 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9713 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 264:
-#line 3405 "Gmsh.y" /* yacc.c:1645  */
+#line 3406 "Gmsh.y" /* yacc.c:1645  */
     {
       // force sync
       if(GModel::current()->getOCCInternals())
         GModel::current()->getOCCInternals()->synchronize(GModel::current());
       GModel::current()->getGEOInternals()->synchronize(GModel::current());
     }
-#line 9723 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9724 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 265:
-#line 3412 "Gmsh.y" /* yacc.c:1645  */
+#line 3413 "Gmsh.y" /* yacc.c:1645  */
     {
       new GModel();
       GModel::current(GModel::list.size() - 1);
     }
-#line 9732 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9733 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 266:
-#line 3417 "Gmsh.y" /* yacc.c:1645  */
+#line 3418 "Gmsh.y" /* yacc.c:1645  */
     {
       CTX::instance()->forcedBBox = 0;
       if(GModel::current()->getOCCInternals() &&
@@ -9742,30 +9743,30 @@ yyreduce:
         GModel::current()->getGEOInternals()->synchronize(GModel::current());
       SetBoundingBox();
     }
-#line 9746 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9747 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 267:
-#line 3427 "Gmsh.y" /* yacc.c:1645  */
+#line 3428 "Gmsh.y" /* yacc.c:1645  */
     {
       CTX::instance()->forcedBBox = 1;
       SetBoundingBox((yyvsp[-12].d), (yyvsp[-10].d), (yyvsp[-8].d), (yyvsp[-6].d), (yyvsp[-4].d), (yyvsp[-2].d));
     }
-#line 9755 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9756 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 268:
-#line 3432 "Gmsh.y" /* yacc.c:1645  */
+#line 3433 "Gmsh.y" /* yacc.c:1645  */
     {
 #if defined(HAVE_OPENGL)
       drawContext::global()->draw();
 #endif
     }
-#line 9765 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9766 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 269:
-#line 3438 "Gmsh.y" /* yacc.c:1645  */
+#line 3439 "Gmsh.y" /* yacc.c:1645  */
     {
 #if defined(HAVE_OPENGL)
      CTX::instance()->mesh.changed = ENT_ALL;
@@ -9773,43 +9774,43 @@ yyreduce:
        PView::list[index]->setChanged(true);
 #endif
     }
-#line 9777 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9778 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 270:
-#line 3446 "Gmsh.y" /* yacc.c:1645  */
+#line 3447 "Gmsh.y" /* yacc.c:1645  */
     {
       GModel::current()->createTopologyFromMesh();
     }
-#line 9785 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9786 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 271:
-#line 3450 "Gmsh.y" /* yacc.c:1645  */
+#line 3451 "Gmsh.y" /* yacc.c:1645  */
     {
       GModel::current()->createGeometryOfDiscreteEntities();
     }
-#line 9793 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9794 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 272:
-#line 3454 "Gmsh.y" /* yacc.c:1645  */
+#line 3455 "Gmsh.y" /* yacc.c:1645  */
     {
       GModel::current()->renumberMeshVertices();
     }
-#line 9801 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9802 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 273:
-#line 3458 "Gmsh.y" /* yacc.c:1645  */
+#line 3459 "Gmsh.y" /* yacc.c:1645  */
     {
       GModel::current()->renumberMeshElements();
     }
-#line 9809 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9810 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 274:
-#line 3462 "Gmsh.y" /* yacc.c:1645  */
+#line 3463 "Gmsh.y" /* yacc.c:1645  */
     {
       if(GModel::current()->getOCCInternals() &&
          GModel::current()->getOCCInternals()->getChanged())
@@ -9818,11 +9819,11 @@ yyreduce:
         GModel::current()->getGEOInternals()->synchronize(GModel::current());
       GModel::current()->refineMesh(CTX::instance()->mesh.secondOrderLinear);
     }
-#line 9822 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9823 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 275:
-#line 3472 "Gmsh.y" /* yacc.c:1645  */
+#line 3473 "Gmsh.y" /* yacc.c:1645  */
     {
       int lock = CTX::instance()->lock;
       CTX::instance()->lock = 0;
@@ -9880,11 +9881,11 @@ yyreduce:
       List_Delete((yyvsp[-7].l));
       CTX::instance()->lock = lock;
     }
-#line 9884 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9885 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 276:
-#line 3535 "Gmsh.y" /* yacc.c:1645  */
+#line 3536 "Gmsh.y" /* yacc.c:1645  */
     {
 #if defined(HAVE_POPPLER)
        std::vector<int> is;
@@ -9896,11 +9897,11 @@ yyreduce:
        gmshPopplerWrapper::instance()->setMacroForPages(is, (yyvsp[-4].c), (yyvsp[-2].c) );
 #endif
      }
-#line 9900 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9901 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 277:
-#line 3551 "Gmsh.y" /* yacc.c:1645  */
+#line 3552 "Gmsh.y" /* yacc.c:1645  */
     {
       LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[-3].d);
       LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[-1].d);
@@ -9917,11 +9918,11 @@ yyreduce:
 	ImbricatedLoop = MAX_RECUR_LOOPS - 1;
       }
     }
-#line 9921 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9922 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 278:
-#line 3568 "Gmsh.y" /* yacc.c:1645  */
+#line 3569 "Gmsh.y" /* yacc.c:1645  */
     {
       LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[-5].d);
       LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[-3].d);
@@ -9938,11 +9939,11 @@ yyreduce:
 	ImbricatedLoop = MAX_RECUR_LOOPS - 1;
       }
     }
-#line 9942 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9943 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 279:
-#line 3585 "Gmsh.y" /* yacc.c:1645  */
+#line 3586 "Gmsh.y" /* yacc.c:1645  */
     {
       LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[-3].d);
       LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[-1].d);
@@ -9964,11 +9965,11 @@ yyreduce:
       }
       Free((yyvsp[-6].c));
     }
-#line 9968 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9969 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 280:
-#line 3607 "Gmsh.y" /* yacc.c:1645  */
+#line 3608 "Gmsh.y" /* yacc.c:1645  */
     {
       LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[-5].d);
       LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[-3].d);
@@ -9990,11 +9991,11 @@ yyreduce:
       }
       Free((yyvsp[-8].c));
     }
-#line 9994 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 9995 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 281:
-#line 3629 "Gmsh.y" /* yacc.c:1645  */
+#line 3630 "Gmsh.y" /* yacc.c:1645  */
     {
       if(ImbricatedLoop <= 0){
 	yymsg(0, "Invalid For/EndFor loop");
@@ -10029,11 +10030,11 @@ yyreduce:
 	  ImbricatedLoop--;
       }
     }
-#line 10033 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10034 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 282:
-#line 3664 "Gmsh.y" /* yacc.c:1645  */
+#line 3665 "Gmsh.y" /* yacc.c:1645  */
     {
       if(!FunctionManager::Instance()->createFunction
          (std::string((yyvsp[0].c)), gmsh_yyin, gmsh_yyname, gmsh_yylineno))
@@ -10041,11 +10042,11 @@ yyreduce:
       skip(NULL, "Return");
       Free((yyvsp[0].c));
     }
-#line 10045 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10046 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 283:
-#line 3672 "Gmsh.y" /* yacc.c:1645  */
+#line 3673 "Gmsh.y" /* yacc.c:1645  */
     {
       if(!FunctionManager::Instance()->createFunction
          (std::string((yyvsp[0].c)), gmsh_yyin, gmsh_yyname, gmsh_yylineno))
@@ -10053,43 +10054,43 @@ yyreduce:
       skip(NULL, "Return");
       Free((yyvsp[0].c));
     }
-#line 10057 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10058 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 284:
-#line 3680 "Gmsh.y" /* yacc.c:1645  */
+#line 3681 "Gmsh.y" /* yacc.c:1645  */
     {
       if(!FunctionManager::Instance()->leaveFunction
          (&gmsh_yyin, gmsh_yyname, gmsh_yylineno))
 	yymsg(0, "Error while exiting function");
     }
-#line 10067 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10068 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 285:
-#line 3686 "Gmsh.y" /* yacc.c:1645  */
+#line 3687 "Gmsh.y" /* yacc.c:1645  */
     {
       if(!FunctionManager::Instance()->enterFunction
          (std::string((yyvsp[-1].c)), &gmsh_yyin, gmsh_yyname, gmsh_yylineno))
 	yymsg(0, "Unknown function '%s'", (yyvsp[-1].c));
       Free((yyvsp[-1].c));
     }
-#line 10078 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10079 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 286:
-#line 3693 "Gmsh.y" /* yacc.c:1645  */
+#line 3694 "Gmsh.y" /* yacc.c:1645  */
     {
       if(!FunctionManager::Instance()->enterFunction
          (std::string((yyvsp[-1].c)), &gmsh_yyin, gmsh_yyname, gmsh_yylineno))
 	yymsg(0, "Unknown function '%s'", (yyvsp[-1].c));
       Free((yyvsp[-1].c));
     }
-#line 10089 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10090 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 287:
-#line 3700 "Gmsh.y" /* yacc.c:1645  */
+#line 3701 "Gmsh.y" /* yacc.c:1645  */
     {
       ImbricatedTest++;
       if(ImbricatedTest > MAX_RECUR_TESTS-1){
@@ -10109,11 +10110,11 @@ yyreduce:
         if(!type_until2) ImbricatedTest--; // EndIf reached
       }
     }
-#line 10113 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10114 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 288:
-#line 3720 "Gmsh.y" /* yacc.c:1645  */
+#line 3721 "Gmsh.y" /* yacc.c:1645  */
     {
       if(ImbricatedTest > 0){
         if (statusImbricatedTests[ImbricatedTest]){
@@ -10139,11 +10140,11 @@ yyreduce:
 	yymsg(0, "Orphan ElseIf");
       }
     }
-#line 10143 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10144 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 289:
-#line 3746 "Gmsh.y" /* yacc.c:1645  */
+#line 3747 "Gmsh.y" /* yacc.c:1645  */
     {
       if(ImbricatedTest > 0){
         if(statusImbricatedTests[ImbricatedTest]){
@@ -10155,21 +10156,21 @@ yyreduce:
 	yymsg(0, "Orphan Else");
       }
     }
-#line 10159 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10160 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 290:
-#line 3758 "Gmsh.y" /* yacc.c:1645  */
+#line 3759 "Gmsh.y" /* yacc.c:1645  */
     {
       ImbricatedTest--;
       if(ImbricatedTest < 0)
         yymsg(1, "Orphan EndIf");
     }
-#line 10169 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10170 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 291:
-#line 3769 "Gmsh.y" /* yacc.c:1645  */
+#line 3770 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<std::pair<int, int> > inDimTags, outDimTags;
       ListOfShapes2VectorOfPairs((yyvsp[-1].l), inDimTags);
@@ -10187,11 +10188,11 @@ yyreduce:
       List_Reset((yyval.l));
       VectorOfPairs2ListOfShapes(outDimTags, (yyval.l));
     }
-#line 10191 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10192 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 292:
-#line 3787 "Gmsh.y" /* yacc.c:1645  */
+#line 3788 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<std::pair<int, int> > inDimTags, outDimTags;
       ListOfShapes2VectorOfPairs((yyvsp[-1].l), inDimTags);
@@ -10209,11 +10210,11 @@ yyreduce:
       List_Reset((yyval.l));
       VectorOfPairs2ListOfShapes(outDimTags, (yyval.l));
     }
-#line 10213 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10214 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 293:
-#line 3805 "Gmsh.y" /* yacc.c:1645  */
+#line 3806 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<std::pair<int, int> > inDimTags, outDimTags;
       ListOfShapes2VectorOfPairs((yyvsp[-1].l), inDimTags);
@@ -10231,21 +10232,21 @@ yyreduce:
       List_Reset((yyval.l));
       VectorOfPairs2ListOfShapes(outDimTags, (yyval.l));
     }
-#line 10235 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10236 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 294:
-#line 3823 "Gmsh.y" /* yacc.c:1645  */
+#line 3824 "Gmsh.y" /* yacc.c:1645  */
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
       extr.mesh.ScaleLast = false;
     }
-#line 10245 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10246 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 295:
-#line 3829 "Gmsh.y" /* yacc.c:1645  */
+#line 3830 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<std::pair<int, int> > inDimTags, outDimTags;
       ListOfShapes2VectorOfPairs((yyvsp[-3].l), inDimTags);
@@ -10263,21 +10264,21 @@ yyreduce:
       List_Reset((yyval.l));
       VectorOfPairs2ListOfShapes(outDimTags, (yyval.l));
     }
-#line 10267 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10268 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 296:
-#line 3847 "Gmsh.y" /* yacc.c:1645  */
+#line 3848 "Gmsh.y" /* yacc.c:1645  */
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
       extr.mesh.ScaleLast = false;
     }
-#line 10277 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10278 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 297:
-#line 3853 "Gmsh.y" /* yacc.c:1645  */
+#line 3854 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<std::pair<int, int> > inDimTags, outDimTags;
       ListOfShapes2VectorOfPairs((yyvsp[-3].l), inDimTags);
@@ -10297,21 +10298,21 @@ yyreduce:
       List_Reset((yyval.l));
       VectorOfPairs2ListOfShapes(outDimTags, (yyval.l));
     }
-#line 10301 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10302 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 298:
-#line 3873 "Gmsh.y" /* yacc.c:1645  */
+#line 3874 "Gmsh.y" /* yacc.c:1645  */
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
       extr.mesh.ScaleLast = false;
     }
-#line 10311 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10312 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 299:
-#line 3879 "Gmsh.y" /* yacc.c:1645  */
+#line 3880 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<std::pair<int, int> > inDimTags, outDimTags;
       ListOfShapes2VectorOfPairs((yyvsp[-3].l), inDimTags);
@@ -10329,21 +10330,21 @@ yyreduce:
       List_Reset((yyval.l));
       VectorOfPairs2ListOfShapes(outDimTags, (yyval.l));
     }
-#line 10333 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10334 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 300:
-#line 3897 "Gmsh.y" /* yacc.c:1645  */
+#line 3898 "Gmsh.y" /* yacc.c:1645  */
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
       extr.mesh.ScaleLast = false;
     }
-#line 10343 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10344 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 301:
-#line 3903 "Gmsh.y" /* yacc.c:1645  */
+#line 3904 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<std::pair<int, int> > inDimTags, outDimTags;
       ListOfShapes2VectorOfPairs((yyvsp[-3].l), inDimTags);
@@ -10360,11 +10361,11 @@ yyreduce:
       List_Reset((yyval.l));
       VectorOfPairs2ListOfShapes(outDimTags, (yyval.l));
     }
-#line 10364 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10365 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 302:
-#line 3920 "Gmsh.y" /* yacc.c:1645  */
+#line 3921 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<std::pair<int, int> > inDimTags, outDimTags;
       ListOfShapes2VectorOfPairs((yyvsp[-6].l), inDimTags);
@@ -10380,11 +10381,11 @@ yyreduce:
       List_Reset((yyval.l));
       VectorOfPairs2ListOfShapes(outDimTags, (yyval.l));
     }
-#line 10384 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10385 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 303:
-#line 3936 "Gmsh.y" /* yacc.c:1645  */
+#line 3937 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       bool r = true;
@@ -10401,11 +10402,11 @@ yyreduce:
       if(!r) yymsg(0, "Could not add thrusections");
       List_Delete((yyvsp[0].l));
     }
-#line 10405 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10406 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 304:
-#line 3953 "Gmsh.y" /* yacc.c:1645  */
+#line 3954 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       bool r = true;
@@ -10422,11 +10423,11 @@ yyreduce:
       if(!r) yymsg(0, "Could not add ruled thrusections");
       List_Delete((yyvsp[0].l));
     }
-#line 10426 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10427 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 305:
-#line 3971 "Gmsh.y" /* yacc.c:1645  */
+#line 3972 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       bool r = true;
@@ -10448,11 +10449,11 @@ yyreduce:
       List_Delete((yyvsp[-4].l));
       List_Delete((yyvsp[-1].l));
     }
-#line 10452 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10453 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 306:
-#line 3994 "Gmsh.y" /* yacc.c:1645  */
+#line 3995 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       bool r = true;
@@ -10476,25 +10477,25 @@ yyreduce:
       List_Delete((yyvsp[-4].l));
       List_Delete((yyvsp[-1].l));
     }
-#line 10480 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10481 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 307:
-#line 4021 "Gmsh.y" /* yacc.c:1645  */
+#line 4022 "Gmsh.y" /* yacc.c:1645  */
     {
     }
-#line 10487 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10488 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 308:
-#line 4024 "Gmsh.y" /* yacc.c:1645  */
+#line 4025 "Gmsh.y" /* yacc.c:1645  */
     {
     }
-#line 10494 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10495 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 309:
-#line 4030 "Gmsh.y" /* yacc.c:1645  */
+#line 4031 "Gmsh.y" /* yacc.c:1645  */
     {
       int n = (int)fabs((yyvsp[-2].d));
       if(n){ // we accept n==0 to easily disable layers
@@ -10506,11 +10507,11 @@ yyreduce:
         extr.mesh.hLayer.push_back(1.);
       }
     }
-#line 10510 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10511 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 310:
-#line 4042 "Gmsh.y" /* yacc.c:1645  */
+#line 4043 "Gmsh.y" /* yacc.c:1645  */
     {
       extr.mesh.ExtrudeMesh = true;
       extr.mesh.NbLayer = List_Nbr((yyvsp[-4].l));
@@ -10530,67 +10531,67 @@ yyreduce:
       List_Delete((yyvsp[-4].l));
       List_Delete((yyvsp[-2].l));
     }
-#line 10534 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10535 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 311:
-#line 4062 "Gmsh.y" /* yacc.c:1645  */
+#line 4063 "Gmsh.y" /* yacc.c:1645  */
     {
       extr.mesh.ScaleLast = true;
     }
-#line 10542 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10543 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 312:
-#line 4066 "Gmsh.y" /* yacc.c:1645  */
+#line 4067 "Gmsh.y" /* yacc.c:1645  */
     {
       extr.mesh.Recombine = true;
     }
-#line 10550 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10551 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 313:
-#line 4070 "Gmsh.y" /* yacc.c:1645  */
+#line 4071 "Gmsh.y" /* yacc.c:1645  */
     {
       extr.mesh.Recombine = (yyvsp[-1].d) ? true : false;
     }
-#line 10558 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10559 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 314:
-#line 4074 "Gmsh.y" /* yacc.c:1645  */
+#line 4075 "Gmsh.y" /* yacc.c:1645  */
     {
       extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1;
     }
-#line 10566 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10567 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 315:
-#line 4078 "Gmsh.y" /* yacc.c:1645  */
+#line 4079 "Gmsh.y" /* yacc.c:1645  */
     {
       extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1_RECOMB;
     }
-#line 10574 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10575 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 316:
-#line 4082 "Gmsh.y" /* yacc.c:1645  */
+#line 4083 "Gmsh.y" /* yacc.c:1645  */
     {
       extr.mesh.QuadToTri = QUADTRI_NOVERTS_1;
     }
-#line 10582 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10583 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 317:
-#line 4086 "Gmsh.y" /* yacc.c:1645  */
+#line 4087 "Gmsh.y" /* yacc.c:1645  */
     {
       extr.mesh.QuadToTri = QUADTRI_NOVERTS_1_RECOMB;
     }
-#line 10590 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10591 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 318:
-#line 4090 "Gmsh.y" /* yacc.c:1645  */
+#line 4091 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<int> tags; ListOfDouble2Vector((yyvsp[-3].l), tags);
       int num = (int)(yyvsp[-6].d);
@@ -10599,11 +10600,11 @@ yyreduce:
       extr.mesh.Holes[num].second = tags;
       List_Delete((yyvsp[-3].l));
     }
-#line 10603 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10604 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 319:
-#line 4099 "Gmsh.y" /* yacc.c:1645  */
+#line 4100 "Gmsh.y" /* yacc.c:1645  */
     {
       if(!strcmp((yyvsp[-4].c), "Index"))
         extr.mesh.BoundaryLayerIndex = (yyvsp[-2].d);
@@ -10611,71 +10612,71 @@ yyreduce:
         extr.mesh.ViewIndex = (yyvsp[-2].d);
       Free((yyvsp[-4].c));
     }
-#line 10615 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10616 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 320:
-#line 4111 "Gmsh.y" /* yacc.c:1645  */
+#line 4112 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.i) = OCC_Internals::Union; }
-#line 10621 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10622 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 321:
-#line 4112 "Gmsh.y" /* yacc.c:1645  */
+#line 4113 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.i) = OCC_Internals::Intersection; }
-#line 10627 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10628 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 322:
-#line 4113 "Gmsh.y" /* yacc.c:1645  */
+#line 4114 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.i) = OCC_Internals::Difference; }
-#line 10633 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10634 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 323:
-#line 4114 "Gmsh.y" /* yacc.c:1645  */
+#line 4115 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.i) = OCC_Internals::Section; }
-#line 10639 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10640 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 324:
-#line 4115 "Gmsh.y" /* yacc.c:1645  */
+#line 4116 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.i) = OCC_Internals::Fragments; }
-#line 10645 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10646 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 325:
-#line 4119 "Gmsh.y" /* yacc.c:1645  */
+#line 4120 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.i) = 0; }
-#line 10651 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10652 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 326:
-#line 4120 "Gmsh.y" /* yacc.c:1645  */
+#line 4121 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.i) = 1; }
-#line 10657 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10658 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 327:
-#line 4121 "Gmsh.y" /* yacc.c:1645  */
+#line 4122 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.i) = 2; }
-#line 10663 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10664 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 328:
-#line 4122 "Gmsh.y" /* yacc.c:1645  */
+#line 4123 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.i) = (yyvsp[-1].d) ? 1 : 0; }
-#line 10669 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10670 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 329:
-#line 4123 "Gmsh.y" /* yacc.c:1645  */
+#line 4124 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.i) = (yyvsp[-1].d) ? 2 : 0; }
-#line 10675 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10676 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 330:
-#line 4128 "Gmsh.y" /* yacc.c:1645  */
+#line 4129 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       bool r = true;
@@ -10698,11 +10699,11 @@ yyreduce:
       List_Delete((yyvsp[-6].l));
       List_Delete((yyvsp[-2].l));
     }
-#line 10702 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10703 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 331:
-#line 4151 "Gmsh.y" /* yacc.c:1645  */
+#line 4152 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       bool r = true;
@@ -10718,11 +10719,11 @@ yyreduce:
       if(!r) yymsg(0, "Could import shape");
       Free((yyvsp[-1].c));
     }
-#line 10722 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10723 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 332:
-#line 4171 "Gmsh.y" /* yacc.c:1645  */
+#line 4172 "Gmsh.y" /* yacc.c:1645  */
     {
       bool r = true;
       if(gmsh_yyfactory == "OpenCASCADE" && GModel::current()->getOCCInternals()){
@@ -10740,19 +10741,19 @@ yyreduce:
       List_Delete((yyvsp[-7].l));
       List_Delete((yyvsp[-3].l));
     }
-#line 10744 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10745 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 333:
-#line 4192 "Gmsh.y" /* yacc.c:1645  */
+#line 4193 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.v)[0] = (yyval.v)[1] = 1.;
     }
-#line 10752 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10753 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 334:
-#line 4196 "Gmsh.y" /* yacc.c:1645  */
+#line 4197 "Gmsh.y" /* yacc.c:1645  */
     {
       if(!strcmp((yyvsp[-1].c), "Progression") || !strcmp((yyvsp[-1].c), "Power"))
         (yyval.v)[0] = 1.;
@@ -10765,19 +10766,19 @@ yyreduce:
       (yyval.v)[1] = (yyvsp[0].d);
       Free((yyvsp[-1].c));
     }
-#line 10769 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10770 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 335:
-#line 4211 "Gmsh.y" /* yacc.c:1645  */
+#line 4212 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.i) = -1; // left
     }
-#line 10777 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10778 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 336:
-#line 4215 "Gmsh.y" /* yacc.c:1645  */
+#line 4216 "Gmsh.y" /* yacc.c:1645  */
     {
       if(!strcmp((yyvsp[0].c), "Right"))
         (yyval.i) = 1;
@@ -10791,59 +10792,59 @@ yyreduce:
 	(yyval.i) = 2;
       Free((yyvsp[0].c));
     }
-#line 10795 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10796 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 337:
-#line 4231 "Gmsh.y" /* yacc.c:1645  */
+#line 4232 "Gmsh.y" /* yacc.c:1645  */
     {
      (yyval.l) = List_Create(1, 1, sizeof(double));
    }
-#line 10803 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10804 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 338:
-#line 4235 "Gmsh.y" /* yacc.c:1645  */
+#line 4236 "Gmsh.y" /* yacc.c:1645  */
     {
      (yyval.l) = (yyvsp[0].l);
    }
-#line 10811 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10812 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 339:
-#line 4240 "Gmsh.y" /* yacc.c:1645  */
+#line 4241 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.i) = 45;
     }
-#line 10819 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10820 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 340:
-#line 4244 "Gmsh.y" /* yacc.c:1645  */
+#line 4245 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.i) = (int)(yyvsp[0].d);
     }
-#line 10827 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10828 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 341:
-#line 4250 "Gmsh.y" /* yacc.c:1645  */
+#line 4251 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(1, 1, sizeof(double));
     }
-#line 10835 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10836 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 342:
-#line 4254 "Gmsh.y" /* yacc.c:1645  */
+#line 4255 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = (yyvsp[0].l);
     }
-#line 10843 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10844 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 343:
-#line 4261 "Gmsh.y" /* yacc.c:1645  */
+#line 4262 "Gmsh.y" /* yacc.c:1645  */
     {
       // mesh sizes at vertices are stored in internal CAD data, as they can be
       // specified during vertex creation and copied around during CAD
@@ -10865,11 +10866,11 @@ yyreduce:
       }
       List_Delete(tmp);
     }
-#line 10869 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10870 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 344:
-#line 4283 "Gmsh.y" /* yacc.c:1645  */
+#line 4284 "Gmsh.y" /* yacc.c:1645  */
     {
       // transfinite constraints are stored in GEO internals in addition to
       // GModel, as they can be copied around during GEO operations
@@ -10910,11 +10911,11 @@ yyreduce:
         List_Delete((yyvsp[-4].l));
       }
     }
-#line 10914 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10915 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 345:
-#line 4324 "Gmsh.y" /* yacc.c:1645  */
+#line 4325 "Gmsh.y" /* yacc.c:1645  */
     {
       // transfinite constraints are stored in GEO internals in addition to
       // GModel, as they can be copied around during GEO operations
@@ -10958,11 +10959,11 @@ yyreduce:
       }
       List_Delete((yyvsp[-2].l));
     }
-#line 10962 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 10963 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 346:
-#line 4368 "Gmsh.y" /* yacc.c:1645  */
+#line 4369 "Gmsh.y" /* yacc.c:1645  */
     {
       // transfinite constraints are stored in GEO internals in addition to
       // GModel, as they can be copied around during GEO operations
@@ -11001,11 +11002,11 @@ yyreduce:
       }
       List_Delete((yyvsp[-1].l));
     }
-#line 11005 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11006 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 347:
-#line 4407 "Gmsh.y" /* yacc.c:1645  */
+#line 4408 "Gmsh.y" /* yacc.c:1645  */
     {
       // transfinite constraints are stored in GEO internals in addition to
       // GModel, as they can be copied around during GEO operations
@@ -11030,11 +11031,11 @@ yyreduce:
         List_Delete((yyvsp[-1].l));
       }
     }
-#line 11034 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11035 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 348:
-#line 4432 "Gmsh.y" /* yacc.c:1645  */
+#line 4433 "Gmsh.y" /* yacc.c:1645  */
     {
       int tag = (int)(yyvsp[-4].d);
       GVertex *gf = GModel::current()->getVertexByTag(tag);
@@ -11046,11 +11047,11 @@ yyreduce:
 	yymsg(0, "Unknown Model Vertex %d",tag);
       }
     }
-#line 11050 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11051 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 349:
-#line 4444 "Gmsh.y" /* yacc.c:1645  */
+#line 4445 "Gmsh.y" /* yacc.c:1645  */
     {
       int tag = (int)(yyvsp[-4].d);
       GEdge *gf = GModel::current()->getEdgeByTag(tag);
@@ -11062,11 +11063,11 @@ yyreduce:
 	yymsg(0, "Unknown Model Edge %d",tag);
       }
     }
-#line 11066 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11067 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 350:
-#line 4456 "Gmsh.y" /* yacc.c:1645  */
+#line 4457 "Gmsh.y" /* yacc.c:1645  */
     {
       int tag = (int)(yyvsp[-4].d);
       GFace *gf = GModel::current()->getFaceByTag(tag);
@@ -11078,11 +11079,11 @@ yyreduce:
 	yymsg(0, "Unknown Model Face %d",tag);
       }
     }
-#line 11082 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11083 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 351:
-#line 4468 "Gmsh.y" /* yacc.c:1645  */
+#line 4469 "Gmsh.y" /* yacc.c:1645  */
     {
       int tag = (int)(yyvsp[-4].d);
       GRegion *gf = GModel::current()->getRegionByTag(tag);
@@ -11094,11 +11095,11 @@ yyreduce:
 	yymsg(0, "Unknown Model Region %d",tag);
       }
     }
-#line 11098 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11099 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 352:
-#line 4480 "Gmsh.y" /* yacc.c:1645  */
+#line 4481 "Gmsh.y" /* yacc.c:1645  */
     {
       for(int i = 0; i < List_Nbr((yyvsp[-4].l)); i++){
 	double d;
@@ -11107,11 +11108,11 @@ yyreduce:
       }
       List_Delete((yyvsp[-4].l));
     }
-#line 11111 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11112 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 353:
-#line 4489 "Gmsh.y" /* yacc.c:1645  */
+#line 4490 "Gmsh.y" /* yacc.c:1645  */
     {
       // recombine constraints are stored in GEO internals in addition to
       // GModel, as they can be copied around during GEO operations
@@ -11141,11 +11142,11 @@ yyreduce:
         List_Delete((yyvsp[-2].l));
       }
     }
-#line 11145 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11146 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 354:
-#line 4519 "Gmsh.y" /* yacc.c:1645  */
+#line 4520 "Gmsh.y" /* yacc.c:1645  */
     {
       // recombine constraints are stored in GEO internals in addition to
       // GModel, as they can be copied around during GEO operations
@@ -11171,11 +11172,11 @@ yyreduce:
         List_Delete((yyvsp[-1].l));
       }
     }
-#line 11175 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11176 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 355:
-#line 4545 "Gmsh.y" /* yacc.c:1645  */
+#line 4546 "Gmsh.y" /* yacc.c:1645  */
     {
       // smoothing constraints are stored in GEO internals in addition to
       // GModel, as they can be copied around during GEO operations
@@ -11201,11 +11202,11 @@ yyreduce:
         List_Delete((yyvsp[-3].l));
       }
     }
-#line 11205 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11206 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 356:
-#line 4572 "Gmsh.y" /* yacc.c:1645  */
+#line 4573 "Gmsh.y" /* yacc.c:1645  */
     {
       if (List_Nbr((yyvsp[-7].l)) != List_Nbr((yyvsp[-3].l))){
         yymsg(0, "Number of master lines (%d) different from number of "
@@ -11236,11 +11237,11 @@ yyreduce:
       List_Delete((yyvsp[-7].l));
       List_Delete((yyvsp[-3].l));
     }
-#line 11240 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11241 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 357:
-#line 4604 "Gmsh.y" /* yacc.c:1645  */
+#line 4605 "Gmsh.y" /* yacc.c:1645  */
     {
       if (List_Nbr((yyvsp[-7].l)) != List_Nbr((yyvsp[-3].l))){
         yymsg(0, "Number of master surfaces (%d) different from number of "
@@ -11266,11 +11267,11 @@ yyreduce:
       List_Delete((yyvsp[-7].l));
       List_Delete((yyvsp[-3].l));
     }
-#line 11270 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11271 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 358:
-#line 4631 "Gmsh.y" /* yacc.c:1645  */
+#line 4632 "Gmsh.y" /* yacc.c:1645  */
     {
       if (List_Nbr((yyvsp[-14].l)) != List_Nbr((yyvsp[-10].l))){
         yymsg(0, "Number of master curves (%d) different from number of "
@@ -11295,11 +11296,11 @@ yyreduce:
       List_Delete((yyvsp[-14].l));
       List_Delete((yyvsp[-10].l));
     }
-#line 11299 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11300 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 359:
-#line 4657 "Gmsh.y" /* yacc.c:1645  */
+#line 4658 "Gmsh.y" /* yacc.c:1645  */
     {
       if (List_Nbr((yyvsp[-14].l)) != List_Nbr((yyvsp[-10].l))){
         yymsg(0, "Number of master surfaces (%d) different from number of "
@@ -11324,11 +11325,11 @@ yyreduce:
       List_Delete((yyvsp[-14].l));
       List_Delete((yyvsp[-10].l));
     }
-#line 11328 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11329 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 360:
-#line 4683 "Gmsh.y" /* yacc.c:1645  */
+#line 4684 "Gmsh.y" /* yacc.c:1645  */
     {
       if (List_Nbr((yyvsp[-8].l)) != List_Nbr((yyvsp[-4].l))){
         yymsg(0, "Number of master curves (%d) different from number of "
@@ -11353,11 +11354,11 @@ yyreduce:
       List_Delete((yyvsp[-8].l));
       List_Delete((yyvsp[-4].l));
     }
-#line 11357 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11358 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 361:
-#line 4709 "Gmsh.y" /* yacc.c:1645  */
+#line 4710 "Gmsh.y" /* yacc.c:1645  */
     {
       if (List_Nbr((yyvsp[-8].l)) != List_Nbr((yyvsp[-4].l))){
         yymsg(0, "Number of master surfaces (%d) different from number of "
@@ -11382,11 +11383,11 @@ yyreduce:
       List_Delete((yyvsp[-8].l));
       List_Delete((yyvsp[-4].l));
     }
-#line 11386 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11387 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 362:
-#line 4735 "Gmsh.y" /* yacc.c:1645  */
+#line 4736 "Gmsh.y" /* yacc.c:1645  */
     {
       if (List_Nbr((yyvsp[-7].l)) != List_Nbr((yyvsp[-2].l))){
         yymsg(0, "Number of master surface curves (%d) different from number of "
@@ -11407,11 +11408,11 @@ yyreduce:
       List_Delete((yyvsp[-7].l));
       List_Delete((yyvsp[-2].l));
     }
-#line 11411 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11412 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 363:
-#line 4756 "Gmsh.y" /* yacc.c:1645  */
+#line 4757 "Gmsh.y" /* yacc.c:1645  */
     {
       if (((yyvsp[-4].i)==2 || (yyvsp[-4].i)==3) && (yyvsp[-9].i)<(yyvsp[-4].i) ) {
         std::vector<int> tags; ListOfDouble2Vector((yyvsp[-7].l), tags);
@@ -11422,11 +11423,11 @@ yyreduce:
       }
       List_Delete((yyvsp[-7].l));
     }
-#line 11426 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11427 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 364:
-#line 4767 "Gmsh.y" /* yacc.c:1645  */
+#line 4768 "Gmsh.y" /* yacc.c:1645  */
     {
       // reverse mesh constraints are stored in GEO internals in addition to
       // GModel, as they can be copied around during GEO operations
@@ -11474,11 +11475,11 @@ yyreduce:
         List_Delete((yyvsp[-1].l));
       }
     }
-#line 11478 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11479 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 365:
-#line 4815 "Gmsh.y" /* yacc.c:1645  */
+#line 4816 "Gmsh.y" /* yacc.c:1645  */
     {
       if(GModel::current()->getOCCInternals() &&
          GModel::current()->getOCCInternals()->getChanged())
@@ -11532,11 +11533,11 @@ yyreduce:
         List_Delete((yyvsp[-1].l));
       }
     }
-#line 11536 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11537 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 366:
-#line 4869 "Gmsh.y" /* yacc.c:1645  */
+#line 4870 "Gmsh.y" /* yacc.c:1645  */
     {
       if(GModel::current()->getOCCInternals() &&
          GModel::current()->getOCCInternals()->getChanged())
@@ -11551,11 +11552,11 @@ yyreduce:
       }
       List_Delete((yyvsp[-1].l));
     }
-#line 11555 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11556 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 367:
-#line 4884 "Gmsh.y" /* yacc.c:1645  */
+#line 4885 "Gmsh.y" /* yacc.c:1645  */
     {
       for(int i = 0; i < List_Nbr((yyvsp[-1].l)); i++){
 	double dnum;
@@ -11567,32 +11568,32 @@ yyreduce:
       }
       List_Delete((yyvsp[-1].l));
     }
-#line 11571 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11572 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 368:
-#line 4896 "Gmsh.y" /* yacc.c:1645  */
+#line 4897 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<int> tags; ListOfDouble2Vector((yyvsp[-1].l), tags);
       GModel::current()->getGEOInternals()->setCompoundMesh((yyvsp[-2].i), tags);
       List_Delete((yyvsp[-1].l));
     }
-#line 11581 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11582 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 369:
-#line 4907 "Gmsh.y" /* yacc.c:1645  */
+#line 4908 "Gmsh.y" /* yacc.c:1645  */
     {
       if(gmsh_yyfactory == "OpenCASCADE" && GModel::current()->getOCCInternals())
         GModel::current()->getOCCInternals()->removeAllDuplicates();
       else
         GModel::current()->getGEOInternals()->removeAllDuplicates();
     }
-#line 11592 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11593 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 370:
-#line 4914 "Gmsh.y" /* yacc.c:1645  */
+#line 4915 "Gmsh.y" /* yacc.c:1645  */
     {
       if(!strcmp((yyvsp[-1].c), "Geometry")){
         if(gmsh_yyfactory == "OpenCASCADE" && GModel::current()->getOCCInternals())
@@ -11607,11 +11608,11 @@ yyreduce:
         yymsg(0, "Unknown coherence command");
       Free((yyvsp[-1].c));
     }
-#line 11611 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11612 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 371:
-#line 4929 "Gmsh.y" /* yacc.c:1645  */
+#line 4930 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<int> tags; ListOfDouble2Vector((yyvsp[-2].l), tags);
       if(gmsh_yyfactory == "OpenCASCADE" && GModel::current()->getOCCInternals())
@@ -11620,39 +11621,39 @@ yyreduce:
         GModel::current()->getGEOInternals()->mergeVertices(tags);
       List_Delete((yyvsp[-2].l));
     }
-#line 11624 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11625 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 372:
-#line 4942 "Gmsh.y" /* yacc.c:1645  */
+#line 4943 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.c) = (char*)"Homology"; }
-#line 11630 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11631 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 373:
-#line 4943 "Gmsh.y" /* yacc.c:1645  */
+#line 4944 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.c) = (char*)"Cohomology"; }
-#line 11636 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11637 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 374:
-#line 4944 "Gmsh.y" /* yacc.c:1645  */
+#line 4945 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.c) = (char*)"Betti"; }
-#line 11642 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11643 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 375:
-#line 4949 "Gmsh.y" /* yacc.c:1645  */
+#line 4950 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<int> domain, subdomain, dim;
       for(int i = 0; i < 4; i++) dim.push_back(i);
       GModel::current()->addHomologyRequest((yyvsp[-1].c), domain, subdomain, dim);
     }
-#line 11652 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11653 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 376:
-#line 4955 "Gmsh.y" /* yacc.c:1645  */
+#line 4956 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<int> domain, subdomain, dim;
       for(int i = 0; i < List_Nbr((yyvsp[-2].l)); i++){
@@ -11664,11 +11665,11 @@ yyreduce:
       GModel::current()->addHomologyRequest((yyvsp[-4].c), domain, subdomain, dim);
       List_Delete((yyvsp[-2].l));
     }
-#line 11668 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11669 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 377:
-#line 4967 "Gmsh.y" /* yacc.c:1645  */
+#line 4968 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<int> domain, subdomain, dim;
       for(int i = 0; i < List_Nbr((yyvsp[-4].l)); i++){
@@ -11686,11 +11687,11 @@ yyreduce:
       List_Delete((yyvsp[-4].l));
       List_Delete((yyvsp[-2].l));
     }
-#line 11690 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11691 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 378:
-#line 4985 "Gmsh.y" /* yacc.c:1645  */
+#line 4986 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<int> domain, subdomain, dim;
       for(int i = 0; i < List_Nbr((yyvsp[-4].l)); i++){
@@ -11713,486 +11714,486 @@ yyreduce:
       List_Delete((yyvsp[-2].l));
       List_Delete((yyvsp[-7].l));
     }
-#line 11717 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11718 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 379:
-#line 5012 "Gmsh.y" /* yacc.c:1645  */
+#line 5013 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[0].d);           }
-#line 11723 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11724 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 380:
-#line 5013 "Gmsh.y" /* yacc.c:1645  */
+#line 5014 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[-1].d);           }
-#line 11729 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11730 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 381:
-#line 5014 "Gmsh.y" /* yacc.c:1645  */
+#line 5015 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = -(yyvsp[0].d);          }
-#line 11735 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11736 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 382:
-#line 5015 "Gmsh.y" /* yacc.c:1645  */
+#line 5016 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[0].d);           }
-#line 11741 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11742 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 383:
-#line 5016 "Gmsh.y" /* yacc.c:1645  */
+#line 5017 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = !(yyvsp[0].d);          }
-#line 11747 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11748 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 384:
-#line 5017 "Gmsh.y" /* yacc.c:1645  */
+#line 5018 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[-2].d) - (yyvsp[0].d);      }
-#line 11753 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11754 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 385:
-#line 5018 "Gmsh.y" /* yacc.c:1645  */
+#line 5019 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[-2].d) + (yyvsp[0].d);      }
-#line 11759 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11760 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 386:
-#line 5019 "Gmsh.y" /* yacc.c:1645  */
+#line 5020 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[-2].d) * (yyvsp[0].d);      }
-#line 11765 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11766 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 387:
-#line 5021 "Gmsh.y" /* yacc.c:1645  */
+#line 5022 "Gmsh.y" /* yacc.c:1645  */
     {
       if(!(yyvsp[0].d))
 	yymsg(0, "Division by zero in '%g / %g'", (yyvsp[-2].d), (yyvsp[0].d));
       else
 	(yyval.d) = (yyvsp[-2].d) / (yyvsp[0].d);
     }
-#line 11776 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11777 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 388:
-#line 5027 "Gmsh.y" /* yacc.c:1645  */
+#line 5028 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (int)(yyvsp[-2].d) | (int)(yyvsp[0].d); }
-#line 11782 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11783 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 389:
-#line 5028 "Gmsh.y" /* yacc.c:1645  */
+#line 5029 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (int)(yyvsp[-2].d) & (int)(yyvsp[0].d); }
-#line 11788 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11789 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 390:
-#line 5029 "Gmsh.y" /* yacc.c:1645  */
+#line 5030 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (int)(yyvsp[-2].d) % (int)(yyvsp[0].d); }
-#line 11794 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11795 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 391:
-#line 5030 "Gmsh.y" /* yacc.c:1645  */
+#line 5031 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = pow((yyvsp[-2].d), (yyvsp[0].d));  }
-#line 11800 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11801 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 392:
-#line 5031 "Gmsh.y" /* yacc.c:1645  */
+#line 5032 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[-2].d) < (yyvsp[0].d);      }
-#line 11806 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11807 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 393:
-#line 5032 "Gmsh.y" /* yacc.c:1645  */
+#line 5033 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[-2].d) > (yyvsp[0].d);      }
-#line 11812 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11813 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 394:
-#line 5033 "Gmsh.y" /* yacc.c:1645  */
+#line 5034 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[-2].d) <= (yyvsp[0].d);     }
-#line 11818 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11819 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 395:
-#line 5034 "Gmsh.y" /* yacc.c:1645  */
+#line 5035 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[-2].d) >= (yyvsp[0].d);     }
-#line 11824 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11825 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 396:
-#line 5035 "Gmsh.y" /* yacc.c:1645  */
+#line 5036 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[-2].d) == (yyvsp[0].d);     }
-#line 11830 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11831 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 397:
-#line 5036 "Gmsh.y" /* yacc.c:1645  */
+#line 5037 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[-2].d) != (yyvsp[0].d);     }
-#line 11836 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11837 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 398:
-#line 5037 "Gmsh.y" /* yacc.c:1645  */
+#line 5038 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[-2].d) && (yyvsp[0].d);     }
-#line 11842 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11843 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 399:
-#line 5038 "Gmsh.y" /* yacc.c:1645  */
+#line 5039 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[-2].d) || (yyvsp[0].d);     }
-#line 11848 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11849 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 400:
-#line 5039 "Gmsh.y" /* yacc.c:1645  */
+#line 5040 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = ((int)(yyvsp[-2].d) >> (int)(yyvsp[0].d)); }
-#line 11854 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11855 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 401:
-#line 5040 "Gmsh.y" /* yacc.c:1645  */
+#line 5041 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = ((int)(yyvsp[-2].d) << (int)(yyvsp[0].d)); }
-#line 11860 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11861 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 402:
-#line 5041 "Gmsh.y" /* yacc.c:1645  */
+#line 5042 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[-4].d) ? (yyvsp[-2].d) : (yyvsp[0].d); }
-#line 11866 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11867 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 403:
-#line 5042 "Gmsh.y" /* yacc.c:1645  */
+#line 5043 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = exp((yyvsp[-1].d));      }
-#line 11872 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11873 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 404:
-#line 5043 "Gmsh.y" /* yacc.c:1645  */
+#line 5044 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = log((yyvsp[-1].d));      }
-#line 11878 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11879 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 405:
-#line 5044 "Gmsh.y" /* yacc.c:1645  */
+#line 5045 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = log10((yyvsp[-1].d));    }
-#line 11884 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11885 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 406:
-#line 5045 "Gmsh.y" /* yacc.c:1645  */
+#line 5046 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = sqrt((yyvsp[-1].d));     }
-#line 11890 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11891 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 407:
-#line 5046 "Gmsh.y" /* yacc.c:1645  */
+#line 5047 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = sin((yyvsp[-1].d));      }
-#line 11896 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11897 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 408:
-#line 5047 "Gmsh.y" /* yacc.c:1645  */
+#line 5048 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = asin((yyvsp[-1].d));     }
-#line 11902 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11903 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 409:
-#line 5048 "Gmsh.y" /* yacc.c:1645  */
+#line 5049 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = cos((yyvsp[-1].d));      }
-#line 11908 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11909 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 410:
-#line 5049 "Gmsh.y" /* yacc.c:1645  */
+#line 5050 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = acos((yyvsp[-1].d));     }
-#line 11914 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11915 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 411:
-#line 5050 "Gmsh.y" /* yacc.c:1645  */
+#line 5051 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = tan((yyvsp[-1].d));      }
-#line 11920 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11921 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 412:
-#line 5051 "Gmsh.y" /* yacc.c:1645  */
+#line 5052 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = atan((yyvsp[-1].d));     }
-#line 11926 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11927 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 413:
-#line 5052 "Gmsh.y" /* yacc.c:1645  */
+#line 5053 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = atan2((yyvsp[-3].d), (yyvsp[-1].d));}
-#line 11932 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11933 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 414:
-#line 5053 "Gmsh.y" /* yacc.c:1645  */
+#line 5054 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = sinh((yyvsp[-1].d));     }
-#line 11938 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11939 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 415:
-#line 5054 "Gmsh.y" /* yacc.c:1645  */
+#line 5055 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = cosh((yyvsp[-1].d));     }
-#line 11944 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11945 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 416:
-#line 5055 "Gmsh.y" /* yacc.c:1645  */
+#line 5056 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = tanh((yyvsp[-1].d));     }
-#line 11950 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11951 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 417:
-#line 5056 "Gmsh.y" /* yacc.c:1645  */
+#line 5057 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = fabs((yyvsp[-1].d));     }
-#line 11956 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11957 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 418:
-#line 5057 "Gmsh.y" /* yacc.c:1645  */
+#line 5058 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = std::abs((yyvsp[-1].d)); }
-#line 11962 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11963 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 419:
-#line 5058 "Gmsh.y" /* yacc.c:1645  */
+#line 5059 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = floor((yyvsp[-1].d));    }
-#line 11968 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11969 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 420:
-#line 5059 "Gmsh.y" /* yacc.c:1645  */
+#line 5060 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = ceil((yyvsp[-1].d));     }
-#line 11974 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11975 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 421:
-#line 5060 "Gmsh.y" /* yacc.c:1645  */
+#line 5061 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = floor((yyvsp[-1].d) + 0.5); }
-#line 11980 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11981 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 422:
-#line 5061 "Gmsh.y" /* yacc.c:1645  */
+#line 5062 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = fmod((yyvsp[-3].d), (yyvsp[-1].d)); }
-#line 11986 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11987 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 423:
-#line 5062 "Gmsh.y" /* yacc.c:1645  */
+#line 5063 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = fmod((yyvsp[-3].d), (yyvsp[-1].d)); }
-#line 11992 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11993 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 424:
-#line 5063 "Gmsh.y" /* yacc.c:1645  */
+#line 5064 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = sqrt((yyvsp[-3].d) * (yyvsp[-3].d) + (yyvsp[-1].d) * (yyvsp[-1].d)); }
-#line 11998 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 11999 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 425:
-#line 5064 "Gmsh.y" /* yacc.c:1645  */
+#line 5065 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[-1].d) * (double)rand() / (double)RAND_MAX; }
-#line 12004 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12005 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 426:
-#line 5073 "Gmsh.y" /* yacc.c:1645  */
+#line 5074 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[0].d); }
-#line 12010 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12011 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 427:
-#line 5074 "Gmsh.y" /* yacc.c:1645  */
+#line 5075 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = 3.141592653589793; }
-#line 12016 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12017 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 428:
-#line 5075 "Gmsh.y" /* yacc.c:1645  */
+#line 5076 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (double)ImbricatedTest; }
-#line 12022 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12023 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 429:
-#line 5076 "Gmsh.y" /* yacc.c:1645  */
+#line 5077 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = Msg::GetCommRank(); }
-#line 12028 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12029 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 430:
-#line 5077 "Gmsh.y" /* yacc.c:1645  */
+#line 5078 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = Msg::GetCommSize(); }
-#line 12034 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12035 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 431:
-#line 5078 "Gmsh.y" /* yacc.c:1645  */
+#line 5079 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = GetGmshMajorVersion(); }
-#line 12040 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12041 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 432:
-#line 5079 "Gmsh.y" /* yacc.c:1645  */
+#line 5080 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = GetGmshMinorVersion(); }
-#line 12046 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12047 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 433:
-#line 5080 "Gmsh.y" /* yacc.c:1645  */
+#line 5081 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = GetGmshPatchVersion(); }
-#line 12052 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12053 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 434:
-#line 5081 "Gmsh.y" /* yacc.c:1645  */
+#line 5082 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = Cpu(); }
-#line 12058 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12059 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 435:
-#line 5082 "Gmsh.y" /* yacc.c:1645  */
+#line 5083 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = GetMemoryUsage()/1024./1024.; }
-#line 12064 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12065 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 436:
-#line 5083 "Gmsh.y" /* yacc.c:1645  */
+#line 5084 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = TotalRam(); }
-#line 12070 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12071 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 437:
-#line 5088 "Gmsh.y" /* yacc.c:1645  */
+#line 5089 "Gmsh.y" /* yacc.c:1645  */
     { init_options(); }
-#line 12076 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12077 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 438:
-#line 5090 "Gmsh.y" /* yacc.c:1645  */
+#line 5091 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<double> val(1, (yyvsp[-3].d));
       Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions);
       (yyval.d) = val[0];
     }
-#line 12086 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12087 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 439:
-#line 5096 "Gmsh.y" /* yacc.c:1645  */
+#line 5097 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[0].d); }
-#line 12092 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12093 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 440:
-#line 5098 "Gmsh.y" /* yacc.c:1645  */
+#line 5099 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = Msg::GetOnelabNumber((yyvsp[-1].c));
       Free((yyvsp[-1].c));
     }
-#line 12101 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12102 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 441:
-#line 5103 "Gmsh.y" /* yacc.c:1645  */
+#line 5104 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = Msg::GetOnelabNumber((yyvsp[-3].c), (yyvsp[-1].d));
       Free((yyvsp[-3].c));
     }
-#line 12110 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12111 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 442:
-#line 5108 "Gmsh.y" /* yacc.c:1645  */
+#line 5109 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = treat_Struct_FullName_Float((yyvsp[0].c2).char1, (yyvsp[0].c2).char2);
     }
-#line 12118 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12119 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 443:
-#line 5113 "Gmsh.y" /* yacc.c:1645  */
+#line 5114 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = treat_Struct_FullName_Float(NULL, (yyvsp[-3].c), 2, (int)(yyvsp[-1].d));
     }
-#line 12126 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12127 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 444:
-#line 5118 "Gmsh.y" /* yacc.c:1645  */
+#line 5119 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = treat_Struct_FullName_Float(NULL, (yyvsp[-3].c), 2, (int)(yyvsp[-1].d));
     }
-#line 12134 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12135 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 445:
-#line 5122 "Gmsh.y" /* yacc.c:1645  */
+#line 5123 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = treat_Struct_FullName_Float((yyvsp[-1].c2).char1, (yyvsp[-1].c2).char2, 1, 0, 0., 1);
     }
-#line 12142 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12143 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 446:
-#line 5126 "Gmsh.y" /* yacc.c:1645  */
+#line 5127 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = treat_Struct_FullName_dot_tSTRING_Float((yyvsp[-3].c2).char1, (yyvsp[-3].c2).char2, (yyvsp[-1].c), 0, 0., 1);
     }
-#line 12150 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12151 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 447:
-#line 5130 "Gmsh.y" /* yacc.c:1645  */
+#line 5131 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = treat_Struct_FullName_Float((yyvsp[-2].c2).char1, (yyvsp[-2].c2).char2, 1, 0, (yyvsp[-1].d), 2);
     }
-#line 12158 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12159 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 448:
-#line 5134 "Gmsh.y" /* yacc.c:1645  */
+#line 5135 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = treat_Struct_FullName_dot_tSTRING_Float((yyvsp[-4].c2).char1, (yyvsp[-4].c2).char2, (yyvsp[-2].c), 0, (yyvsp[-1].d), 2);
     }
-#line 12166 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12167 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 449:
-#line 5138 "Gmsh.y" /* yacc.c:1645  */
+#line 5139 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = treat_Struct_FullName_Float((yyvsp[-5].c2).char1, (yyvsp[-5].c2).char2, 2, (int)(yyvsp[-3].d), (yyvsp[-1].d), 2);
     }
-#line 12174 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12175 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 450:
-#line 5142 "Gmsh.y" /* yacc.c:1645  */
+#line 5143 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = treat_Struct_FullName_dot_tSTRING_Float((yyvsp[-7].c2).char1, (yyvsp[-7].c2).char2, (yyvsp[-5].c), (int)(yyvsp[-3].d), (yyvsp[-1].d), 2);
     }
-#line 12182 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12183 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 451:
-#line 5146 "Gmsh.y" /* yacc.c:1645  */
+#line 5147 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[-1].c));
       (yyval.d) = !StatFile(tmp);
       Free((yyvsp[-1].c));
     }
-#line 12192 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12193 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 452:
-#line 5152 "Gmsh.y" /* yacc.c:1645  */
+#line 5153 "Gmsh.y" /* yacc.c:1645  */
     {
       if(gmsh_yysymbols.count((yyvsp[-2].c))){
         gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[-2].c)]);
@@ -12207,38 +12208,38 @@ yyreduce:
       }
       Free((yyvsp[-2].c));
     }
-#line 12211 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12212 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 453:
-#line 5168 "Gmsh.y" /* yacc.c:1645  */
+#line 5169 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = treat_Struct_FullName_dot_tSTRING_Float_getDim((yyvsp[-4].c2).char1, (yyvsp[-4].c2).char2, (yyvsp[-2].c));
     }
-#line 12219 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12220 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 454:
-#line 5173 "Gmsh.y" /* yacc.c:1645  */
+#line 5174 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string struct_namespace((yyvsp[-1].c));
       (yyval.d) = (double)gmsh_yynamespaces[struct_namespace].size();
       Free((yyvsp[-1].c));
     }
-#line 12229 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12230 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 455:
-#line 5179 "Gmsh.y" /* yacc.c:1645  */
+#line 5180 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string struct_namespace(std::string(""));
       (yyval.d) = (double)gmsh_yynamespaces[struct_namespace].size();
     }
-#line 12238 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12239 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 456:
-#line 5185 "Gmsh.y" /* yacc.c:1645  */
+#line 5186 "Gmsh.y" /* yacc.c:1645  */
     {
       if(!gmsh_yysymbols.count((yyvsp[-1].c))){
 	yymsg(0, "Unknown variable '%s'", (yyvsp[-1].c));
@@ -12257,11 +12258,11 @@ yyreduce:
       }
       Free((yyvsp[-1].c));
     }
-#line 12261 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12262 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 457:
-#line 5204 "Gmsh.y" /* yacc.c:1645  */
+#line 5205 "Gmsh.y" /* yacc.c:1645  */
     {
       int index = (int)(yyvsp[-2].d);
       if(!gmsh_yysymbols.count((yyvsp[-4].c))){
@@ -12281,11 +12282,11 @@ yyreduce:
       }
       Free((yyvsp[-4].c));
     }
-#line 12285 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12286 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 458:
-#line 5225 "Gmsh.y" /* yacc.c:1645  */
+#line 5226 "Gmsh.y" /* yacc.c:1645  */
     {
       int index = (int)(yyvsp[-2].d);
       if(!gmsh_yysymbols.count((yyvsp[-4].c))){
@@ -12305,68 +12306,68 @@ yyreduce:
       }
       Free((yyvsp[-4].c));
     }
-#line 12309 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12310 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 459:
-#line 5258 "Gmsh.y" /* yacc.c:1645  */
+#line 5259 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = treat_Struct_FullName_dot_tSTRING_Float(NULL, (yyvsp[-2].c), (yyvsp[0].c));
     }
-#line 12317 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12318 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 460:
-#line 5262 "Gmsh.y" /* yacc.c:1645  */
+#line 5263 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = treat_Struct_FullName_dot_tSTRING_Float((yyvsp[-4].c), (yyvsp[-2].c), (yyvsp[0].c));
     }
-#line 12325 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12326 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 461:
-#line 5267 "Gmsh.y" /* yacc.c:1645  */
+#line 5268 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = treat_Struct_FullName_dot_tSTRING_Float(NULL, (yyvsp[-5].c), (yyvsp[-3].c), (int)(yyvsp[-1].d));
     }
-#line 12333 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12334 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 462:
-#line 5271 "Gmsh.y" /* yacc.c:1645  */
+#line 5272 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = treat_Struct_FullName_dot_tSTRING_Float((yyvsp[-7].c), (yyvsp[-5].c), (yyvsp[-3].c), (int)(yyvsp[-1].d));
     }
-#line 12341 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12342 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 463:
-#line 5275 "Gmsh.y" /* yacc.c:1645  */
+#line 5276 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = treat_Struct_FullName_dot_tSTRING_Float(NULL, (yyvsp[-5].c), (yyvsp[-3].c), (int)(yyvsp[-1].d));
     }
-#line 12349 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12350 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 464:
-#line 5279 "Gmsh.y" /* yacc.c:1645  */
+#line 5280 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = treat_Struct_FullName_dot_tSTRING_Float((yyvsp[-7].c), (yyvsp[-5].c), (yyvsp[-3].c), (int)(yyvsp[-1].d));
     }
-#line 12357 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12358 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 465:
-#line 5284 "Gmsh.y" /* yacc.c:1645  */
+#line 5285 "Gmsh.y" /* yacc.c:1645  */
     {
       NumberOption(GMSH_GET, (yyvsp[-5].c), (int)(yyvsp[-3].d), (yyvsp[0].c), (yyval.d));
       Free((yyvsp[-5].c)); Free((yyvsp[0].c));
     }
-#line 12366 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12367 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 466:
-#line 5289 "Gmsh.y" /* yacc.c:1645  */
+#line 5290 "Gmsh.y" /* yacc.c:1645  */
     {
       double d = 0.;
       if(NumberOption(GMSH_GET, (yyvsp[-3].c), 0, (yyvsp[-1].c), d)){
@@ -12376,11 +12377,11 @@ yyreduce:
       }
       Free((yyvsp[-3].c)); Free((yyvsp[-1].c));
     }
-#line 12380 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12381 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 467:
-#line 5299 "Gmsh.y" /* yacc.c:1645  */
+#line 5300 "Gmsh.y" /* yacc.c:1645  */
     {
       double d = 0.;
       if(NumberOption(GMSH_GET, (yyvsp[-6].c), (int)(yyvsp[-4].d), (yyvsp[-1].c), d)){
@@ -12390,20 +12391,20 @@ yyreduce:
       }
       Free((yyvsp[-6].c)); Free((yyvsp[-1].c));
     }
-#line 12394 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12395 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 468:
-#line 5309 "Gmsh.y" /* yacc.c:1645  */
+#line 5310 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = Msg::GetValue((yyvsp[-3].c), (yyvsp[-1].d));
       Free((yyvsp[-3].c));
     }
-#line 12403 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12404 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 469:
-#line 5314 "Gmsh.y" /* yacc.c:1645  */
+#line 5315 "Gmsh.y" /* yacc.c:1645  */
     {
       int matches = 0;
       for(int i = 0; i < List_Nbr((yyvsp[-3].l)); i++){
@@ -12414,11 +12415,11 @@ yyreduce:
       (yyval.d) = matches;
       Free((yyvsp[-3].l)); Free((yyvsp[-1].l));
     }
-#line 12418 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12419 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 470:
-#line 5325 "Gmsh.y" /* yacc.c:1645  */
+#line 5326 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string s((yyvsp[-3].c)), substr((yyvsp[-1].c));
       if(s.find(substr) != std::string::npos)
@@ -12427,29 +12428,29 @@ yyreduce:
         (yyval.d) = 0.;
       Free((yyvsp[-3].c)); Free((yyvsp[-1].c));
     }
-#line 12431 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12432 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 471:
-#line 5334 "Gmsh.y" /* yacc.c:1645  */
+#line 5335 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = strlen((yyvsp[-1].c));
       Free((yyvsp[-1].c));
     }
-#line 12440 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12441 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 472:
-#line 5339 "Gmsh.y" /* yacc.c:1645  */
+#line 5340 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.d) = strcmp((yyvsp[-3].c), (yyvsp[-1].c));
       Free((yyvsp[-3].c)); Free((yyvsp[-1].c));
     }
-#line 12449 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12450 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 473:
-#line 5344 "Gmsh.y" /* yacc.c:1645  */
+#line 5345 "Gmsh.y" /* yacc.c:1645  */
     {
       int align = 0, font = 0, fontsize = CTX::instance()->glFontSize;
       if(List_Nbr((yyvsp[-1].l)) % 2){
@@ -12473,46 +12474,46 @@ yyreduce:
       List_Delete((yyvsp[-1].l));
       (yyval.d) = (double)((align<<16)|(font<<8)|(fontsize));
     }
-#line 12477 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12478 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 474:
-#line 5371 "Gmsh.y" /* yacc.c:1645  */
+#line 5372 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = 0.; }
-#line 12483 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12484 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 475:
-#line 5373 "Gmsh.y" /* yacc.c:1645  */
+#line 5374 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.d) = (yyvsp[0].d);}
-#line 12489 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12490 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 476:
-#line 5378 "Gmsh.y" /* yacc.c:1645  */
+#line 5379 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.c) = NULL; }
-#line 12495 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12496 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 477:
-#line 5380 "Gmsh.y" /* yacc.c:1645  */
+#line 5381 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.c) = (yyvsp[0].c);}
-#line 12501 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12502 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 478:
-#line 5385 "Gmsh.y" /* yacc.c:1645  */
+#line 5386 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string struct_namespace((yyvsp[-1].c2).char1? (yyvsp[-1].c2).char1 : std::string("")),
         struct_name((yyvsp[-1].c2).char2);
       init_options
         (gmsh_yynamespaces.getMember_ValMax(struct_namespace, struct_name));
     }
-#line 12512 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12513 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 479:
-#line 5392 "Gmsh.y" /* yacc.c:1645  */
+#line 5393 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string struct_namespace((yyvsp[-5].c2).char1? (yyvsp[-5].c2).char1 : std::string("")),
         struct_name((yyvsp[-5].c2).char2);
@@ -12525,176 +12526,176 @@ yyreduce:
               struct_namespace.c_str(), struct_name.c_str());
       (yyval.d) = (double)tag_out;
     }
-#line 12529 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12530 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 480:
-#line 5408 "Gmsh.y" /* yacc.c:1645  */
+#line 5409 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.c2).char1 = NULL; (yyval.c2).char2 = (yyvsp[0].c); }
-#line 12535 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12536 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 481:
-#line 5410 "Gmsh.y" /* yacc.c:1645  */
+#line 5411 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.c2).char1 = (yyvsp[-2].c); (yyval.c2).char2 = (yyvsp[0].c); }
-#line 12541 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12542 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 482:
-#line 5415 "Gmsh.y" /* yacc.c:1645  */
+#line 5416 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.c) = (yyvsp[0].c); flag_tSTRING_alloc = 1; }
-#line 12547 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12548 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 483:
-#line 5424 "Gmsh.y" /* yacc.c:1645  */
+#line 5425 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.i) = 99; }
-#line 12553 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12554 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 484:
-#line 5426 "Gmsh.y" /* yacc.c:1645  */
+#line 5427 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.i) = (int)(yyvsp[0].d); }
-#line 12559 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12560 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 485:
-#line 5431 "Gmsh.y" /* yacc.c:1645  */
+#line 5432 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.i) = 0; }
-#line 12565 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12566 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 486:
-#line 5433 "Gmsh.y" /* yacc.c:1645  */
+#line 5434 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.i) = (yyvsp[-1].i); }
-#line 12571 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12572 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 487:
-#line 5438 "Gmsh.y" /* yacc.c:1645  */
+#line 5439 "Gmsh.y" /* yacc.c:1645  */
     {
       memcpy((yyval.v), (yyvsp[0].v), 5*sizeof(double));
     }
-#line 12579 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12580 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 488:
-#line 5442 "Gmsh.y" /* yacc.c:1645  */
+#line 5443 "Gmsh.y" /* yacc.c:1645  */
     {
       for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[0].v)[i];
     }
-#line 12587 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12588 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 489:
-#line 5446 "Gmsh.y" /* yacc.c:1645  */
+#line 5447 "Gmsh.y" /* yacc.c:1645  */
     {
       for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[0].v)[i];
     }
-#line 12595 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12596 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 490:
-#line 5450 "Gmsh.y" /* yacc.c:1645  */
+#line 5451 "Gmsh.y" /* yacc.c:1645  */
     {
       for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[-2].v)[i] - (yyvsp[0].v)[i];
     }
-#line 12603 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12604 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 491:
-#line 5454 "Gmsh.y" /* yacc.c:1645  */
+#line 5455 "Gmsh.y" /* yacc.c:1645  */
     {
       for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[-2].v)[i] + (yyvsp[0].v)[i];
     }
-#line 12611 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12612 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 492:
-#line 5461 "Gmsh.y" /* yacc.c:1645  */
+#line 5462 "Gmsh.y" /* yacc.c:1645  */
     {
       (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);
     }
-#line 12619 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12620 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 493:
-#line 5465 "Gmsh.y" /* yacc.c:1645  */
+#line 5466 "Gmsh.y" /* yacc.c:1645  */
     {
       (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;
     }
-#line 12627 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12628 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 494:
-#line 5469 "Gmsh.y" /* yacc.c:1645  */
+#line 5470 "Gmsh.y" /* yacc.c:1645  */
     {
       (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;
     }
-#line 12635 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12636 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 495:
-#line 5473 "Gmsh.y" /* yacc.c:1645  */
+#line 5474 "Gmsh.y" /* yacc.c:1645  */
     {
       (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;
     }
-#line 12643 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12644 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 496:
-#line 5480 "Gmsh.y" /* yacc.c:1645  */
+#line 5481 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(2, 1, sizeof(List_T*));
       List_Add((yyval.l), &((yyvsp[0].l)));
     }
-#line 12652 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12653 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 497:
-#line 5485 "Gmsh.y" /* yacc.c:1645  */
+#line 5486 "Gmsh.y" /* yacc.c:1645  */
     {
       List_Add((yyval.l), &((yyvsp[0].l)));
     }
-#line 12660 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12661 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 498:
-#line 5492 "Gmsh.y" /* yacc.c:1645  */
+#line 5493 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(2, 1, sizeof(double));
       List_Add((yyval.l), &((yyvsp[0].d)));
     }
-#line 12669 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12670 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 499:
-#line 5497 "Gmsh.y" /* yacc.c:1645  */
+#line 5498 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = (yyvsp[0].l);
     }
-#line 12677 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12678 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 500:
-#line 5501 "Gmsh.y" /* yacc.c:1645  */
+#line 5502 "Gmsh.y" /* yacc.c:1645  */
     {
       // creates an empty list
       (yyval.l) = List_Create(2, 1, sizeof(double));
     }
-#line 12686 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12687 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 501:
-#line 5506 "Gmsh.y" /* yacc.c:1645  */
+#line 5507 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = (yyvsp[-1].l);
     }
-#line 12694 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12695 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 502:
-#line 5510 "Gmsh.y" /* yacc.c:1645  */
+#line 5511 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = (yyvsp[-1].l);
       for(int i = 0; i < List_Nbr((yyval.l)); i++){
@@ -12702,11 +12703,11 @@ yyreduce:
 	(*pd) = - (*pd);
       }
     }
-#line 12706 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12707 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 503:
-#line 5518 "Gmsh.y" /* yacc.c:1645  */
+#line 5519 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = (yyvsp[-1].l);
       for(int i = 0; i < List_Nbr((yyval.l)); i++){
@@ -12714,27 +12715,27 @@ yyreduce:
 	(*pd) *= (yyvsp[-4].d);
       }
     }
-#line 12718 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12719 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 504:
-#line 5529 "Gmsh.y" /* yacc.c:1645  */
+#line 5530 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = (yyvsp[0].l);
     }
-#line 12726 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12727 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 505:
-#line 5533 "Gmsh.y" /* yacc.c:1645  */
+#line 5534 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = 0;
     }
-#line 12734 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12735 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 506:
-#line 5537 "Gmsh.y" /* yacc.c:1645  */
+#line 5538 "Gmsh.y" /* yacc.c:1645  */
     {
       if(!strcmp((yyvsp[0].c), "*") || !strcmp((yyvsp[0].c), "all")){
         (yyval.l) = 0;
@@ -12745,11 +12746,11 @@ yyreduce:
       }
       Free((yyvsp[0].c));
     }
-#line 12749 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12750 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 507:
-#line 5551 "Gmsh.y" /* yacc.c:1645  */
+#line 5552 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = (yyvsp[0].l);
       for(int i = 0; i < List_Nbr((yyval.l)); i++){
@@ -12757,11 +12758,11 @@ yyreduce:
 	(*pd) = - (*pd);
       }
     }
-#line 12761 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12762 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 508:
-#line 5559 "Gmsh.y" /* yacc.c:1645  */
+#line 5560 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = (yyvsp[0].l);
       for(int i = 0; i < List_Nbr((yyval.l)); i++){
@@ -12769,22 +12770,22 @@ yyreduce:
 	(*pd) *= (yyvsp[-2].d);
       }
     }
-#line 12773 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12774 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 509:
-#line 5567 "Gmsh.y" /* yacc.c:1645  */
+#line 5568 "Gmsh.y" /* yacc.c:1645  */
     {
       (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.))
 	List_Add((yyval.l), &d);
     }
-#line 12784 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12785 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 510:
-#line 5574 "Gmsh.y" /* yacc.c:1645  */
+#line 5575 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(2, 1, sizeof(double));
       if(!(yyvsp[0].d)){  //|| ($1 < $3 && $5 < 0) || ($1 > $3 && $5 > 0)
@@ -12794,11 +12795,11 @@ yyreduce:
 	for(double d = (yyvsp[-4].d); ((yyvsp[0].d) > 0) ? (d <= (yyvsp[-2].d)) : (d >= (yyvsp[-2].d)); d += (yyvsp[0].d))
 	  List_Add((yyval.l), &d);
    }
-#line 12798 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12799 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 511:
-#line 5584 "Gmsh.y" /* yacc.c:1645  */
+#line 5585 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(3, 1, sizeof(double));
       int tag = (int)(yyvsp[-1].d);
@@ -12821,49 +12822,49 @@ yyreduce:
       List_Add((yyval.l), &y);
       List_Add((yyval.l), &z);
     }
-#line 12825 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12826 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 512:
-#line 5607 "Gmsh.y" /* yacc.c:1645  */
+#line 5608 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(10, 10, sizeof(double));
       getAllElementaryTags(0, (yyval.l));
     }
-#line 12834 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12835 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 513:
-#line 5612 "Gmsh.y" /* yacc.c:1645  */
+#line 5613 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(10, 10, sizeof(double));
       getAllElementaryTags(0, (yyval.l));
       Free((yyvsp[0].c));
     }
-#line 12844 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12845 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 514:
-#line 5618 "Gmsh.y" /* yacc.c:1645  */
+#line 5619 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(10, 10, sizeof(double));
       getAllElementaryTags((yyvsp[-3].i), (yyval.l));
     }
-#line 12853 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12854 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 515:
-#line 5623 "Gmsh.y" /* yacc.c:1645  */
+#line 5624 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(10, 10, sizeof(double));
       getAllElementaryTags((yyvsp[-1].i), (yyval.l));
       Free((yyvsp[0].c));
     }
-#line 12863 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12864 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 516:
-#line 5629 "Gmsh.y" /* yacc.c:1645  */
+#line 5630 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(10, 10, sizeof(double));
       if(!(yyvsp[0].l)){
@@ -12874,40 +12875,40 @@ yyreduce:
         List_Delete((yyvsp[0].l));
       }
     }
-#line 12878 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12879 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 517:
-#line 5640 "Gmsh.y" /* yacc.c:1645  */
+#line 5641 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(10, 10, sizeof(double));
       getParentTags((yyvsp[-1].i), (yyvsp[0].l), (yyval.l));
       List_Delete((yyvsp[0].l));
     }
-#line 12888 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12889 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 518:
-#line 5647 "Gmsh.y" /* yacc.c:1645  */
+#line 5648 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(10, 10, sizeof(double));
       getElementaryTagsInBoundingBox((yyvsp[-15].i), (yyvsp[-11].d), (yyvsp[-9].d), (yyvsp[-7].d), (yyvsp[-5].d), (yyvsp[-3].d), (yyvsp[-1].d), (yyval.l));
     }
-#line 12897 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12898 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 519:
-#line 5652 "Gmsh.y" /* yacc.c:1645  */
+#line 5653 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(10, 10, sizeof(double));
       getBoundingBox((yyvsp[-3].i), (yyvsp[-1].l), (yyval.l));
       List_Delete((yyvsp[-1].l));
     }
-#line 12907 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12908 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 520:
-#line 5658 "Gmsh.y" /* yacc.c:1645  */
+#line 5659 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(List_Nbr((yyvsp[0].l)), 1, sizeof(double));
       for(int i = 0; i < List_Nbr((yyvsp[0].l)); i++){
@@ -12917,11 +12918,11 @@ yyreduce:
       }
       List_Delete((yyvsp[0].l));
     }
-#line 12921 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12922 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 521:
-#line 5668 "Gmsh.y" /* yacc.c:1645  */
+#line 5669 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(List_Nbr((yyvsp[0].l)), 1, sizeof(double));
       for(int i = 0; i < List_Nbr((yyvsp[0].l)); i++){
@@ -12931,11 +12932,11 @@ yyreduce:
       }
       List_Delete((yyvsp[0].l));
     }
-#line 12935 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12936 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 522:
-#line 5678 "Gmsh.y" /* yacc.c:1645  */
+#line 5679 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(List_Nbr((yyvsp[0].l)), 1, sizeof(double));
       for(int i = 0; i < List_Nbr((yyvsp[0].l)); i++){
@@ -12945,11 +12946,11 @@ yyreduce:
       }
       List_Delete((yyvsp[0].l));
     }
-#line 12949 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12950 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 523:
-#line 5688 "Gmsh.y" /* yacc.c:1645  */
+#line 5689 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(20, 20, sizeof(double));
       if(!gmsh_yysymbols.count((yyvsp[-2].c)))
@@ -12961,27 +12962,27 @@ yyreduce:
       }
       Free((yyvsp[-2].c));
     }
-#line 12965 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12966 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 524:
-#line 5700 "Gmsh.y" /* yacc.c:1645  */
+#line 5701 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = treat_Struct_FullName_dot_tSTRING_ListOfFloat(NULL, (yyvsp[-4].c), (yyvsp[-2].c));
     }
-#line 12973 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12974 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 525:
-#line 5704 "Gmsh.y" /* yacc.c:1645  */
+#line 5705 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = treat_Struct_FullName_dot_tSTRING_ListOfFloat((yyvsp[-6].c), (yyvsp[-4].c), (yyvsp[-2].c));
     }
-#line 12981 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12982 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 526:
-#line 5709 "Gmsh.y" /* yacc.c:1645  */
+#line 5710 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(2, 1, sizeof(double));
       if(!gmsh_yysymbols.count((yyvsp[-1].c)))
@@ -12993,35 +12994,35 @@ yyreduce:
       }
       Free((yyvsp[-1].c));
     }
-#line 12997 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 12998 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 527:
-#line 5721 "Gmsh.y" /* yacc.c:1645  */
+#line 5722 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = (yyvsp[-1].l);
     }
-#line 13005 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13006 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 528:
-#line 5725 "Gmsh.y" /* yacc.c:1645  */
+#line 5726 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = (yyvsp[-1].l);
     }
-#line 13013 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13014 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 529:
-#line 5729 "Gmsh.y" /* yacc.c:1645  */
+#line 5730 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = (yyvsp[-2].l);
     }
-#line 13021 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13022 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 530:
-#line 5733 "Gmsh.y" /* yacc.c:1645  */
+#line 5734 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(2, 1, sizeof(double));
       if(!gmsh_yysymbols.count((yyvsp[-5].c)))
@@ -13039,11 +13040,11 @@ yyreduce:
       Free((yyvsp[-5].c));
       List_Delete((yyvsp[-2].l));
     }
-#line 13043 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13044 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 531:
-#line 5751 "Gmsh.y" /* yacc.c:1645  */
+#line 5752 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(20,20,sizeof(double));
       for(int i = 0; i < (int)(yyvsp[-1].d); i++) {
@@ -13051,11 +13052,11 @@ yyreduce:
 	List_Add((yyval.l), &d);
       }
     }
-#line 13055 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13056 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 532:
-#line 5759 "Gmsh.y" /* yacc.c:1645  */
+#line 5760 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(20,20,sizeof(double));
       for(int i = 0; i < (int)(yyvsp[-1].d); i++) {
@@ -13063,11 +13064,11 @@ yyreduce:
 	List_Add((yyval.l), &d);
       }
     }
-#line 13067 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13068 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 533:
-#line 5767 "Gmsh.y" /* yacc.c:1645  */
+#line 5768 "Gmsh.y" /* yacc.c:1645  */
     {
       Msg::Barrier();
       FILE *File;
@@ -13096,11 +13097,11 @@ yyreduce:
       }
       Free((yyvsp[-1].c));
     }
-#line 13100 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13101 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 534:
-#line 5796 "Gmsh.y" /* yacc.c:1645  */
+#line 5797 "Gmsh.y" /* yacc.c:1645  */
     {
       double x0 = (yyvsp[-11].d), x1 = (yyvsp[-9].d), y0 = (yyvsp[-7].d), y1 = (yyvsp[-5].d), ys = (yyvsp[-3].d);
       int N = (int)(yyvsp[-1].d);
@@ -13110,11 +13111,11 @@ yyreduce:
       (yyval.l) = List_Create(N,10,sizeof(double));
       for(int i = 0; i < N; i++) List_Add((yyval.l), &y[i]);
     }
-#line 13114 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13115 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 535:
-#line 5806 "Gmsh.y" /* yacc.c:1645  */
+#line 5807 "Gmsh.y" /* yacc.c:1645  */
     {
       std::vector<double> tmp;
       for(int i = 0; i < List_Nbr((yyvsp[-1].l)); i++){
@@ -13130,11 +13131,11 @@ yyreduce:
         List_Add((yyval.l), &tmp[i]);
       }
     }
-#line 13134 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13135 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 536:
-#line 5822 "Gmsh.y" /* yacc.c:1645  */
+#line 5823 "Gmsh.y" /* yacc.c:1645  */
     {
       for(int i = 0; i < List_Nbr((yyvsp[-1].l)); i++){
         double *d = (double*)List_Pointer((yyvsp[-1].l), i);
@@ -13142,36 +13143,36 @@ yyreduce:
       }
       (yyval.l) = (yyvsp[-1].l);
     }
-#line 13146 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13147 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 537:
-#line 5833 "Gmsh.y" /* yacc.c:1645  */
+#line 5834 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(2, 1, sizeof(double));
       List_Add((yyval.l), &((yyvsp[0].d)));
     }
-#line 13155 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13156 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 538:
-#line 5838 "Gmsh.y" /* yacc.c:1645  */
+#line 5839 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = (yyvsp[0].l);
     }
-#line 13163 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13164 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 539:
-#line 5842 "Gmsh.y" /* yacc.c:1645  */
+#line 5843 "Gmsh.y" /* yacc.c:1645  */
     {
       List_Add((yyval.l), &((yyvsp[0].d)));
     }
-#line 13171 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13172 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 540:
-#line 5846 "Gmsh.y" /* yacc.c:1645  */
+#line 5847 "Gmsh.y" /* yacc.c:1645  */
     {
       for(int i = 0; i < List_Nbr((yyvsp[0].l)); i++){
 	double d;
@@ -13180,27 +13181,27 @@ yyreduce:
       }
       List_Delete((yyvsp[0].l));
     }
-#line 13184 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13185 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 541:
-#line 5858 "Gmsh.y" /* yacc.c:1645  */
+#line 5859 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.u) = CTX::instance()->packColor((int)(yyvsp[-7].d), (int)(yyvsp[-5].d), (int)(yyvsp[-3].d), (int)(yyvsp[-1].d));
     }
-#line 13192 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13193 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 542:
-#line 5862 "Gmsh.y" /* yacc.c:1645  */
+#line 5863 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.u) = CTX::instance()->packColor((int)(yyvsp[-5].d), (int)(yyvsp[-3].d), (int)(yyvsp[-1].d), 255);
     }
-#line 13200 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13201 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 543:
-#line 5874 "Gmsh.y" /* yacc.c:1645  */
+#line 5875 "Gmsh.y" /* yacc.c:1645  */
     {
       int flag = 0;
       if(gmsh_yystringsymbols.count((yyvsp[0].c))){
@@ -13217,30 +13218,30 @@ yyreduce:
       if(flag) yymsg(0, "Unknown color '%s'", (yyvsp[0].c));
       Free((yyvsp[0].c));
     }
-#line 13221 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13222 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 544:
-#line 5891 "Gmsh.y" /* yacc.c:1645  */
+#line 5892 "Gmsh.y" /* yacc.c:1645  */
     {
       unsigned int val = 0;
       ColorOption(GMSH_GET, (yyvsp[-4].c), 0, (yyvsp[0].c), val);
       (yyval.u) = val;
       Free((yyvsp[-4].c)); Free((yyvsp[0].c));
     }
-#line 13232 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13233 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 545:
-#line 5901 "Gmsh.y" /* yacc.c:1645  */
+#line 5902 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = (yyvsp[-1].l);
     }
-#line 13240 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13241 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 546:
-#line 5905 "Gmsh.y" /* yacc.c:1645  */
+#line 5906 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(256, 10, sizeof(unsigned int));
       GmshColorTable *ct = GetColorTable((int)(yyvsp[-3].d));
@@ -13252,45 +13253,45 @@ yyreduce:
       }
       Free((yyvsp[-5].c));
     }
-#line 13256 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13257 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 547:
-#line 5920 "Gmsh.y" /* yacc.c:1645  */
+#line 5921 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(256, 10, sizeof(unsigned int));
       List_Add((yyval.l), &((yyvsp[0].u)));
     }
-#line 13265 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13266 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 548:
-#line 5925 "Gmsh.y" /* yacc.c:1645  */
+#line 5926 "Gmsh.y" /* yacc.c:1645  */
     {
       List_Add((yyval.l), &((yyvsp[0].u)));
     }
-#line 13273 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13274 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 549:
-#line 5932 "Gmsh.y" /* yacc.c:1645  */
+#line 5933 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.c) = (yyvsp[0].c);
     }
-#line 13281 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13282 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 550:
-#line 5936 "Gmsh.y" /* yacc.c:1645  */
+#line 5937 "Gmsh.y" /* yacc.c:1645  */
     {
       // No need to extend to Struct_FullName (a Tag is not a String)
       (yyval.c) = treat_Struct_FullName_String(NULL, (yyvsp[0].c));
     }
-#line 13290 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13291 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 551:
-#line 5941 "Gmsh.y" /* yacc.c:1645  */
+#line 5942 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string val;
       int j = (int)(yyvsp[-1].d);
@@ -13304,11 +13305,11 @@ yyreduce:
       strcpy((yyval.c), val.c_str());
       Free((yyvsp[-3].c));
     }
-#line 13308 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13309 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 552:
-#line 5955 "Gmsh.y" /* yacc.c:1645  */
+#line 5956 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string val;
       int j = (int)(yyvsp[-1].d);
@@ -13322,43 +13323,43 @@ yyreduce:
       strcpy((yyval.c), val.c_str());
       Free((yyvsp[-3].c));
     }
-#line 13326 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13327 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 553:
-#line 5971 "Gmsh.y" /* yacc.c:1645  */
+#line 5972 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.c) = treat_Struct_FullName_dot_tSTRING_String(NULL, (yyvsp[-2].c), (yyvsp[0].c));
     }
-#line 13334 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13335 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 554:
-#line 5975 "Gmsh.y" /* yacc.c:1645  */
+#line 5976 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.c) = treat_Struct_FullName_dot_tSTRING_String((yyvsp[-4].c), (yyvsp[-2].c), (yyvsp[0].c));
     }
-#line 13342 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13343 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 555:
-#line 5979 "Gmsh.y" /* yacc.c:1645  */
+#line 5980 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.c) = treat_Struct_FullName_dot_tSTRING_String(NULL, (yyvsp[-5].c), (yyvsp[-3].c), (int)(yyvsp[-1].d));
     }
-#line 13350 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13351 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 556:
-#line 5983 "Gmsh.y" /* yacc.c:1645  */
+#line 5984 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.c) = treat_Struct_FullName_dot_tSTRING_String((yyvsp[-7].c), (yyvsp[-5].c), (yyvsp[-3].c), (int)(yyvsp[-1].d));
     }
-#line 13358 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13359 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 557:
-#line 5987 "Gmsh.y" /* yacc.c:1645  */
+#line 5988 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string out;
       StringOption(GMSH_GET, (yyvsp[-5].c), (int)(yyvsp[-3].d), (yyvsp[0].c), out);
@@ -13366,67 +13367,67 @@ yyreduce:
       strcpy((yyval.c), out.c_str());
       Free((yyvsp[-5].c)); Free((yyvsp[0].c));
     }
-#line 13370 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13371 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 558:
-#line 5995 "Gmsh.y" /* yacc.c:1645  */
+#line 5996 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string name = GModel::current()->getPhysicalName(0, (int)(yyvsp[-1].d));
       (yyval.c) = (char*)Malloc((name.size() + 1) * sizeof(char));
       strcpy((yyval.c), name.c_str());
     }
-#line 13380 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13381 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 559:
-#line 6001 "Gmsh.y" /* yacc.c:1645  */
+#line 6002 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string name = GModel::current()->getPhysicalName(1, (int)(yyvsp[-1].d));
       (yyval.c) = (char*)Malloc((name.size() + 1) * sizeof(char));
       strcpy((yyval.c), name.c_str());
     }
-#line 13390 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13391 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 560:
-#line 6007 "Gmsh.y" /* yacc.c:1645  */
+#line 6008 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string name = GModel::current()->getPhysicalName(2, (int)(yyvsp[-1].d));
       (yyval.c) = (char*)Malloc((name.size() + 1) * sizeof(char));
       strcpy((yyval.c), name.c_str());
     }
-#line 13400 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13401 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 561:
-#line 6013 "Gmsh.y" /* yacc.c:1645  */
+#line 6014 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string name = GModel::current()->getPhysicalName(3, (int)(yyvsp[-1].d));
       (yyval.c) = (char*)Malloc((name.size() + 1) * sizeof(char));
       strcpy((yyval.c), name.c_str());
     }
-#line 13410 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13411 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 562:
-#line 6022 "Gmsh.y" /* yacc.c:1645  */
+#line 6023 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.c) = (yyvsp[0].c);
     }
-#line 13418 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13419 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 563:
-#line 6026 "Gmsh.y" /* yacc.c:1645  */
+#line 6027 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.c) = (yyvsp[-1].c);
     }
-#line 13426 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13427 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 564:
-#line 6030 "Gmsh.y" /* yacc.c:1645  */
+#line 6031 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.c) = (char *)Malloc(32 * sizeof(char));
       time_t now;
@@ -13434,39 +13435,39 @@ yyreduce:
       strcpy((yyval.c), ctime(&now));
       (yyval.c)[strlen((yyval.c)) - 1] = '\0';
     }
-#line 13438 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13439 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 565:
-#line 6038 "Gmsh.y" /* yacc.c:1645  */
+#line 6039 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string exe = Msg::GetExecutableName();
       (yyval.c) = (char *)Malloc(exe.size() + 1);
       strcpy((yyval.c), exe.c_str());
     }
-#line 13448 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13449 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 566:
-#line 6044 "Gmsh.y" /* yacc.c:1645  */
+#line 6045 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string action = Msg::GetOnelabAction();
       (yyval.c) = (char *)Malloc(action.size() + 1);
       strcpy((yyval.c), action.c_str());
     }
-#line 13458 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13459 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 567:
-#line 6050 "Gmsh.y" /* yacc.c:1645  */
+#line 6051 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.c) = strsave((char*)"Gmsh");
     }
-#line 13466 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13467 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 568:
-#line 6054 "Gmsh.y" /* yacc.c:1645  */
+#line 6055 "Gmsh.y" /* yacc.c:1645  */
     {
       const char *env = GetEnvironmentVar((yyvsp[-1].c));
       if(!env) env = "";
@@ -13474,11 +13475,11 @@ yyreduce:
       strcpy((yyval.c), env);
       Free((yyvsp[-1].c));
     }
-#line 13478 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13479 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 569:
-#line 6062 "Gmsh.y" /* yacc.c:1645  */
+#line 6063 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string s = Msg::GetString((yyvsp[-3].c), (yyvsp[-1].c));
       (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char));
@@ -13486,22 +13487,22 @@ yyreduce:
       Free((yyvsp[-3].c));
       Free((yyvsp[-1].c));
     }
-#line 13490 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13491 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 570:
-#line 6070 "Gmsh.y" /* yacc.c:1645  */
+#line 6071 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string s = Msg::GetOnelabString((yyvsp[-1].c));
       (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char));
       strcpy((yyval.c), s.c_str());
       Free((yyvsp[-1].c));
     }
-#line 13501 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13502 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 571:
-#line 6077 "Gmsh.y" /* yacc.c:1645  */
+#line 6078 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string s = Msg::GetOnelabString((yyvsp[-3].c), (yyvsp[-1].c));
       (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char));
@@ -13509,27 +13510,27 @@ yyreduce:
       Free((yyvsp[-3].c));
       Free((yyvsp[-1].c));
     }
-#line 13513 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13514 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 572:
-#line 6086 "Gmsh.y" /* yacc.c:1645  */
+#line 6087 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.c) = treat_Struct_FullName_String(NULL, (yyvsp[-2].c2).char2, 1, 0, (yyvsp[-1].c), 2);
     }
-#line 13521 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13522 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 573:
-#line 6090 "Gmsh.y" /* yacc.c:1645  */
+#line 6091 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.c) = treat_Struct_FullName_dot_tSTRING_String((yyvsp[-4].c2).char1, (yyvsp[-4].c2).char2, (yyvsp[-2].c), 0, (yyvsp[-1].c), 2);
     }
-#line 13529 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13530 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 574:
-#line 6094 "Gmsh.y" /* yacc.c:1645  */
+#line 6095 "Gmsh.y" /* yacc.c:1645  */
     {
       int size = 1;
       for(int i = 0; i < List_Nbr((yyvsp[-1].l)); i++)
@@ -13544,11 +13545,11 @@ yyreduce:
       }
       List_Delete((yyvsp[-1].l));
     }
-#line 13548 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13549 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 575:
-#line 6109 "Gmsh.y" /* yacc.c:1645  */
+#line 6110 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.c) = (char *)Malloc((strlen((yyvsp[-1].c)) + 1) * sizeof(char));
       int i;
@@ -13562,11 +13563,11 @@ yyreduce:
       if(i <= 0) strcpy((yyval.c), (yyvsp[-1].c));
       Free((yyvsp[-1].c));
     }
-#line 13566 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13567 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 576:
-#line 6123 "Gmsh.y" /* yacc.c:1645  */
+#line 6124 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.c) = (char *)Malloc((strlen((yyvsp[-1].c)) + 1) * sizeof(char));
       int i;
@@ -13580,11 +13581,11 @@ yyreduce:
 	strcpy((yyval.c), &(yyvsp[-1].c)[i+1]);
       Free((yyvsp[-1].c));
     }
-#line 13584 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13585 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 577:
-#line 6137 "Gmsh.y" /* yacc.c:1645  */
+#line 6138 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string input = (yyvsp[-5].c);
       std::string substr_old = (yyvsp[-3].c);
@@ -13596,11 +13597,11 @@ yyreduce:
       Free((yyvsp[-3].c));
       Free((yyvsp[-1].c));
     }
-#line 13600 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13601 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 578:
-#line 6149 "Gmsh.y" /* yacc.c:1645  */
+#line 6150 "Gmsh.y" /* yacc.c:1645  */
     {
       int size = 1;
       for(int i = 0; i < List_Nbr((yyvsp[-1].l)); i++)
@@ -13616,11 +13617,11 @@ yyreduce:
       }
       List_Delete((yyvsp[-1].l));
     }
-#line 13620 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13621 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 579:
-#line 6165 "Gmsh.y" /* yacc.c:1645  */
+#line 6166 "Gmsh.y" /* yacc.c:1645  */
     {
       int i = 0;
       while ((yyvsp[-1].c)[i]) {
@@ -13629,11 +13630,11 @@ yyreduce:
       }
       (yyval.c) = (yyvsp[-1].c);
     }
-#line 13633 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13634 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 580:
-#line 6174 "Gmsh.y" /* yacc.c:1645  */
+#line 6175 "Gmsh.y" /* yacc.c:1645  */
     {
       int i = 0;
       while ((yyvsp[-1].c)[i]) {
@@ -13642,11 +13643,11 @@ yyreduce:
       }
       (yyval.c) = (yyvsp[-1].c);
     }
-#line 13646 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13647 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 581:
-#line 6183 "Gmsh.y" /* yacc.c:1645  */
+#line 6184 "Gmsh.y" /* yacc.c:1645  */
     {
       int i = 0;
       while ((yyvsp[-1].c)[i]) {
@@ -13656,11 +13657,11 @@ yyreduce:
       }
       (yyval.c) = (yyvsp[-1].c);
     }
-#line 13660 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13661 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 582:
-#line 6193 "Gmsh.y" /* yacc.c:1645  */
+#line 6194 "Gmsh.y" /* yacc.c:1645  */
     {
       if((yyvsp[-5].d)){
         (yyval.c) = (yyvsp[-3].c);
@@ -13671,11 +13672,11 @@ yyreduce:
         Free((yyvsp[-3].c));
       }
     }
-#line 13675 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13676 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 583:
-#line 6204 "Gmsh.y" /* yacc.c:1645  */
+#line 6205 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string in = (yyvsp[-5].c);
       std::string out = in.substr((int)(yyvsp[-3].d), (int)(yyvsp[-1].d));
@@ -13683,11 +13684,11 @@ yyreduce:
       strcpy((yyval.c), out.c_str());
       Free((yyvsp[-5].c));
     }
-#line 13687 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13688 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 584:
-#line 6212 "Gmsh.y" /* yacc.c:1645  */
+#line 6213 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string in = (yyvsp[-3].c);
       std::string out = in.substr((int)(yyvsp[-1].d), std::string::npos);
@@ -13695,19 +13696,19 @@ yyreduce:
       strcpy((yyval.c), out.c_str());
       Free((yyvsp[-3].c));
     }
-#line 13699 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13700 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 585:
-#line 6220 "Gmsh.y" /* yacc.c:1645  */
+#line 6221 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.c) = (yyvsp[-1].c);
     }
-#line 13707 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13708 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 586:
-#line 6224 "Gmsh.y" /* yacc.c:1645  */
+#line 6225 "Gmsh.y" /* yacc.c:1645  */
     {
       char tmpstring[5000];
       int i = printListOfDouble((yyvsp[-3].c), (yyvsp[-1].l), tmpstring);
@@ -13726,60 +13727,60 @@ yyreduce:
       }
       List_Delete((yyvsp[-1].l));
     }
-#line 13730 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13731 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 587:
-#line 6243 "Gmsh.y" /* yacc.c:1645  */
+#line 6244 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[-1].c));
       (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char));
       strcpy((yyval.c), tmp.c_str());
       Free((yyvsp[-1].c));
     }
-#line 13741 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13742 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 588:
-#line 6250 "Gmsh.y" /* yacc.c:1645  */
+#line 6251 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string tmp = SplitFileName(GetAbsolutePath(gmsh_yyname))[0];
       (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char));
       strcpy((yyval.c), tmp.c_str());
     }
-#line 13751 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13752 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 589:
-#line 6256 "Gmsh.y" /* yacc.c:1645  */
+#line 6257 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string tmp = SplitFileName((yyvsp[-1].c))[0];
       (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char));
       strcpy((yyval.c), tmp.c_str());
       Free((yyvsp[-1].c));
     }
-#line 13762 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13763 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 590:
-#line 6263 "Gmsh.y" /* yacc.c:1645  */
+#line 6264 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string tmp = GetAbsolutePath((yyvsp[-1].c));
       (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char));
       strcpy((yyval.c), tmp.c_str());
       Free((yyvsp[-1].c));
     }
-#line 13773 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13774 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 591:
-#line 6270 "Gmsh.y" /* yacc.c:1645  */
+#line 6271 "Gmsh.y" /* yacc.c:1645  */
     { init_options(); }
-#line 13779 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13780 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 592:
-#line 6272 "Gmsh.y" /* yacc.c:1645  */
+#line 6273 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string val((yyvsp[-3].c));
       Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions);
@@ -13787,11 +13788,11 @@ yyreduce:
       strcpy((yyval.c), val.c_str());
       Free((yyvsp[-3].c));
     }
-#line 13791 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13792 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 593:
-#line 6280 "Gmsh.y" /* yacc.c:1645  */
+#line 6281 "Gmsh.y" /* yacc.c:1645  */
     {
       std::string out;
       const std::string * key_struct = NULL;
@@ -13812,70 +13813,70 @@ yyreduce:
       (yyval.c) = (char*)Malloc((out.size() + 1) * sizeof(char));
       strcpy((yyval.c), out.c_str());
     }
-#line 13816 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13817 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 594:
-#line 6304 "Gmsh.y" /* yacc.c:1645  */
+#line 6305 "Gmsh.y" /* yacc.c:1645  */
     { struct_namespace = std::string(""); (yyval.d) = (yyvsp[0].d); }
-#line 13822 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13823 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 595:
-#line 6306 "Gmsh.y" /* yacc.c:1645  */
+#line 6307 "Gmsh.y" /* yacc.c:1645  */
     { struct_namespace = (yyvsp[-3].c); Free((yyvsp[-3].c)); (yyval.d) = (yyvsp[0].d); }
-#line 13828 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13829 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 596:
-#line 6312 "Gmsh.y" /* yacc.c:1645  */
+#line 6313 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.l) = (yyvsp[-1].l); }
-#line 13834 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13835 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 597:
-#line 6317 "Gmsh.y" /* yacc.c:1645  */
+#line 6318 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.l) = (yyvsp[0].l); }
-#line 13840 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13841 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 598:
-#line 6319 "Gmsh.y" /* yacc.c:1645  */
+#line 6320 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.l) = (yyvsp[0].l); }
-#line 13846 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13847 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 599:
-#line 6324 "Gmsh.y" /* yacc.c:1645  */
+#line 6325 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.l) = (yyvsp[-1].l); }
-#line 13852 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13853 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 600:
-#line 6329 "Gmsh.y" /* yacc.c:1645  */
+#line 6330 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(20,20,sizeof(char*));
       List_Add((yyval.l), &((yyvsp[0].c)));
     }
-#line 13861 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13862 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 601:
-#line 6334 "Gmsh.y" /* yacc.c:1645  */
+#line 6335 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.l) = (yyvsp[0].l); }
-#line 13867 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13868 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 602:
-#line 6336 "Gmsh.y" /* yacc.c:1645  */
+#line 6337 "Gmsh.y" /* yacc.c:1645  */
     {
       List_Add((yyval.l), &((yyvsp[0].c)));
     }
-#line 13875 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13876 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 603:
-#line 6340 "Gmsh.y" /* yacc.c:1645  */
+#line 6341 "Gmsh.y" /* yacc.c:1645  */
     {
       for(int i = 0; i < List_Nbr((yyvsp[0].l)); i++){
 	char* c;
@@ -13884,11 +13885,11 @@ yyreduce:
       }
       List_Delete((yyvsp[0].l));
     }
-#line 13888 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13889 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 604:
-#line 6352 "Gmsh.y" /* yacc.c:1645  */
+#line 6353 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = List_Create(20, 20, sizeof(char *));
       if(!gmsh_yystringsymbols.count((yyvsp[-2].c)))
@@ -13902,27 +13903,27 @@ yyreduce:
       }
       Free((yyvsp[-2].c));
     }
-#line 13906 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13907 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 605:
-#line 6366 "Gmsh.y" /* yacc.c:1645  */
+#line 6367 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = treat_Struct_FullName_dot_tSTRING_ListOfString(NULL, (yyvsp[-4].c), (yyvsp[-2].c));
     }
-#line 13914 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13915 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 606:
-#line 6370 "Gmsh.y" /* yacc.c:1645  */
+#line 6371 "Gmsh.y" /* yacc.c:1645  */
     {
       (yyval.l) = treat_Struct_FullName_dot_tSTRING_ListOfString((yyvsp[-6].c), (yyvsp[-4].c), (yyvsp[-2].c));
     }
-#line 13922 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13923 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 607:
-#line 6377 "Gmsh.y" /* yacc.c:1645  */
+#line 6378 "Gmsh.y" /* yacc.c:1645  */
     {
       char tmpstr[256];
       sprintf(tmpstr, "_%d", (int)(yyvsp[-1].d));
@@ -13930,11 +13931,11 @@ yyreduce:
       strcpy((yyval.c), (yyvsp[-4].c)); strcat((yyval.c), tmpstr);
       Free((yyvsp[-4].c));
     }
-#line 13934 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13935 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 608:
-#line 6385 "Gmsh.y" /* yacc.c:1645  */
+#line 6386 "Gmsh.y" /* yacc.c:1645  */
     {
       char tmpstr[256];
       sprintf(tmpstr, "_%d", (int)(yyvsp[-1].d));
@@ -13942,11 +13943,11 @@ yyreduce:
       strcpy((yyval.c), (yyvsp[-4].c)) ; strcat((yyval.c), tmpstr) ;
       Free((yyvsp[-4].c));
     }
-#line 13946 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13947 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 609:
-#line 6393 "Gmsh.y" /* yacc.c:1645  */
+#line 6394 "Gmsh.y" /* yacc.c:1645  */
     {
       char tmpstr[256];
       sprintf(tmpstr, "_%d", (int)(yyvsp[-1].d));
@@ -13954,29 +13955,29 @@ yyreduce:
       strcpy((yyval.c), (yyvsp[-5].c)); strcat((yyval.c), tmpstr);
       Free((yyvsp[-5].c));
     }
-#line 13958 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13959 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 610:
-#line 6404 "Gmsh.y" /* yacc.c:1645  */
+#line 6405 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.c) = (yyvsp[0].c); }
-#line 13964 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13965 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 611:
-#line 6406 "Gmsh.y" /* yacc.c:1645  */
+#line 6407 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.c) = (yyvsp[0].c); }
-#line 13970 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13971 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
   case 612:
-#line 6409 "Gmsh.y" /* yacc.c:1645  */
+#line 6410 "Gmsh.y" /* yacc.c:1645  */
     { (yyval.c) = (yyvsp[-1].c); }
-#line 13976 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13977 "Gmsh.tab.cpp" /* yacc.c:1645  */
     break;
 
 
-#line 13980 "Gmsh.tab.cpp" /* yacc.c:1645  */
+#line 13981 "Gmsh.tab.cpp" /* yacc.c:1645  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -14203,7 +14204,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 6412 "Gmsh.y" /* yacc.c:1903  */
+#line 6413 "Gmsh.y" /* yacc.c:1903  */
 
 
 void assignVariable(const std::string &name, int index, int assignType,
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index ee8177a12e..fd1cc0c576 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -3124,6 +3124,7 @@ Colorify :
 SetPartition :
     tSetPartition FExpr '{' ListOfShapes '}'
     {
+      yymsg(2, "'SetPartition' command is deprecated");
       std::vector<std::pair<int, int> > dimTags;
       ListOfShapes2VectorOfPairs($4, dimTags);
       for(std::size_t i = 0; i < dimTags.size(); i++){
-- 
GitLab