diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index bb7f1a065aa037483d886c0bf65e66df7f98a034..9624b005b84b03d139c2e4a869409ca6d3c42eb5 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -428,7 +428,7 @@ typedef union YYSTYPE
   Shape s;
   List_T *l;
 }
-/* Line 187 of yacc.c.  */
+/* Line 193 of yacc.c.  */
 #line 433 "Gmsh.tab.cpp"
 	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -492,7 +492,7 @@ typedef short int yytype_int16;
 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
 
 #ifndef YY_
-# if YYENABLE_NLS
+# if defined YYENABLE_NLS && YYENABLE_NLS
 #  if ENABLE_NLS
 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -853,7 +853,7 @@ static const yytype_int16 yyrhs[] =
       49,   134,   209,   135,     7,   141,   211,   140,   217,   142,
        6,    -1,    71,     4,   134,   209,   135,     7,   214,     6,
       -1,    71,     4,   141,   209,   142,     6,    -1,    71,     4,
-     134,   209,   135,     7,   141,   211,   140,   211,   140,   214,
+     134,   209,   135,     7,   141,   211,   140,   211,   140,   217,
      142,     6,    -1,    76,   141,   179,   142,    -1,    76,   101,
      136,   209,   137,     6,    -1,    76,     4,   136,   209,   137,
        6,    -1,    76,     4,     6,    -1,    76,     4,     4,     6,
@@ -1357,132 +1357,132 @@ static const yytype_int16 yypact[] =
     2955,  3025,  3025,   543,  2955,  3025,  3025,  1856,   544,   506,
      549,   564,  1723,  1723,  1723,   577, -1082, -1082, -1082, -1082,
      578,   628,   644,   648,   302,   302,   302,  3025,  3025,   -59,
-   -1082,    65,   302,   531,   651,   652,  2822,   346,    61,   663,
-     665,  1723,  1856,   666,    24,   667, -1082,   795, -1082,   661,
-     668,   669,   801,  3025,  3025,  3025,   670,  3025,   671,   713,
-    3025,  3025, -1082,  3025,   805, -1082,   807, -1082,   808, -1082,
-     679,  3025,   812,   676, -1082, -1082, -1082,   814,  3025,  3025,
+   -1082,    65,   302,   531,   651,   652,  2822,   346,    61,   666,
+     667,  1723,  1856,   668,    24,   669, -1082,   797, -1082,   663,
+     671,   673,   802,  3025,  3025,  3025,   674,  3025,   670,   717,
+    3025,  3025, -1082,  3025,   808, -1082,   809, -1082,   810, -1082,
+     681,  3025,   814,   679, -1082, -1082, -1082,   816,  3025,  3025,
     3025,  3025,  3025,  3025,  3025,  3025,  3025,  3025,  3025,  3025,
     3025,  3025,  3025,  3025,  3025,  3025,  3025,  3025,  3025,  3025,
     3025,  3025,  3025,  3025,  3025,  3025,  3025,  3025,  3025,  3025,
     3025,  3025,  3025,  3025,  3025,  3025,  3025,  3025,  3025,  3025,
-     452,   452,   452,   452,  3025,   813,   538,   689,   689,   689,
-    5730,    51,  2955,  4994,   174,   686,   818,   690,   687, -1082,
-     685,  3613,  2352, -1082, -1082,  3025,  3025,  3025,  3025,  3025,
+     452,   452,   452,   452,  3025,   819,   538,   692,   692,   692,
+    5730,    51,  2955,  4994,   174,   688,   820,   710,   687, -1082,
+     706,  3613,  2352, -1082, -1082,  3025,  3025,  3025,  3025,  3025,
     3025,  3025,  3025,  3025,  3025,  3025,  3025,  3025,  3025,  3025,
-   -1082, -1082,  2453,   179,  2886,  5751,   513,   705,  2955, -1082,
+   -1082, -1082,  2453,   179,  2886,  5751,   513,   708,  2955, -1082,
    -1082,  3235, -1082,   168,  5772,  5793,  3025,  5814,   376,  5835,
-    5856,  3025,   540,  5877,  5898,  1989,  1523,  3254,   841, -1082,
-    3025,  3025,  3025,  3025, -1082, -1082,   842,   843,   843,  3025,
-     719,   720,   723,   724,  3025,  3025,  3025,   725,   289, -1082,
+    5856,  3025,   540,  5877,  5898,  1989,  1523,  3254,   843, -1082,
+    3025,  3025,  3025,  3025, -1082, -1082,   846,   847,   847,  3025,
+     723,   724,   725,   726,  3025,  3025,  3025,   728,   289, -1082,
    -1082,  4318,  4344,   302,   302,    29,    29,   360,  3025,  3025,
     3025,  2822,  2822,  3025,  3613,   382, -1082,  3025,  3025,  3025,
-    3025,   852,   854,  3025,   857, -1082,  3025,  3025,  1034, -1082,
-    2955,  3025,  3025, -1082,  5919,  5940,  5961,   771,  4370, -1082,
-     726,  3273,  5982,  5017, -1082, -1082,  1178, -1082,  1234,  3025,
+    3025,   854,   857,  3025,   859, -1082,  3025,  3025,  1034, -1082,
+    2955,  3025,  3025, -1082,  5919,  5940,  5961,   773,  4370, -1082,
+     727,  3273,  5982,  5017, -1082, -1082,  1178, -1082,  1234,  3025,
     5040,   -21,  3025,     5, -1082,  6003,  5063,  6024,  5086,  6045,
     5109,  6066,  5132,  6087,  5155,  6108,  5178,  6129,  5201,  6150,
     5224,  6171,  5247,  6192,  5270,  6213,  5293,  4396,  4422,  6234,
     5316,  6255,  5339,  6276,  5362,  6297,  5385,  6318,  5408,  6339,
     5431,  4448,  4474,  4500,  4526,  4552,  4578,   561,   211, -1082,
-     728,   730,   731,  2620,   729,  3025, -1082,  1856,  1856,   562,
-     306,   416,  3025,   864,   867,    15,   738, -1082,    77,   138,
-      -5,   136, -1082, -1082,  3298,  1029,  1130,   567,   567,   582,
-     582,   582,   582,   147,   147,   689,   689,   689,   689, -1082,
-       8,  2955,  3025,   869,  2787,  3025,   689, -1082,  3025,  2955,
-    2955,   781,   871,   872,  6360,   873,   786,   877,   878,  6381,
-     806,   896,   897,  2955, -1082,   576,  2122,  3025,  6402,  3367,
-    6423,  6444,  3025,  1856,   902,   901,  6465,  3082,  3082,  3082,
-    3082,  6486,  6507,  6528,   770,   302,  3025,  3025, -1082, -1082,
-     768,   769,  3025,  4604,  4630,  4656,  4292,    26,   302,  1894,
-    6549,  3648,  6570,  6591,  3025,   906,  3025,  6612, -1082,  5454,
-    5477, -1082,   579,  5500,  5523,   908,   910,   911,   775,  3025,
+     729,   732,   735,  2620,   731,  3025, -1082,  1856,  1856,   562,
+     306,   416,  3025,   869,   872,    15,   740, -1082,    77,   138,
+      -5,   136, -1082, -1082,  3298,  1029,  1314,   567,   567,   582,
+     582,   582,   582,   147,   147,   692,   692,   692,   692, -1082,
+       8,  2955,  3025,   871,  2787,  3025,   692, -1082,  3025,  2955,
+    2955,   783,   873,   875,  6360,   877,   789,   895,   896,  6381,
+     811,   897,   899,  2955, -1082,   576,  2122,  3025,  6402,  3367,
+    6423,  6444,  3025,  1856,   904,   905,  6465,  3082,  3082,  3082,
+    3082,  6486,  6507,  6528,   774,   302,  3025,  3025, -1082, -1082,
+     768,   771,  3025,  4604,  4630,  4656,  4292,    26,   302,  1894,
+    6549,  3648,  6570,  6591,  3025,   909,  3025,  6612, -1082,  5454,
+    5477, -1082,   579,  5500,  5523,   910,   911,   912,   782,  3025,
     2027,  3025,  3025, -1082,    28, -1082, -1082,  5546,    37, -1082,
-    3676, -1082,   785,   788,   779, -1082,   917, -1082, -1082, -1082,
+    3676, -1082,   788,   790,   784, -1082,   917, -1082, -1082, -1082,
    -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082,
    -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082,
    -1082, -1082, -1082, -1082,  3025,  3025, -1082, -1082, -1082, -1082,
    -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082,  3025,  3025,
-    3025,  3025,  3025,  3025,  3025,   920, -1082,  2955,   452, -1082,
-   -1082, -1082,  3025,  5569,   919,   923,   793, -1082,    25,  3025,
-     925,   927,  2743, -1082,   928,   798,    13,   930, -1082,  2955,
-    2955,  2955,  2955,  3025, -1082,   817,   452,   235,  4682,   302,
-   -1082,  2955,  3704,  3317,   689, -1082,  3235, -1082,   888,  1856,
-    1856,   934,  1856,   650,  1856,  1856,   935,   890,  1856,  1856,
-     584, -1082,  2955,  2765,   937,   938,   939,   940,  1701, -1082,
-   -1082,   942, -1082,   943,   819,  6843, -1082,   820,   821,   822,
-     945,   946,   951,   955,   387,  4708,  4734, -1082, -1082,  3732,
-     302,   302,   302,   957,   824,   815,   -41, -1082,   389, -1082,
-      26,   959,   963,   965,   966,  6843, -1082,  3054,   829,   969,
-     970,   926,   972,   973,  1856,  1856,  1856,   976,  4760, -1082,
-    3337,  1211,   977,   979,   978,   981, -1082,   982, -1082,   859,
-    3025,  3025,  1856,   850, -1082,  6633,  5592,  6654,  5615,  6675,
-    5638,  6696,  5661,  5684, -1082,   261,   860,  6717,    82, -1082,
-   -1082,    71,   210,   856,   989,  3111, -1082, -1082, -1082,    13,
+    3025,  3025,  3025,  3025,  3025,   925, -1082,  2955,   452, -1082,
+   -1082, -1082,  3025,  5569,   924,   927,   794, -1082,    25,  3025,
+     928,   929,  2743, -1082,   931,   800,    13,   933, -1082,  2955,
+    2955,  2955,  2955,  3025, -1082,   821,   452,   235,  4682,   302,
+   -1082,  2955,  3704,  3317,   692, -1082,  3235, -1082,   890,  1856,
+    1856,   936,  1856,   650,  1856,  1856,   937,   892,  1856,  1856,
+     584, -1082,  2955,  2765,   939,   940,   941,   942,  1701, -1082,
+   -1082,   944, -1082,   945,   818,  6843, -1082,   822,   823,   824,
+     947,   948,   949,   959,   387,  4708,  4734, -1082, -1082,  3732,
+     302,   302,   302,   960,   828,   831,   -41, -1082,   389, -1082,
+      26,   963,   966,   968,   969,  6843, -1082,  3054,   832,   971,
+     972,   930,   973,   974,  1856,  1856,  1856,   979,  4760, -1082,
+    3337,  1211,   980,   981,   982,   987, -1082,   988, -1082,   861,
+    3025,  3025,  1856,   852, -1082,  6633,  5592,  6654,  5615,  6675,
+    5638,  6696,  5661,  5684, -1082,   261,   862,  6717,    82, -1082,
+   -1082,    71,   210,   858,   992,  3111, -1082, -1082, -1082,    13,
     3025, -1082,   591, -1082,   592,   595,   596,   601,  6843, -1082,
-     991,     9,  3025,    49,   602, -1082,  3025,   858,   944,   944,
-    1856,   994,   862,   863,   999,  1000,  1856,   868,  1002,  1004,
-   -1082,   605, -1082,  1006,  1856,  1856,  1856,  1008,  1007, -1082,
-    1856,  1009,  1010,  1011,  1012,  1856,  1856,  1856,   559,  3025,
-    3025,  3025,   879,   -56,    54,   337, -1082,  1856,  3025, -1082,
-   -1082,  2822,   -33,  2255, -1082,   880,  2388, -1082,  2955, -1082,
-   -1082,   882, -1082, -1082,  1019,  1020,   922, -1082,  3025,  3025,
-    3025, -1082,  1021,  1022, -1082,   -21, -1082,  3025,  4786,  4812,
+     994,     9,  3025,    49,   602, -1082,  3025,   863,   950,   950,
+    1856,   996,   864,   865,   997,  1003,  1856,   870,  1004,  1006,
+   -1082,   605, -1082,  1008,  1856,  1856,  1856,  1010,  1011, -1082,
+    1856,  1009,  1012,  1013,  1014,  1856,  1856,  1856,   559,  3025,
+    3025,  3025,   882,   -56,    54,   337, -1082,  1856,  3025, -1082,
+   -1082,  2822,   -33,  2255, -1082,   884,  2388, -1082,  2955, -1082,
+   -1082,   885, -1082, -1082,  1021,  1022,   926, -1082,  3025,  3025,
+    3025, -1082,  1023,  1024, -1082,   -21, -1082,  3025,  4786,  4812,
      606, -1082,  3025, -1082, -1082, -1082, -1082, -1082, -1082, -1082,
-   -1082,   892, -1082, -1082, -1082,  1856,   416,  3025,  1025,  1024,
-      15, -1082,  1027,  5707,    13, -1082,  1028,  1030,  1032,  1033,
-   -1082, -1082,   452,  4838, -1082,   903,  6843,  3025,   302,  1036,
-    1037,  1038, -1082,  3025,  3025, -1082, -1082,  1039,  3025, -1082,
-   -1082, -1082,  1043,  1045,  1046,   953,  3025, -1082,  1050,  1856,
-    1856,  1856,  1856,  1051,   745,  1052, -1082,  3082,  3760,  6738,
-    3564,    29,   302,  1053,   302,  1054,   302,  1055,   714,   924,
-    6759,  3788,   399, -1082,  1383,  1056,   302,  1383,  1060,   612,
+   -1082,   898, -1082, -1082, -1082,  1856,   416,  3025,  1027,  1026,
+      15, -1082,  1028,  5707,    13, -1082,  1032,  1033,  1036,  1037,
+   -1082, -1082,   452,  4838, -1082,   903,  6843,  3025,   302,  1038,
+    1039,  1042, -1082,  3025,  3025, -1082, -1082,  1043,  3025, -1082,
+   -1082, -1082,  1046,  1050,  1051,   956,  3025, -1082,  1052,  1856,
+    1856,  1856,  1856,  1053,   745,  1054, -1082,  3082,  3760,  6738,
+    3564,    29,   302,  1055,   302,  1056,   302,  1058,   714,   934,
+    6759,  3788,   399, -1082,  1383,  1060,   302,  1383,  1061,   612,
     3025, -1082, -1082,  1856,  3592,   772,  6780, -1082,  2654, -1082,
-     300,  6843,  3025,  3025,  1856,   929,   613,  6843,  1063,  1065,
-    1067,  3130, -1082,  1062,  1068, -1082,   956, -1082, -1082, -1082,
-   -1082, -1082,  1069,  3025, -1082,  3816,   496, -1082, -1082, -1082,
-    3844,  3872, -1082,  3900,  1071, -1082, -1082,  1040,  1072,  6843,
-   -1082,  1092,  1093,  1094,  1095, -1082,   961, -1082, -1082,  3149,
-    1097,   967, -1082,  3025, -1082,   962,   411, -1082,   971,   413,
-   -1082,   974,   430, -1082,   975,  1100,  1856,  1103,   984,  3025,
-    2521,   432, -1082,   437,   439, -1082,  1107,  3928,  1023,  3025,
-   -1082,  3025, -1082, -1082,  2955,  3177,  1113, -1082,  3025,  4864,
+     300,  6843,  3025,  3025,  1856,   932,   613,  6843,  1065,  1064,
+    1069,  3130, -1082,  1071,  1070, -1082,   951, -1082, -1082, -1082,
+   -1082, -1082,  1088,  3025, -1082,  3816,   496, -1082, -1082, -1082,
+    3844,  3872, -1082,  3900,  1066, -1082, -1082,  1049,  1093,  6843,
+   -1082,  1094,  1095,  1096,  1097, -1082,   965, -1082, -1082,  3149,
+    1098,   967, -1082,  3025, -1082,   970,   411, -1082,   975,   413,
+   -1082,   978,   430, -1082,   984,  1104,  1856,  1106,   986,  3025,
+    2521,   432, -1082,   437,   439, -1082,  1108,  3928,  1040,  3025,
+   -1082,  3025, -1082, -1082,  2955,  3177,  1109, -1082,  3025,  4864,
     4890, -1082,  1856,  3025,  1114, -1082, -1082, -1082, -1082,    13,
-   -1082,  1041, -1082,  4916,  1120,  1121,  1125,  1127,  1128,   996,
+   -1082,  1041, -1082,  4916,  1127,  1128,  1131,  1132,  1133,   999,
    -1082, -1082, -1082, -1082, -1082,  1856, -1082, -1082,    29,  3620,
    -1082,  2822,    26,  2822,    26,  2822,    26, -1082,   616,  1856,
    -1082,  3956,   302,  2955,   302, -1082, -1082,  3025,  3984,  4012,
-     617, -1082, -1082,   997,  6843,  3025,  3025,   621,  6843, -1082,
-    1133, -1082,  3025, -1082, -1082, -1082, -1082, -1082,  3025,   626,
-     998,  3025, -1082,  4040,   465,   -28,  4068,   482,   -20,  4096,
-     485,   -16,  1856,  1135,  1079,  2160,  1003,   487,   627,   499,
-    3196, -1082, -1082,  1153,  3025,  6801,  4942,    20, -1082,  4968,
-    4124,  1154, -1082,  4152,  1155,  3025,  1157,  1158,  3025,  1159,
-    1160,  3025,  1161,  1031, -1082,  3025, -1082,    26, -1082,  1856,
-    1163,  2521, -1082, -1082,   630, -1082,  3025, -1082,  1856,  3025,
-   -1082, -1082, -1082, -1082,  1042,  4180, -1082, -1082,  1047,  4208,
-   -1082, -1082,  1057,  4236, -1082,  1164,  3216,   236,  2293,  1044,
-   -1082,   518,   631,  1165,  1058,  6822,   634,  4264,    26,  1166,
-      26,  1168,    26,  1169, -1082, -1082, -1082, -1082,    26,  1172,
-    2955,  1174, -1082,   452, -1082,  1061,  1181,   253, -1082,  1064,
-     265, -1082,  1074,   281, -1082,  1077,   309, -1082,   637, -1082,
-     642, -1082,  1081,  1856, -1082,  1187,    26,  1191,    26,  1195,
-      26, -1082,  1202,   452,  1203,   452,   647, -1082,   318, -1082,
-     351, -1082,   366, -1082, -1082, -1082,   656, -1082,  1204,  1207,
-    1227,  1229,   452,  1232, -1082, -1082, -1082, -1082, -1082, -1082
+     617, -1082, -1082,  1000,  6843,  3025,  3025,   621,  6843, -1082,
+    1137, -1082,  3025, -1082, -1082, -1082, -1082, -1082,  3025,   626,
+    1002,  3025, -1082,  4040,   465,   -28,  4068,   482,   -20,  4096,
+     485,   -16,  1856,  1153,  1099,  2160,  1019,   487,   627,   499,
+    3196, -1082, -1082,  1155,  3025,  6801,  4942,    20, -1082,  4968,
+    4124,  1158, -1082,  4152,  1159,  3025,  1160,  1161,  3025,  1163,
+    1164,  3025,  1165,  1030, -1082,  3025, -1082,    26, -1082,  2955,
+    1167,  2521, -1082, -1082,   630, -1082,  3025, -1082,  1856,  3025,
+   -1082, -1082, -1082, -1082,  1045,  4180, -1082, -1082,  1047,  4208,
+   -1082, -1082,  1057,  4236, -1082,  1168,  3216,   236,  2293,   631,
+   -1082,   518,   634,  1169,  1067,  6822,   637,  4264,    26,  1172,
+      26,  1174,    26,  1177, -1082, -1082, -1082, -1082,    26,  1181,
+    2955,  1191, -1082,   452, -1082,  1068,  1193,   253, -1082,  1072,
+     265, -1082,  1074,   281, -1082,  1077,   309, -1082,   642, -1082,
+     647, -1082,  1081,  1856, -1082,  1195,    26,  1196,    26,  1199,
+      26, -1082,  1204,   452,  1227,   452,   656, -1082,   318, -1082,
+     351, -1082,   366, -1082, -1082, -1082,   657, -1082,  1229,  1232,
+    1236,  1237,   452,  1239, -1082, -1082, -1082, -1082, -1082, -1082
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-   -1082, -1082, -1082, -1082,   373, -1082, -1082, -1082, -1082,    68,
+   -1082, -1082, -1082, -1082,   373, -1082, -1082, -1082, -1082,    74,
    -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082,
-   -1082, -1082,  -282,    -2, -1082,   -75, -1082,   424,  1242, -1082,
+   -1082, -1082,  -282,    -2, -1082,   -75, -1082,   431,  1246, -1082,
    -1082, -1082, -1082,     3,  -358,  -183, -1082, -1082, -1082, -1082,
-   -1082, -1082,  1257, -1082, -1082, -1082, -1082, -1082, -1082, -1082,
+   -1082, -1082,  1248, -1082, -1082, -1082, -1082, -1082, -1082, -1082,
    -1082, -1082, -1082, -1082, -1082, -1082,  -457,  -675, -1082, -1082,
-     913, -1082, -1082, -1082, -1082,    -6, -1082,   230, -1082, -1081,
-     522,  -120,    58,   -73,  -648,   352, -1082,  -261,    10
+     906, -1082, -1082, -1082, -1082,    -6, -1082,   230, -1082, -1081,
+     522,  -120,    58,   -73,  -648,   343, -1082,  -261,    10
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -1569,56 +1569,56 @@ static const yytype_int16 yytable[] =
     1227,   510,   510,   919,   925,   510,   994,   941,   995,  1036,
     1150,  1037,   510,  1083,  1066,  1084,  1162,   510,  1163,  1173,
      322,   994,   355,  1177,   888,   889,   994,   510,  1181,  1200,
-    1083,   510,  1233,  1251,   994,   724,  1255,   510,   356,  1282,
-    1071,  1257,  1283,  1260,  1284,  1263,   766,   994,   738,  1298,
-     908,  1266,   369,   370,   913,   979,  1302,   379,  1303,   380,
-     383,   389,   390,   387,   391,   392,   923,   393,   397,   400,
-     926,   404,   399,   405,   407,   409,   411,   412,   464,  1288,
-     414,  1290,   309,  1292,   474,   475,   476,   477,   130,   295,
+    1083,   510,  1233,  1249,   510,   724,  1251,   994,   356,  1255,
+    1071,  1257,   510,  1260,  1282,  1263,   766,  1283,   738,  1284,
+     908,  1266,   369,   370,   913,   979,   994,  1302,  1298,  1303,
+     379,   380,   383,   389,   390,   387,   923,   391,   393,   392,
+     926,   399,   397,   400,   404,   405,   407,   409,   411,  1288,
+     412,  1290,   414,  1292,   464,   309,   474,   475,   130,   295,
      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
-     526,   307,   308,   958,   959,   960,   505,   309,   527,   532,
-     533,   968,   970,   537,   538,   971,  1055,   539,   540,   564,
-     544,   566,   321,   568,   578,   649,   650,   581,   648,   652,
-     663,   664,   984,   985,   986,   668,   679,   688,   689,   690,
-     692,   991,   693,   989,   694,   695,   997,   295,   296,   297,
+     526,   307,   308,   958,   959,   960,   476,   309,   477,   505,
+     527,   968,   970,   532,   533,   971,  1055,   537,   538,   539,
+     540,   564,   321,   544,   566,   568,   578,   649,   581,   648,
+     650,   652,   984,   985,   986,   663,   664,   668,   679,   688,
+     689,   991,   690,   989,   692,   693,   997,   295,   296,   297,
      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
-     308,  1001,   697,   698,   699,   309,   710,   712,   723,   813,
-     727,   728,   746,   757,  1072,   754,  1000,   755,   756,   770,
-     772,  1015,   771,   774,   784,   789,   322,  1020,  1021,   790,
-     791,   796,  1023,   797,   800,   799,   803,  1165,   809,   817,
-    1029,   820,   826,   827,   833,   834,   835,   836,   839,   858,
-     840,  1039,   845,   846,   841,   842,   843,   844,   847,   848,
-     853,   854,   855,   856,   289,   857,   863,  1040,   321,   864,
-     868,   321,   865,   866,  1067,   869,   870,   871,   872,   873,
-     877,   882,  1075,   883,   884,   885,  1079,  1080,   886,   654,
-     655,   892,  1271,   887,   909,   903,   910,   920,  1076,   927,
-     932,  1130,   928,   933,   934,   935,   936,  1093,   939,   938,
-     940,   942,   946,   947,   983,  1228,   949,   950,   951,   952,
-     961,   976,  1294,   980,  1297,   981,   982,   987,  1003,   988,
-     998,  1002,   322,  1005,  1008,   322,  1009,  1109,  1010,  1011,
-    1014,  1308,  1017,  1018,  1019,  1022,     7,     8,  1024,  1027,
-    1168,  1025,  1026,  1121,   506,   709,  1030,  1035,  1038,  1047,
-    1050,  1053,  1062,  1128,  1056,  1129,  1065,  1085,   321,  1089,
-    1082,  1086,  1134,  1087,  1090,  1092,  1098,  1138,  1100,   478,
-      15,    16,   479,    18,    19,   480,    21,   481,    23,  1099,
-      24,   972,    26,    27,  1091,    29,    30,    31,  1101,  1102,
-    1103,  1104,  1105,  1107,  1110,  1153,  1117,  1156,  1108,  1159,
-    1119,   289,  1112,  1125,  1127,  1114,  1116,   321,   507,  1132,
-    1139,  1170,    48,    49,    50,  1120,  1143,  1144,  1232,  1175,
-    1176,  1145,   322,  1146,  1147,  1141,  1179,  1148,  1174,  1178,
-    1182,  1194,  1180,  1195,  1198,  1183,   297,   298,   299,   300,
-     301,   302,   303,   304,   305,   306,   307,   308,  1016,  1203,
-    1211,  1213,   309,  1216,  1217,  1220,  1221,  1224,   997,  1230,
-    1244,  1252,  1258,  1225,  1261,  1264,   571,  1268,  1267,  1215,
-    1269,   322,  1219,  1238,   922,  1223,  1249,  1274,  1240,  1226,
-       7,     8,  1046,  1287,  1049,   321,  1052,  1289,  1242,  1253,
-    1235,  1291,  1273,  1237,  1061,  1276,  1063,  1064,  1293,  1295,
-    1304,   818,   819,  1305,   821,  1278,   824,   825,  1280,   880,
+     308,  1001,   694,   695,   698,   309,   699,   697,   710,   813,
+     727,   712,   723,   728,  1072,   746,  1000,   754,   755,   756,
+     757,  1015,   770,   774,   771,   772,   322,  1020,  1021,   784,
+     789,   791,  1023,   790,   796,   797,   800,  1165,   799,   803,
+    1029,   817,   809,   820,   826,   827,   833,   834,   835,   836,
+     839,  1039,   840,   841,   845,   846,   847,   842,   843,   844,
+     853,   854,   855,   848,   289,   858,   856,  1040,   321,   857,
+     863,   321,   864,   868,  1067,   865,   866,   869,   870,   872,
+     873,   871,  1075,   877,   882,   883,  1079,  1080,   884,   654,
+     655,   885,  1271,   892,   886,   887,   909,   903,  1076,   910,
+     920,  1130,   932,   935,   927,   933,   934,  1093,   928,   936,
+     939,   938,   940,   942,   946,  1228,   949,   947,   983,   950,
+     951,   952,  1294,   961,  1297,   976,   980,   981,   982,   987,
+    1003,   988,   322,  1002,  1005,   322,   998,  1109,  1008,  1009,
+    1014,  1308,  1010,  1011,  1017,  1018,     7,     8,  1019,  1022,
+    1168,  1024,  1027,  1121,   506,   709,  1025,  1026,  1030,  1035,
+    1038,  1047,  1050,  1128,  1053,  1129,  1062,  1065,   321,  1085,
+    1086,  1098,  1134,  1082,  1056,  1087,  1090,  1138,  1089,   478,
+      15,    16,   479,    18,    19,   480,    21,   481,    23,  1091,
+      24,   972,    26,    27,  1092,    29,    30,    31,  1099,  1100,
+    1101,  1102,  1103,  1104,  1107,  1153,  1105,  1156,  1108,  1159,
+    1117,   289,  1110,  1119,  1125,  1132,  1112,   321,   507,  1114,
+    1139,  1170,    48,    49,    50,  1116,  1229,  1120,  1232,  1175,
+    1176,  1127,   322,  1143,  1144,  1141,  1179,  1145,  1146,  1147,
+    1148,  1174,  1180,  1178,  1182,  1183,   297,   298,   299,   300,
+     301,   302,   303,   304,   305,   306,   307,   308,  1016,  1194,
+    1198,  1203,   309,  1195,  1211,  1213,  1216,  1217,   997,  1220,
+    1221,  1224,  1225,  1230,  1244,  1252,   571,  1268,  1258,  1215,
+    1261,   322,  1219,  1264,   922,  1223,  1238,  1267,  1240,  1226,
+       7,     8,  1046,   321,  1049,   321,  1052,  1269,  1242,  1274,
+    1235,  1287,  1289,  1237,  1061,  1291,  1063,  1064,  1253,  1273,
+    1293,   818,   819,  1276,   821,  1278,   824,   825,  1280,   880,
      828,   829,  1285,   478,    15,    16,   479,    18,    19,   480,
-      21,   481,    23,  1306,    24,  1307,    26,    27,  1309,    29,
-      30,    31,  1204,   930,   321,    67,     7,     8,   298,   299,
-     300,   301,   302,   303,   304,   305,   306,   307,   308,   322,
-      75,   535,  1004,   309,     0,     0,    48,    49,    50,     0,
+      21,   481,    23,  1295,    24,  1304,    26,    27,  1305,    29,
+      30,    31,  1306,  1307,   321,  1309,     7,     8,  1204,    67,
+     930,    75,     0,  1004,   535,     0,     0,   322,     0,   322,
+       0,     0,     0,     0,     0,     0,    48,    49,    50,     0,
        0,     0,     0,     0,     0,     0,   874,   875,   876,   478,
       15,    16,   479,    18,    19,   480,    21,   481,    23,     0,
       24,     0,    26,    27,     0,    29,    30,    31,     0,     0,
@@ -1635,8 +1635,8 @@ static const yytype_int16 yytable[] =
       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
       99,   100,   101,   102,   103,   104,   105,   106,     0,     0,
        0,     0,     0,     0,     0,     0,     0,   999,   317,     0,
-       0,  1231,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
+       0,  1231,   298,   299,   300,   301,   302,   303,   304,   305,
+     306,   307,   308,     0,     0,     0,     0,   309,     0,    33,
       34,    35,    36,    37,     0,     0,     0,     0,    41,     0,
        0,    44,     0,     0,     0,     0,     0,     0,     0,     0,
        0,  1031,  1032,  1033,  1034,     0,     0,     0,     0,     0,
@@ -1664,7 +1664,7 @@ static const yytype_int16 yytable[] =
       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
      101,   102,   103,   104,   105,   106,     0,   107,   108,   109,
      110,     0,     0,   111,     0,     0,     0,     0,     0,     0,
-       0,  1229,     0,     0,     0,     0,    79,   316,   344,     0,
+       0,     0,     0,     0,     0,     0,    79,   316,   344,     0,
        0,     0,    83,    84,    85,     0,     0,    86,    87,    88,
       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
       99,   100,   101,   102,   103,   104,   105,   106,     0,     0,
@@ -2273,54 +2273,54 @@ static const yytype_int16 yycheck[] =
      702,   140,   134,   142,   770,   771,   140,   140,   142,   142,
      140,   140,   142,   142,   140,   545,   142,   140,   134,   142,
        8,  1238,   140,  1240,   142,  1242,   788,   140,   558,   142,
-     792,  1248,   141,   141,   800,   868,   140,   134,   142,   134,
-     134,     6,   141,   136,   136,   136,   812,     6,   138,    96,
-     816,     6,   141,     6,     6,   136,     4,   141,     5,  1276,
-       6,  1278,   133,  1280,   138,     7,   136,   142,   141,   115,
+     792,  1248,   141,   141,   800,   868,   140,   140,   142,   142,
+     134,   134,   134,     6,   141,   136,   812,   136,     6,   136,
+     816,   141,   138,    96,     6,     6,     6,   136,     4,  1276,
+     141,  1278,     6,  1280,     5,   133,   138,     7,   141,   115,
      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
-     126,   127,   128,   849,   850,   851,   141,   133,     7,     7,
-       7,   857,   858,   134,   134,   861,   142,   134,   134,     7,
-     135,     7,   868,     6,    93,   135,   135,   141,   140,   140,
-       6,     4,   878,   879,   880,   137,     7,    96,     7,     7,
-       7,   887,    96,   885,     7,     7,   892,   115,   116,   117,
+     126,   127,   128,   849,   850,   851,   136,   133,   142,   141,
+       7,   857,   858,     7,     7,   861,   142,   134,   134,   134,
+     134,     7,   868,   135,     7,     6,    93,   135,   141,   140,
+     135,   140,   878,   879,   880,     6,     4,   137,     7,    96,
+       7,   887,     7,   885,     7,    96,   892,   115,   116,   117,
      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
-     128,   907,    96,     7,     7,   133,     4,     6,   138,   679,
-     142,   142,     6,   138,   142,     7,   906,     7,     7,   134,
-     141,   927,   134,     6,     4,     6,   868,   933,   934,     6,
-     137,     6,   938,     6,   136,     7,     6,  1120,   121,    51,
-     946,     7,     7,    53,     7,     7,     7,     7,     6,   134,
-       7,   957,     7,     7,   135,   135,   135,   135,     7,     4,
-     730,   731,   732,     6,   961,   141,     7,   957,   974,     6,
-     141,   977,     7,     7,   980,     6,     6,    51,     6,     6,
-       4,     4,   988,     4,     6,     4,   992,   993,     6,   467,
-     468,   141,  1253,   134,   138,   135,     7,     6,   988,   141,
-       6,  1074,    58,   141,   141,     6,     6,  1013,     6,   141,
-       6,     5,     4,     6,    92,  1198,     7,     7,     7,     7,
-     141,   141,  1283,   141,  1285,     6,     6,     6,     4,     7,
-     138,     6,   974,     6,     6,   977,     6,  1043,     6,     6,
-     137,  1302,     6,     6,     6,     6,    12,    13,     5,    96,
-    1123,     6,     6,  1059,  1060,   533,     6,     6,     6,     6,
-       6,     6,     6,  1069,   140,  1071,     6,     4,  1074,     7,
-     141,     6,  1078,     6,     6,     6,     5,  1083,     6,    45,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    49,
-      56,   861,    58,    59,   138,    61,    62,    63,     6,     6,
-       6,     6,   141,     6,   142,  1111,     6,  1113,   141,  1115,
-       7,  1108,   141,     6,    91,   141,   141,  1123,  1060,     6,
-       6,  1127,    88,    89,    90,   141,     6,     6,  1201,  1135,
-    1136,     6,  1074,     6,     6,    94,  1142,   141,   141,     6,
-     142,     6,  1148,    64,   141,  1151,   117,   118,   119,   120,
+     128,   907,     7,     7,     7,   133,     7,    96,     4,   679,
+     142,     6,   138,   142,   142,     6,   906,     7,     7,     7,
+     138,   927,   134,     6,   134,   141,   868,   933,   934,     4,
+       6,   137,   938,     6,     6,     6,   136,  1120,     7,     6,
+     946,    51,   121,     7,     7,    53,     7,     7,     7,     7,
+       6,   957,     7,   135,     7,     7,     7,   135,   135,   135,
+     730,   731,   732,     4,   961,   134,     6,   957,   974,   141,
+       7,   977,     6,   141,   980,     7,     7,     6,     6,     6,
+       6,    51,   988,     4,     4,     4,   992,   993,     6,   467,
+     468,     4,  1253,   141,     6,   134,   138,   135,   988,     7,
+       6,  1074,     6,     6,   141,   141,   141,  1013,    58,     6,
+       6,   141,     6,     5,     4,  1198,     7,     6,    92,     7,
+       7,     7,  1283,   141,  1285,   141,   141,     6,     6,     6,
+       4,     7,   974,     6,     6,   977,   138,  1043,     6,     6,
+     137,  1302,     6,     6,     6,     6,    12,    13,     6,     6,
+    1123,     5,    96,  1059,  1060,   533,     6,     6,     6,     6,
+       6,     6,     6,  1069,     6,  1071,     6,     6,  1074,     4,
+       6,     5,  1078,   141,   140,     6,     6,  1083,     7,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,   138,
+      56,   861,    58,    59,     6,    61,    62,    63,    49,     6,
+       6,     6,     6,     6,     6,  1111,   141,  1113,   141,  1115,
+       6,  1108,   142,     7,     6,     6,   141,  1123,  1060,   141,
+       6,  1127,    88,    89,    90,   141,  1199,   141,  1201,  1135,
+    1136,    91,  1074,     6,     6,    94,  1142,     6,     6,     6,
+     141,   141,  1148,     6,   142,  1151,   117,   118,   119,   120,
      121,   122,   123,   124,   125,   126,   127,   128,   928,     6,
-       6,     6,   133,     6,     6,     6,     6,     6,  1174,     6,
-       6,     6,     6,   142,     6,     6,   142,  1250,     6,  1185,
-       6,  1123,  1188,   141,   811,  1191,   142,     6,   141,  1195,
-      12,    13,   962,     6,   964,  1201,   966,     6,   141,   141,
-    1206,     6,   141,  1209,   974,   141,   976,   977,     6,     6,
-       6,   689,   690,     6,   692,   141,   694,   695,   141,     8,
+     141,     6,   133,    64,     6,     6,     6,     6,  1174,     6,
+       6,     6,   142,     6,     6,     6,   142,  1250,     6,  1185,
+       6,  1123,  1188,     6,   811,  1191,   141,     6,   141,  1195,
+      12,    13,   962,  1199,   964,  1201,   966,     6,   141,     6,
+    1206,     6,     6,  1209,   974,     6,   976,   977,   141,   141,
+       6,   689,   690,   141,   692,   141,   694,   695,   141,     8,
      698,   699,   141,    45,    46,    47,    48,    49,    50,    51,
       52,    53,    54,     6,    56,     6,    58,    59,     6,    61,
-      62,    63,  1174,   819,  1250,     3,    12,    13,   118,   119,
-     120,   121,   122,   123,   124,   125,   126,   127,   128,  1201,
-       3,   348,   910,   133,    -1,    -1,    88,    89,    90,    -1,
+      62,    63,     6,     6,  1250,     6,    12,    13,  1174,     3,
+     819,     3,    -1,   910,   348,    -1,    -1,  1199,    -1,  1201,
+      -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,   754,   755,   756,    45,
       46,    47,    48,    49,    50,    51,    52,    53,    54,    -1,
       56,    -1,    58,    59,    -1,    61,    62,    63,    -1,    -1,
@@ -2337,8 +2337,8 @@ static const yytype_int16 yycheck[] =
       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
       27,    28,    29,    30,    31,    32,    33,    34,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,   905,    45,    -1,
-      -1,  1201,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
+      -1,  1201,   118,   119,   120,   121,   122,   123,   124,   125,
+     126,   127,   128,    -1,    -1,    -1,    -1,   133,    -1,    66,
       67,    68,    69,    70,    -1,    -1,    -1,    -1,    75,    -1,
       -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,   949,   950,   951,   952,    -1,    -1,    -1,    -1,    -1,
@@ -2366,7 +2366,7 @@ static const yytype_int16 yycheck[] =
       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
       29,    30,    31,    32,    33,    34,    -1,    36,    37,    38,
       39,    -1,    -1,    42,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,  1199,    -1,    -1,    -1,    -1,     3,     4,     5,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,    -1,
       -1,    -1,     9,    10,    11,    -1,    -1,    14,    15,    16,
       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
       27,    28,    29,    30,    31,    32,    33,    34,    -1,    -1,
@@ -3020,7 +3020,7 @@ static const yytype_uint8 yystos[] =
      142,   140,   142,   214,     6,    64,   142,   188,   141,   140,
      142,   140,     6,     6,   153,   135,   140,     6,   141,   140,
      142,     6,   142,     6,   194,   209,     6,     6,   195,   209,
-       6,     6,   196,   209,     6,   142,   209,   200,   179,   214,
+       6,     6,   196,   209,     6,   142,   209,   200,   179,   217,
        6,   211,   217,   142,   159,   209,   213,   209,   141,   142,
      141,   142,   141,   142,     6,     6,   142,   142,   189,   142,
      140,   142,     6,   141,   135,   142,   142,   200,     6,   197,
@@ -3102,7 +3102,7 @@ while (YYID (0))
    we won't break user code: when these are the locations we know.  */
 
 #ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
+# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
 #  define YY_LOCATION_PRINT(File, Loc)			\
      fprintf (File, "%d.%d-%d.%d",			\
 	      (Loc).first_line, (Loc).first_column,	\
diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp
index 33b13bb7ecafd383d7a363c5d6da38d331a51f01..b0d1532ab9d58e3cd146194c16b2a377ca7f34c3 100644
--- a/Parser/Gmsh.tab.hpp
+++ b/Parser/Gmsh.tab.hpp
@@ -300,7 +300,7 @@ typedef union YYSTYPE
   Shape s;
   List_T *l;
 }
-/* Line 1489 of yacc.c.  */
+/* Line 1529 of yacc.c.  */
 #line 305 "Gmsh.tab.hpp"
 	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index 5a8f91bead99fb9030442f74a53d2a93c63ca2e2..de19ec63b3e40f328ba920568d50f7bf5d039b0a 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1885,7 +1885,7 @@ LevelSet :
         yymsg(0, "Wrong levelset definition");
       Free($2);
     }
-  | tLevelset tSTRING '(' FExpr ')' tAFFECT '{' VExpr ',' VExpr ',' ListOfDouble '}' tEND
+  | tLevelset tSTRING '(' FExpr ')' tAFFECT '{' VExpr ',' VExpr ',' RecursiveListOfDouble '}' tEND
     {
       if(!strcmp($2, "Cylinder") && List_Nbr($12) == 1){
         int t = (int)$4;
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index 60651fef20c13e5b340a12a31d9930e2fa5cd87e..30173608aa63b636674a8f0fd3fd2179354ca1ad 100644
--- a/Parser/Gmsh.yy.cpp
+++ b/Parser/Gmsh.yy.cpp
@@ -6,29 +6,10 @@
 
 /* A lexical scanner generated by flex */
 
-#define yy_create_buffer gmsh_yy_create_buffer
-#define yy_delete_buffer gmsh_yy_delete_buffer
-#define yy_flex_debug gmsh_yy_flex_debug
-#define yy_init_buffer gmsh_yy_init_buffer
-#define yy_flush_buffer gmsh_yy_flush_buffer
-#define yy_load_buffer_state gmsh_yy_load_buffer_state
-#define yy_switch_to_buffer gmsh_yy_switch_to_buffer
-#define yyin gmsh_yyin
-#define yyleng gmsh_yyleng
-#define yylex gmsh_yylex
-#define yylineno gmsh_yylineno
-#define yyout gmsh_yyout
-#define yyrestart gmsh_yyrestart
-#define yytext gmsh_yytext
-#define yywrap gmsh_yywrap
-#define yyalloc gmsh_yyalloc
-#define yyrealloc gmsh_yyrealloc
-#define yyfree gmsh_yyfree
-
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 35
+#define YY_FLEX_SUBMINOR_VERSION 33
 #if YY_FLEX_SUBMINOR_VERSION > 0
 #define FLEX_BETA
 #endif
@@ -50,7 +31,7 @@
 
 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
 
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#if __STDC_VERSION__ >= 199901L
 
 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
  * if you want the limit (max/min) macros for int types. 
@@ -73,6 +54,7 @@ typedef int flex_int32_t;
 typedef unsigned char flex_uint8_t; 
 typedef unsigned short int flex_uint16_t;
 typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
 
 /* Limits of integral types. */
 #ifndef INT8_MIN
@@ -103,8 +85,6 @@ typedef unsigned int flex_uint32_t;
 #define UINT32_MAX             (4294967295U)
 #endif
 
-#endif /* ! C99 */
-
 #endif /* ! FLEXINT_H */
 
 #ifdef __cplusplus
@@ -114,12 +94,11 @@ typedef unsigned int flex_uint32_t;
 
 #else	/* ! __cplusplus */
 
-/* C99 requires __STDC__ to be defined as 1. */
-#if defined (__STDC__)
+#if __STDC__
 
 #define YY_USE_CONST
 
-#endif	/* defined (__STDC__) */
+#endif	/* __STDC__ */
 #endif	/* ! __cplusplus */
 
 #ifdef YY_USE_CONST
@@ -161,15 +140,7 @@ typedef unsigned int flex_uint32_t;
 
 /* Size of default input buffer. */
 #ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
 #define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
 #endif
 
 /* The state buf must be large enough to hold one state per character in the main buffer.
@@ -207,9 +178,14 @@ extern FILE *gmsh_yyin, *gmsh_yyout;
 
 #define unput(c) yyunput( c, (yytext_ptr)  )
 
+/* The following is because we cannot portably get our hands on size_t
+ * (without autoconf's help, which isn't available because we want
+ * flex-generated scanners to compile on their own).
+ */
+
 #ifndef YY_TYPEDEF_YY_SIZE_T
 #define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
+typedef unsigned int yy_size_t;
 #endif
 
 #ifndef YY_STRUCT_YY_BUFFER_STATE
@@ -899,7 +875,7 @@ void   skipline(void);
 #define YY_NO_UNISTD_H
 #endif
 
-#line 903 "Gmsh.yy.cpp"
+#line 879 "Gmsh.yy.cpp"
 
 #define INITIAL 0
 
@@ -917,35 +893,6 @@ void   skipline(void);
 
 static int yy_init_globals (void );
 
-/* Accessor methods to globals.
-   These are made visible to non-reentrant scanners for convenience. */
-
-int gmsh_yylex_destroy (void );
-
-int gmsh_yyget_debug (void );
-
-void gmsh_yyset_debug (int debug_flag  );
-
-YY_EXTRA_TYPE gmsh_yyget_extra (void );
-
-void gmsh_yyset_extra (YY_EXTRA_TYPE user_defined  );
-
-FILE *gmsh_yyget_in (void );
-
-void gmsh_yyset_in  (FILE * in_str  );
-
-FILE *gmsh_yyget_out (void );
-
-void gmsh_yyset_out  (FILE * out_str  );
-
-int gmsh_yyget_leng (void );
-
-char *gmsh_yyget_text (void );
-
-int gmsh_yyget_lineno (void );
-
-void gmsh_yyset_lineno (int line_number  );
-
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
  */
@@ -980,12 +927,7 @@ static int input (void );
 
 /* Amount of stuff to slurp up with each read. */
 #ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
 #define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
 #endif
 
 /* Copy whatever the last rule matched to the standard output. */
@@ -993,7 +935,7 @@ static int input (void );
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO do { if (fwrite( gmsh_yytext, gmsh_yyleng, 1, gmsh_yyout )) {} } while (0)
+#define ECHO (void) fwrite( gmsh_yytext, gmsh_yyleng, 1, gmsh_yyout )
 #endif
 
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
@@ -1089,7 +1031,7 @@ YY_DECL
 #line 49 "Gmsh.l"
 
 
-#line 1093 "Gmsh.yy.cpp"
+#line 1035 "Gmsh.yy.cpp"
 
 	if ( !(yy_init) )
 		{
@@ -1889,7 +1831,7 @@ YY_RULE_SETUP
 #line 219 "Gmsh.l"
 ECHO;
 	YY_BREAK
-#line 1893 "Gmsh.yy.cpp"
+#line 1835 "Gmsh.yy.cpp"
 case YY_STATE_EOF(INITIAL):
 	yyterminate();
 
@@ -2120,7 +2062,7 @@ static int yy_get_next_buffer (void)
 
 		/* Read in more data. */
 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			(yy_n_chars), (size_t) num_to_read );
+			(yy_n_chars), num_to_read );
 
 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 		}
@@ -2144,14 +2086,6 @@ static int yy_get_next_buffer (void)
 	else
 		ret_val = EOB_ACT_CONTINUE_SCAN;
 
-	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
-		/* Extend the array by 50%, plus the number we really need. */
-		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
-		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) gmsh_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
-		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
-	}
-
 	(yy_n_chars) += number_to_move;
 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
@@ -2303,7 +2237,7 @@ static int yy_get_next_buffer (void)
 				case EOB_ACT_END_OF_FILE:
 					{
 					if ( gmsh_yywrap( ) )
-						return EOF;
+						return 0;
 
 					if ( ! (yy_did_buffer_switch_on_eof) )
 						YY_NEW_FILE;
@@ -2567,9 +2501,7 @@ static void gmsh_yyensure_buffer_stack (void)
 		(yy_buffer_stack) = (struct yy_buffer_state**)gmsh_yyalloc
 								(num_to_alloc * sizeof(struct yy_buffer_state*)
 								);
-		if ( ! (yy_buffer_stack) )
-			YY_FATAL_ERROR( "out of dynamic memory in gmsh_yyensure_buffer_stack()" );
-								  
+		
 		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
 				
 		(yy_buffer_stack_max) = num_to_alloc;
@@ -2587,8 +2519,6 @@ static void gmsh_yyensure_buffer_stack (void)
 								((yy_buffer_stack),
 								num_to_alloc * sizeof(struct yy_buffer_state*)
 								);
-		if ( ! (yy_buffer_stack) )
-			YY_FATAL_ERROR( "out of dynamic memory in gmsh_yyensure_buffer_stack()" );
 
 		/* zero only the new slots.*/
 		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
@@ -2633,7 +2563,7 @@ YY_BUFFER_STATE gmsh_yy_scan_buffer  (char * base, yy_size_t  size )
 
 /** Setup the input buffer state to scan a string. The next call to gmsh_yylex() will
  * scan from a @e copy of @a str.
- * @param yystr a NUL-terminated string to scan
+ * @param str a NUL-terminated string to scan
  * 
  * @return the newly allocated buffer state object.
  * @note If you want to scan bytes that may contain NUL values, then use
@@ -2647,8 +2577,8 @@ YY_BUFFER_STATE gmsh_yy_scan_string (yyconst char * yystr )
 
 /** Setup the input buffer state to scan the given bytes. The next call to gmsh_yylex() will
  * scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
  * 
  * @return the newly allocated buffer state object.
  */
diff --git a/benchmarks/levelset/carreTri.geo b/benchmarks/levelset/carreTri.geo
index a766a252b66b19b9149113264adec44a92f4cd39..451c8692091b3d5d5c45a0aceee1cbb76c360b6b 100644
--- a/benchmarks/levelset/carreTri.geo
+++ b/benchmarks/levelset/carreTri.geo
@@ -28,10 +28,11 @@ Physical Surface(1000) = {6};
 Mesh 2;
 
 Levelset Plane (1) = {0,-1,0,0.5};
-//Levelset Plane (2) = {-1,0,0,0.5};
-Levelset Sphere (2) = {{0,0,0},0.75};
-Levelset Intersection (3) = {1,2};
-Levelset CutMesh {3};
+Levelset Plane (2) = {-1,0,0,0.5};
+Levelset Sphere (3) = {{0,0,0},0.75};
+Levelset Ellipsoid (4) = { {0,0,0}, {1,0,0}, 0.55, 0.55, 0.75 };
+Levelset Intersection (10) = {1,4};
+Levelset CutMesh {10};
 
 //Transfinite Line{1,3}=nb+1;
 //Transfinite Line{2,4}=2*nb+1+1;