diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp
index 5cbea99e0980de3dab217765eeb9160425e57db6..6621abca5cbb4d03cfa3045f435ebadb19760a05 100644
--- a/Geo/GModel.cpp
+++ b/Geo/GModel.cpp
@@ -424,6 +424,14 @@ int GModel::setPhysicalName(std::string name, int dim, int number)
 
 std::string GModel::getPhysicalName(int dim, int number)
 {
+  //Emi debug here
+  // printf("getPhysName size %d \n", physicalNames.size());
+  // std::map<std::pair<int, int>, std::string>::iterator itt = physicalNames.begin();
+  // for (; itt != physicalNames.end(); itt++){
+  //   printf("name %s \n", itt->second.c_str());
+  //   printf("par (%d,%d) \n", itt->first.first, itt->first.second);
+  // }
+
   std::map<std::pair<int, int>, std::string>::iterator it =
     physicalNames.find(std::pair<int, int>(dim, number));
   if(it != physicalNames.end()) return it->second;
@@ -1811,6 +1819,17 @@ GModel *GModel::buildCutGModel(gLevelset *ls, bool cutElem, bool saveTri)
   Msg::Info("Cutting mesh...");
   double t1 = Cpu();
 
+  //emi debug
+  std::vector<GEntity*> entities0;
+  this->getEntities(entities0);
+  for(unsigned int i = 0; i < entities0.size(); i++){
+    std::vector<int> phys = entities0[i]->getPhysicalEntities();
+    for (int j= 0; j < phys.size(); j++){
+	std::string name = this->getPhysicalName(entities0[i]->dim(), phys[j]);
+	printf("dim =%d elem=%d phys =%s \n", entities0[i]->dim(),entities0[i]->tag(), name.c_str() );
+    }
+  }
+
   GModel *cutGM = buildCutMesh(this, ls, elements, vertexMap, physicals, cutElem);
 
   for(int i = 0; i < (int)(sizeof(elements) / sizeof(elements[0])); i++)
@@ -1829,7 +1848,28 @@ GModel *GModel::buildCutGModel(gLevelset *ls, bool cutElem, bool saveTri)
     }
   }
 
-  Msg::Info("Mesh cutting complete (%g s)", Cpu() - t1);
+  //set physical names
+  for(int i = 0; i < 4; i++){
+    std::map<int, std::map<int, std::string> >::const_iterator it = physicals[i].begin();
+    for(; it != physicals[i].end(); ++it){
+      std::map<int, std::string>::const_iterator it2 = it->second.begin();
+      cutGM->setPhysicalName(it2->second, i, it2->first);
+    }
+  }
+
+  Msg::Info("Mesh cutting completed (%g s)", Cpu() - t1);
+
+  //emi debug
+  std::vector<GEntity*> entities;
+  cutGM->getEntities(entities);
+  for(unsigned int i = 0; i < entities.size(); i++){
+    std::vector<int> phys = entities[i]->getPhysicalEntities();
+    for (int j= 0; j < phys.size(); j++){
+	std::string name = cutGM->getPhysicalName(entities[i]->dim(), phys[j]);
+	printf("dim =%d elem=%d phys =%s \n", entities[i]->dim(),entities[i]->tag(), name.c_str() );
+    }
+  }
+
   return cutGM;
 }
 
@@ -1862,7 +1902,6 @@ GFaceCompound* GModel::addCompoundFace(std::vector<GFace*> faces, int typeP, int
   if (typeP == 1) typ =  GFaceCompound::CONFORMAL;
   if (typeP == 2) typ =  GFaceCompound::RBF;
 
-  printf("new compound %d \n", num);
   GFaceCompound *gfc = new GFaceCompound(this, num, comp, U0, typ, typeS);
 
   add(gfc);
diff --git a/Geo/GModelIO_Geo.cpp b/Geo/GModelIO_Geo.cpp
index fcb320998410065f58aff8b4927efee88e2c7fa1..3442fcf88a2cb59b5fc3262364139c30c13f7370 100644
--- a/Geo/GModelIO_Geo.cpp
+++ b/Geo/GModelIO_Geo.cpp
@@ -192,7 +192,7 @@ int GModel::importGEOInternals()
         if (param == 1) typ =  GFaceCompound::CONFORMAL;
         if (param == 2) typ =  GFaceCompound::RBF;
         int algo = CTX::instance()->mesh.remeshAlgo;
-              f = new GFaceCompound(this, s->Num, comp, U0, typ, algo);
+	f = new GFaceCompound(this, s->Num, comp, U0, typ, algo);
 
         f->meshAttributes.recombine = s->Recombine;
         f->meshAttributes.recombineAngle = s->RecombineAngle;
diff --git a/Geo/GModelIO_Mesh.cpp b/Geo/GModelIO_Mesh.cpp
index 8ff7dc399288f3e56562864fad0d0de49180ba5b..ea518a7f1d5132a689b227d9702e0d3d02875064 100644
--- a/Geo/GModelIO_Mesh.cpp
+++ b/Geo/GModelIO_Mesh.cpp
@@ -54,8 +54,9 @@ void GModel::_storePhysicalTagsInEntities(int dim,
       std::map<int, std::string>::const_iterator it2 = it->second.begin();
       for(; it2 != it->second.end(); ++it2){
         if(std::find(ge->physicals.begin(), ge->physicals.end(), it2->first) ==
-           ge->physicals.end())
+           ge->physicals.end()){
           ge->physicals.push_back(it2->first);
+	}
       }
     }
   }
@@ -530,7 +531,7 @@ int GModel::readMSH(const std::string &name)
                 _ghostCells.insert(std::pair<MElement*, short>(e, -data[5 + j]));
             if(numElements > 100000)
               Msg::ProgressMeter(numElementsPartial + i + 1, numElements,
-                                 "Reading elements");
+                                 "Readsing elements");
           }
           delete [] data;
           numElementsPartial += numElms;
@@ -651,6 +652,7 @@ static int getNumElementsMSH(GEntity *ge, bool saveAll, int saveSinglePartition)
 
 static int getNumElementsMSH(GModel *m, bool saveAll, int saveSinglePartition)
 {
+
   int n = 0;
   for(GModel::viter it = m->firstVertex(); it != m->lastVertex(); ++it)
     n += getNumElementsMSH(*it, saveAll, saveSinglePartition);
@@ -786,17 +788,14 @@ int GModel::writeMSH(const std::string &name, double version, bool binary,
          writeElementMSH(fp, this, (*it)->polyhedra[i]->getParent(),
                          saveAll, version, binary, num, (*it)->tag(), (*it)->physicals);
   }
-
   // points
   for(viter it = firstVertex(); it != lastVertex(); ++it)
     writeElementsMSH(fp, this, (*it)->points, saveAll, saveSinglePartition,
                      version, binary, num, (*it)->tag(), (*it)->physicals);
-
   // lines
   for(eiter it = firstEdge(); it != lastEdge(); ++it)
     writeElementsMSH(fp, this, (*it)->lines, saveAll, saveSinglePartition,
                      version, binary, num, (*it)->tag(), (*it)->physicals);
-
   // triangles
   for(fiter it = firstFace(); it != lastFace(); ++it)
     writeElementsMSH(fp, this, (*it)->triangles, saveAll, saveSinglePartition,
@@ -806,12 +805,10 @@ int GModel::writeMSH(const std::string &name, double version, bool binary,
   for(fiter it = firstFace(); it != lastFace(); ++it)
     writeElementsMSH(fp, this, (*it)->quadrangles, saveAll, saveSinglePartition,
                      version, binary, num, (*it)->tag(), (*it)->physicals);
-
   // polygons
   for(fiter it = firstFace(); it != lastFace(); it++)
     writeElementsMSH(fp, this, (*it)->polygons, saveAll, saveSinglePartition,
                      version, binary, num, (*it)->tag(), (*it)->physicals);
-
   // tets
   for(riter it = firstRegion(); it != lastRegion(); ++it)
     writeElementsMSH(fp, this, (*it)->tetrahedra, saveAll, saveSinglePartition,
@@ -837,7 +834,7 @@ int GModel::writeMSH(const std::string &name, double version, bool binary,
     writeElementsMSH(fp, this, (*it)->polyhedra, saveAll, saveSinglePartition,
                      version, binary, num, (*it)->tag(), (*it)->physicals);
 
-  // borders
+  // level set faces
   for(fiter it = firstFace(); it != lastFace(); ++it) {
     for(unsigned int i = 0; i < (*it)->triangles.size(); i++) {
       MTriangle *t = (*it)->triangles[i];
@@ -856,7 +853,8 @@ int GModel::writeMSH(const std::string &name, double version, bool binary,
                         getMeshElementIndex(p->getDomain(1)));
     }
   }
-  for(eiter it = firstEdge(); it != lastEdge(); ++it) //border lines after border surfaces
+  //level set lines
+  for(eiter it = firstEdge(); it != lastEdge(); ++it) {
     for(unsigned int i = 0; i < (*it)->lines.size(); i++) {
       MLine *l = (*it)->lines[i];
       if(l->getDomain(0))
@@ -865,7 +863,9 @@ int GModel::writeMSH(const std::string &name, double version, bool binary,
                         getMeshElementIndex(l->getDomain(0)),
                         getMeshElementIndex(l->getDomain(1)));
     }
+  }
 
+ 
   if(binary) fprintf(fp, "\n");
 
   if(version >= 2.0){
diff --git a/Geo/MElement.cpp b/Geo/MElement.cpp
index 10ee6c994ce27c1543d115061f8034ba874b398d..f5d8b9c5c75444e8712612af76f2d0c261600508 100644
--- a/Geo/MElement.cpp
+++ b/Geo/MElement.cpp
@@ -626,7 +626,7 @@ void MElement::writeMSH(FILE *fp, double version, bool binary, int num,
   bool poly = (type == MSH_POLYG_ || type == MSH_POLYH_ || type == MSH_POLYG_B);
   bool polyl  = (type == MSH_LIN_B || type == MSH_LIN_C);
 
-  // if poly loop over children
+  // if polygon loop over children (triangles and tets)
   if(CTX::instance()->mesh.saveTri && poly){
     for (int i = 0; i < getNumChildren() ; i++){
        MElement *t = getChild(i);
diff --git a/Geo/MElementCut.cpp b/Geo/MElementCut.cpp
index 05501126c4a57f73e058960f1e3b76741d83d2d7..b1efdaef9b06f03c5970083bf5fb651f424dafba 100644
--- a/Geo/MElementCut.cpp
+++ b/Geo/MElementCut.cpp
@@ -453,11 +453,18 @@ void MLineBorder::getIntegrationPoints(int pOrder, int *npts, IntPt **pts)
 static void assignPhysicals(GModel *GM, std::vector<int> &gePhysicals, int reg, int dim,
                             std::map<int, std::map<int, std::string> > physicals[4])
 {
+  //printf("assign \n");
   for(unsigned int i = 0; i < gePhysicals.size(); i++){
     int phys = gePhysicals[i];
-    if(phys && (!physicals[dim].count(reg) || !physicals[dim][reg].count(phys)))
-      physicals[dim][reg][phys] = GM->getPhysicalName(dim, phys);
+    //printf("dim=%d elem=%d phys=%d \n", dim, reg, phys);
+    if(phys && (!physicals[dim].count(reg) || !physicals[dim][reg].count(phys))){
+      std::string name = GM->getPhysicalName(dim, phys);
+      physicals[dim][reg][phys] = name;
+      //GM->setPhysicalName(name, dim, reg);
+      //printf("true name = %s \n", GM->getPhysicalName(dim, phys).c_str());
+    }
   }
+
 }
 
 static int getElementaryTag(int lsTag, int elementary, std::map<int, int> &newElemTags)
@@ -477,15 +484,20 @@ static void getPhysicalTag(int lsTag, const std::vector<int> &physicals,
                            std::vector<int> &phys2, std::map<int, int> &newPhysTags)
 {
   phys2.clear();
+  //printf("getPhysical\n");
+
   for(unsigned int i = 0; i < physicals.size(); i++){
     int phys = physicals[i];
-    if(lsTag < 0){
+    //printf("lstag %d physOLD=%d \n", lsTag, phys);
+    if(lsTag < 0 ){
       if(!newPhysTags.count(phys))
         newPhysTags[phys] = ++newPhysTags[0];
       phys = newPhysTags[phys];
     }
     phys2.push_back(phys);
+    //printf("lstag %d phys=%d \n", lsTag, phys);
   }
+
 }
 
 static int getBorderTag(int lsTag, int count, int &maxTag, std::map<int, int> &borderTags)
@@ -551,6 +563,7 @@ static void elementSplitMesh(MElement *e, fullMatrix<double> &verticesLs,
   case MSH_POLYG_ :
   case MSH_POLYG_B :
     {
+      printf("in tri poly \n");
       int reg = getElementaryTag(lsTag, elementary, newElemTags[2]);
       std::vector<int> phys;
       getPhysicalTag(lsTag, gePhysicals, phys, newPhysTags[2]);
@@ -566,6 +579,7 @@ static void elementSplitMesh(MElement *e, fullMatrix<double> &verticesLs,
   case MSH_LIN_2 :
   case MSH_LIN_B :
     {
+      printf("in line \n");
       int reg = getElementaryTag(lsTag, elementary, newElemTags[1]);
       std::vector<int> phys;
       getPhysicalTag(lsTag, gePhysicals, phys, newPhysTags[1]);
@@ -575,6 +589,7 @@ static void elementSplitMesh(MElement *e, fullMatrix<double> &verticesLs,
     break;
   case MSH_PNT :
     {
+      printf("in point \n");
       int reg = getElementaryTag(lsTag, elementary, newElemTags[0]);
       std::vector<int> phys;
       getPhysicalTag(lsTag, gePhysicals, phys, newPhysTags[0]);
@@ -586,6 +601,7 @@ static void elementSplitMesh(MElement *e, fullMatrix<double> &verticesLs,
     Msg::Error("This type of element cannot be split.");
     return;
   }
+
 }
 
 #if defined(HAVE_DINTEGRATION)
@@ -853,7 +869,6 @@ static void elementCutMesh(MElement *e, std::vector<const gLevelset *> &RPN,
         int lsT = triangles[i]->lsTag();
         int c = elements[2].count(lsT) + elements[3].count(lsT) + elements[8].count(lsT);
         // the surfaces are cut before the volumes!
-	//bool havePhys = e->
         int reg = getBorderTag(lsT, c, newElemTags[2][0], borderElemTags[1]);
         int physTag = (!gePhysicals.size()) ? 0 : getBorderTag(lsT, c, newPhysTags[2][0], borderPhysTags[1]);
         std::vector<int> phys;
diff --git a/Geo/gmshLevelset.h b/Geo/gmshLevelset.h
index e95e0091b991ce168b9c1f8470b856552f4c9842..a692b1a087d2031a998cbc1542578fc7c0e8de6b 100644
--- a/Geo/gmshLevelset.h
+++ b/Geo/gmshLevelset.h
@@ -251,7 +251,6 @@ public:
   int type() const { return UNKNOWN; }
 };
 
-
 #if defined(HAVE_POST)
 class gLevelsetPostView : public gLevelsetPrimitive
 {
diff --git a/Numeric/simpleFunction.h b/Numeric/simpleFunction.h
index a4566ea5cc112042375b18568a648392ce7ecfea..22a633004cdff831745df5fe003088fb9d65b6ee 100644
--- a/Numeric/simpleFunction.h
+++ b/Numeric/simpleFunction.h
@@ -20,10 +20,6 @@ class simpleFunction {
   virtual void gradient (double x, double y, double z,
 			 scalar & dfdx, scalar & dfdy, scalar & dfdz) const
   { dfdx = dfdy = dfdz = 0.0; }
-/*  virtual scalar operator () (double x, double y, double z,MElement *e) const { return _val; }
-  virtual void gradient (double x, double y, double z,
-			 scalar & dfdx, scalar & dfdy, scalar & dfdz, MElement *e) const
-  { dfdx = dfdy = dfdz = 0.0; }*/
 };
 
 template <class scalar>
diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index 16517c97d155db06acb0ae758a8d83a0ac59dd96..d3621694c371d3a3a7b102e040323682a095a3fa 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -1,9 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.4.3.  */
+/* A Bison parser, made by GNU Bison 2.5.  */
 
-/* Skeleton implementation for Bison's Yacc-like parsers in C
+/* Bison implementation for Yacc-like parsers in C
    
-      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-   2009, 2010 Free Software Foundation, Inc.
+      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -45,7 +44,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.4.3"
+#define YYBISON_VERSION "2.5"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -74,7 +73,7 @@
 
 /* Copy the first part of user declarations.  */
 
-/* Line 189 of yacc.c  */
+/* Line 268 of yacc.c  */
 #line 1 "Gmsh.y"
 
 // Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
@@ -166,8 +165,8 @@ int PrintListOfDouble(char *format, List_T *list, char *buffer);
 fullMatrix<double> ListOfListOfDouble2Matrix(List_T *list);
 
 
-/* Line 189 of yacc.c  */
-#line 171 "Gmsh.tab.cpp"
+/* Line 268 of yacc.c  */
+#line 170 "Gmsh.tab.cpp"
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
@@ -340,7 +339,7 @@ fullMatrix<double> ListOfListOfDouble2Matrix(List_T *list);
 typedef union YYSTYPE
 {
 
-/* Line 214 of yacc.c  */
+/* Line 293 of yacc.c  */
 #line 91 "Gmsh.y"
 
   char *c;
@@ -353,8 +352,8 @@ typedef union YYSTYPE
 
 
 
-/* Line 214 of yacc.c  */
-#line 358 "Gmsh.tab.cpp"
+/* Line 293 of yacc.c  */
+#line 357 "Gmsh.tab.cpp"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -365,8 +364,8 @@ typedef union YYSTYPE
 /* Copy the second part of user declarations.  */
 
 
-/* Line 264 of yacc.c  */
-#line 370 "Gmsh.tab.cpp"
+/* Line 343 of yacc.c  */
+#line 369 "Gmsh.tab.cpp"
 
 #ifdef short
 # undef short
@@ -469,11 +468,11 @@ YYID (yyi)
 #    define alloca _alloca
 #   else
 #    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#     ifndef _STDLIB_H
-#      define _STDLIB_H 1
+#     ifndef EXIT_SUCCESS
+#      define EXIT_SUCCESS 0
 #     endif
 #    endif
 #   endif
@@ -496,24 +495,24 @@ YYID (yyi)
 #  ifndef YYSTACK_ALLOC_MAXIMUM
 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
 #  endif
-#  if (defined __cplusplus && ! defined _STDLIB_H \
+#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
        && ! ((defined YYMALLOC || defined malloc) \
 	     && (defined YYFREE || defined free)))
 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   ifndef _STDLIB_H
-#    define _STDLIB_H 1
+#   ifndef EXIT_SUCCESS
+#    define EXIT_SUCCESS 0
 #   endif
 #  endif
 #  ifndef YYMALLOC
 #   define YYMALLOC malloc
-#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
 #  ifndef YYFREE
 #   define YYFREE free
-#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 void free (void *); /* INFRINGES ON USER NAME SPACE */
 #   endif
@@ -542,23 +541,7 @@ union yyalloc
      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
       + YYSTACK_GAP_MAXIMUM)
 
-/* Copy COUNT objects from FROM to TO.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if defined __GNUC__ && 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-#  else
-#   define YYCOPY(To, From, Count)		\
-      do					\
-	{					\
-	  YYSIZE_T yyi;				\
-	  for (yyi = 0; yyi < (Count); yyi++)	\
-	    (To)[yyi] = (From)[yyi];		\
-	}					\
-      while (YYID (0))
-#  endif
-# endif
+# define YYCOPY_NEEDED 1
 
 /* Relocate STACK from its old location to the new one.  The
    local variables YYSIZE and YYSTACKSIZE give the old and new number of
@@ -578,6 +561,26 @@ union yyalloc
 
 #endif
 
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+/* Copy COUNT objects from FROM to TO.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if defined __GNUC__ && 1 < __GNUC__
+#   define YYCOPY(To, From, Count) \
+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+#  else
+#   define YYCOPY(To, From, Count)		\
+      do					\
+	{					\
+	  YYSIZE_T yyi;				\
+	  for (yyi = 0; yyi < (Count); yyi++)	\
+	    (To)[yyi] = (From)[yyi];		\
+	}					\
+      while (YYID (0))
+#  endif
+# endif
+#endif /* !YYCOPY_NEEDED */
+
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  5
 /* YYLAST -- Last index in YYTABLE.  */
@@ -1154,8 +1157,8 @@ static const yytype_uint8 yyr2[] =
        4,     4,     4,     6
 };
 
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
-   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
+/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
+   Performed when YYTABLE doesn't specify something else to do.  Zero
    means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
@@ -1490,8 +1493,7 @@ static const yytype_int16 yypgoto[] =
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
-   number is the opposite.  If zero, do what YYDEFACT says.
-   If YYTABLE_NINF, syntax error.  */
+   number is the opposite.  If YYTABLE_NINF, syntax error.  */
 #define YYTABLE_NINF -5
 static const yytype_int16 yytable[] =
 {
@@ -2229,6 +2231,12 @@ static const yytype_int16 yytable[] =
        0,     0,   351
 };
 
+#define yypact_value_is_default(yystate) \
+  ((yystate) == (-1033))
+
+#define yytable_value_is_error(yytable_value) \
+  YYID (0)
+
 static const yytype_int16 yycheck[] =
 {
        6,   206,   401,   402,     6,     4,     3,   326,     6,     4,
@@ -3150,7 +3158,6 @@ do								\
     {								\
       yychar = (Token);						\
       yylval = (Value);						\
-      yytoken = YYTRANSLATE (yychar);				\
       YYPOPSTACK (1);						\
       goto yybackup;						\
     }								\
@@ -3192,19 +3199,10 @@ while (YYID (0))
 #endif
 
 
-/* YY_LOCATION_PRINT -- Print the location on the stream.
-   This macro was not mandated originally: define only if we know
-   we won't break user code: when these are the locations we know.  */
+/* This macro is provided for backward compatibility. */
 
 #ifndef YY_LOCATION_PRINT
-# 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,	\
-	      (Loc).last_line,  (Loc).last_column)
-# else
-#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
 #endif
 
 
@@ -3396,7 +3394,6 @@ int yydebug;
 # define YYMAXDEPTH 10000
 #endif
 
-
 
 #if YYERROR_VERBOSE
 
@@ -3499,115 +3496,142 @@ yytnamerr (char *yyres, const char *yystr)
 }
 # endif
 
-/* Copy into YYRESULT an error message about the unexpected token
-   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
-   including the terminating null byte.  If YYRESULT is null, do not
-   copy anything; just return the number of bytes that would be
-   copied.  As a special case, return 0 if an ordinary "syntax error"
-   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
-   size calculation.  */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
-{
-  int yyn = yypact[yystate];
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
+   about the unexpected token YYTOKEN for the state stack whose top is
+   YYSSP.
 
-  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
-    return 0;
-  else
-    {
-      int yytype = YYTRANSLATE (yychar);
-      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
-      YYSIZE_T yysize = yysize0;
-      YYSIZE_T yysize1;
-      int yysize_overflow = 0;
-      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-      int yyx;
-
-# if 0
-      /* This is so xgettext sees the translatable formats that are
-	 constructed on the fly.  */
-      YY_("syntax error, unexpected %s");
-      YY_("syntax error, unexpected %s, expecting %s");
-      YY_("syntax error, unexpected %s, expecting %s or %s");
-      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
-      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
-      char *yyfmt;
-      char const *yyf;
-      static char const yyunexpected[] = "syntax error, unexpected %s";
-      static char const yyexpecting[] = ", expecting %s";
-      static char const yyor[] = " or %s";
-      char yyformat[sizeof yyunexpected
-		    + sizeof yyexpecting - 1
-		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
-		       * (sizeof yyor - 1))];
-      char const *yyprefix = yyexpecting;
-
-      /* Start YYX at -YYN if negative to avoid negative indexes in
-	 YYCHECK.  */
-      int yyxbegin = yyn < 0 ? -yyn : 0;
-
-      /* Stay within bounds of both yycheck and yytname.  */
-      int yychecklim = YYLAST - yyn + 1;
-      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-      int yycount = 1;
-
-      yyarg[0] = yytname[yytype];
-      yyfmt = yystpcpy (yyformat, yyunexpected);
-
-      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-	  {
-	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-	      {
-		yycount = 1;
-		yysize = yysize0;
-		yyformat[sizeof yyunexpected - 1] = '\0';
-		break;
-	      }
-	    yyarg[yycount++] = yytname[yyx];
-	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-	    yysize_overflow |= (yysize1 < yysize);
-	    yysize = yysize1;
-	    yyfmt = yystpcpy (yyfmt, yyprefix);
-	    yyprefix = yyor;
-	  }
+   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
+   not large enough to hold the message.  In that case, also set
+   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
+   required number of bytes is too large to store.  */
+static int
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+                yytype_int16 *yyssp, int yytoken)
+{
+  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
+  YYSIZE_T yysize = yysize0;
+  YYSIZE_T yysize1;
+  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+  /* Internationalized format string. */
+  const char *yyformat = 0;
+  /* Arguments of yyformat. */
+  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+  /* Number of reported tokens (one for the "unexpected", one per
+     "expected"). */
+  int yycount = 0;
+
+  /* There are many possibilities here to consider:
+     - Assume YYFAIL is not used.  It's too flawed to consider.  See
+       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
+       for details.  YYERROR is fine as it does not invoke this
+       function.
+     - If this state is a consistent state with a default action, then
+       the only way this function was invoked is if the default action
+       is an error action.  In that case, don't check for expected
+       tokens because there are none.
+     - The only way there can be no lookahead present (in yychar) is if
+       this state is a consistent state with a default action.  Thus,
+       detecting the absence of a lookahead is sufficient to determine
+       that there is no unexpected or expected token to report.  In that
+       case, just report a simple "syntax error".
+     - Don't assume there isn't a lookahead just because this state is a
+       consistent state with a default action.  There might have been a
+       previous inconsistent state, consistent state with a non-default
+       action, or user semantic action that manipulated yychar.
+     - Of course, the expected token list depends on states to have
+       correct lookahead information, and it depends on the parser not
+       to perform extra reductions after fetching a lookahead from the
+       scanner and before detecting a syntax error.  Thus, state merging
+       (from LALR or IELR) and default reductions corrupt the expected
+       token list.  However, the list is correct for canonical LR with
+       one exception: it will still contain any token that will not be
+       accepted due to an error action in a later state.
+  */
+  if (yytoken != YYEMPTY)
+    {
+      int yyn = yypact[*yyssp];
+      yyarg[yycount++] = yytname[yytoken];
+      if (!yypact_value_is_default (yyn))
+        {
+          /* Start YYX at -YYN if negative to avoid negative indexes in
+             YYCHECK.  In other words, skip the first -YYN actions for
+             this state because they are default actions.  */
+          int yyxbegin = yyn < 0 ? -yyn : 0;
+          /* Stay within bounds of both yycheck and yytname.  */
+          int yychecklim = YYLAST - yyn + 1;
+          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+          int yyx;
+
+          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
+                && !yytable_value_is_error (yytable[yyx + yyn]))
+              {
+                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+                  {
+                    yycount = 1;
+                    yysize = yysize0;
+                    break;
+                  }
+                yyarg[yycount++] = yytname[yyx];
+                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+                if (! (yysize <= yysize1
+                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+                  return 2;
+                yysize = yysize1;
+              }
+        }
+    }
 
-      yyf = YY_(yyformat);
-      yysize1 = yysize + yystrlen (yyf);
-      yysize_overflow |= (yysize1 < yysize);
-      yysize = yysize1;
+  switch (yycount)
+    {
+# define YYCASE_(N, S)                      \
+      case N:                               \
+        yyformat = S;                       \
+      break
+      YYCASE_(0, YY_("syntax error"));
+      YYCASE_(1, YY_("syntax error, unexpected %s"));
+      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
+      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
+      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
+      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
+# undef YYCASE_
+    }
 
-      if (yysize_overflow)
-	return YYSIZE_MAXIMUM;
+  yysize1 = yysize + yystrlen (yyformat);
+  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+    return 2;
+  yysize = yysize1;
 
-      if (yyresult)
-	{
-	  /* Avoid sprintf, as that infringes on the user's name space.
-	     Don't have undefined behavior even if the translation
-	     produced a string with the wrong number of "%s"s.  */
-	  char *yyp = yyresult;
-	  int yyi = 0;
-	  while ((*yyp = *yyf) != '\0')
-	    {
-	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
-		{
-		  yyp += yytnamerr (yyp, yyarg[yyi++]);
-		  yyf += 2;
-		}
-	      else
-		{
-		  yyp++;
-		  yyf++;
-		}
-	    }
-	}
-      return yysize;
+  if (*yymsg_alloc < yysize)
+    {
+      *yymsg_alloc = 2 * yysize;
+      if (! (yysize <= *yymsg_alloc
+             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
+        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
+      return 1;
     }
+
+  /* Avoid sprintf, as that infringes on the user's name space.
+     Don't have undefined behavior even if the translation
+     produced a string with the wrong number of "%s"s.  */
+  {
+    char *yyp = *yymsg;
+    int yyi = 0;
+    while ((*yyp = *yyformat) != '\0')
+      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
+        {
+          yyp += yytnamerr (yyp, yyarg[yyi++]);
+          yyformat += 2;
+        }
+      else
+        {
+          yyp++;
+          yyformat++;
+        }
+  }
+  return 0;
 }
 #endif /* YYERROR_VERBOSE */
-
 
 /*-----------------------------------------------.
 | Release the memory associated to this symbol.  |
@@ -3640,6 +3664,7 @@ yydestruct (yymsg, yytype, yyvaluep)
     }
 }
 
+
 /* Prevent warnings from -Wmissing-prototypes.  */
 #ifdef YYPARSE_PARAM
 #if defined __STDC__ || defined __cplusplus
@@ -3666,10 +3691,9 @@ YYSTYPE yylval;
 int yynerrs;
 
 
-
-/*-------------------------.
-| yyparse or yypush_parse.  |
-`-------------------------*/
+/*----------.
+| yyparse.  |
+`----------*/
 
 #ifdef YYPARSE_PARAM
 #if (defined __STDC__ || defined __C99__FUNC__ \
@@ -3693,8 +3717,6 @@ yyparse ()
 #endif
 #endif
 {
-
-
     int yystate;
     /* Number of tokens to shift before error messages enabled.  */
     int yyerrstatus;
@@ -3849,7 +3871,7 @@ yybackup:
 
   /* First try to decide what to do without reference to lookahead token.  */
   yyn = yypact[yystate];
-  if (yyn == YYPACT_NINF)
+  if (yypact_value_is_default (yyn))
     goto yydefault;
 
   /* Not known => get a lookahead token if don't already have one.  */
@@ -3880,8 +3902,8 @@ yybackup:
   yyn = yytable[yyn];
   if (yyn <= 0)
     {
-      if (yyn == 0 || yyn == YYTABLE_NINF)
-	goto yyerrlab;
+      if (yytable_value_is_error (yyn))
+        goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
@@ -3936,161 +3958,161 @@ yyreduce:
     {
         case 3:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 163 "Gmsh.y"
-    { yyerrok; return 1; ;}
+    { yyerrok; return 1; }
     break;
 
   case 6:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 174 "Gmsh.y"
-    { return 1; ;}
+    { return 1; }
     break;
 
   case 7:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 175 "Gmsh.y"
-    { return 1; ;}
+    { return 1; }
     break;
 
   case 8:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 176 "Gmsh.y"
-    { return 1; ;}
+    { return 1; }
     break;
 
   case 9:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 177 "Gmsh.y"
-    { return 1; ;}
+    { return 1; }
     break;
 
   case 10:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 178 "Gmsh.y"
-    { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;}
+    { List_Delete((yyvsp[(1) - (1)].l)); return 1; }
     break;
 
   case 11:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 179 "Gmsh.y"
-    { return 1; ;}
+    { return 1; }
     break;
 
   case 12:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 180 "Gmsh.y"
-    { return 1; ;}
+    { return 1; }
     break;
 
   case 13:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 181 "Gmsh.y"
-    { return 1; ;}
+    { return 1; }
     break;
 
   case 14:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 182 "Gmsh.y"
-    { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;}
+    { List_Delete((yyvsp[(1) - (1)].l)); return 1; }
     break;
 
   case 15:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 183 "Gmsh.y"
-    { return 1; ;}
+    { return 1; }
     break;
 
   case 16:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 184 "Gmsh.y"
-    { return 1; ;}
+    { return 1; }
     break;
 
   case 17:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 185 "Gmsh.y"
-    { return 1; ;}
+    { return 1; }
     break;
 
   case 18:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 186 "Gmsh.y"
-    { return 1; ;}
+    { return 1; }
     break;
 
   case 19:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 187 "Gmsh.y"
-    { return 1; ;}
+    { return 1; }
     break;
 
   case 20:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 188 "Gmsh.y"
-    { return 1; ;}
+    { return 1; }
     break;
 
   case 21:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 189 "Gmsh.y"
-    { return 1; ;}
+    { return 1; }
     break;
 
   case 22:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 190 "Gmsh.y"
-    { return 1; ;}
+    { return 1; }
     break;
 
   case 23:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 195 "Gmsh.y"
     {
       (yyval.c) = (char*)"w";
-    ;}
+    }
     break;
 
   case 24:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 199 "Gmsh.y"
     {
       (yyval.c) = (char*)"a";
-    ;}
+    }
     break;
 
   case 25:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 206 "Gmsh.y"
     {
       Msg::Direct((yyvsp[(3) - (5)].c));
       Free((yyvsp[(3) - (5)].c));
-    ;}
+    }
     break;
 
   case 26:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 211 "Gmsh.y"
     {
       std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(6) - (7)].c));
@@ -4104,12 +4126,12 @@ yyreduce:
       }
       Free((yyvsp[(3) - (7)].c));
       Free((yyvsp[(6) - (7)].c));
-    ;}
+    }
     break;
 
   case 27:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 225 "Gmsh.y"
     {
       char tmpstring[1024];
@@ -4122,12 +4144,12 @@ yyreduce:
 	Msg::Direct(tmpstring);
       Free((yyvsp[(3) - (7)].c));
       List_Delete((yyvsp[(5) - (7)].l));
-    ;}
+    }
     break;
 
   case 28:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 238 "Gmsh.y"
     {
       char tmpstring[1024];
@@ -4150,12 +4172,12 @@ yyreduce:
       Free((yyvsp[(3) - (9)].c));
       Free((yyvsp[(8) - (9)].c));
       List_Delete((yyvsp[(5) - (9)].l));
-    ;}
+    }
     break;
 
   case 29:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 266 "Gmsh.y"
     { 
 #if defined(HAVE_POST)
@@ -4169,12 +4191,12 @@ yyreduce:
 	delete ViewData;
 #endif
       Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(2) - (6)].c));
-    ;}
+    }
     break;
 
   case 30:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 280 "Gmsh.y"
     {
 #if defined(HAVE_POST)
@@ -4185,12 +4207,12 @@ yyreduce:
       }
 #endif
       Free((yyvsp[(2) - (6)].c));
-    ;}
+    }
     break;
 
   case 31:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 291 "Gmsh.y"
     {
 #if defined(HAVE_POST)
@@ -4201,51 +4223,51 @@ yyreduce:
       }
 #endif
       Free((yyvsp[(2) - (6)].c));
-    ;}
+    }
     break;
 
   case 32:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 305 "Gmsh.y"
     {
 #if defined(HAVE_POST)
       ViewData = new PViewDataList(); 
 #endif
-    ;}
+    }
     break;
 
   case 38:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 319 "Gmsh.y"
-    { ViewCoord.push_back((yyvsp[(1) - (1)].d)); ;}
+    { ViewCoord.push_back((yyvsp[(1) - (1)].d)); }
     break;
 
   case 39:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 321 "Gmsh.y"
-    { ViewCoord.push_back((yyvsp[(3) - (3)].d)); ;}
+    { ViewCoord.push_back((yyvsp[(3) - (3)].d)); }
     break;
 
   case 40:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 326 "Gmsh.y"
-    { if(ViewValueList) ViewValueList->push_back((yyvsp[(1) - (1)].d)); ;}
+    { if(ViewValueList) ViewValueList->push_back((yyvsp[(1) - (1)].d)); }
     break;
 
   case 41:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 328 "Gmsh.y"
-    { if(ViewValueList) ViewValueList->push_back((yyvsp[(3) - (3)].d)); ;}
+    { if(ViewValueList) ViewValueList->push_back((yyvsp[(3) - (3)].d)); }
     break;
 
   case 42:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 333 "Gmsh.y"
     {
 #if defined(HAVE_POST)
@@ -4349,12 +4371,12 @@ yyreduce:
 #endif
       ViewCoord.clear();
       Free((yyvsp[(1) - (1)].c));
-    ;}
+    }
     break;
 
   case 43:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 437 "Gmsh.y"
     {
 #if defined(HAVE_POST)
@@ -4364,47 +4386,47 @@ yyreduce:
 	    ViewValueList->push_back(ViewCoord[3 * j + i]);
       }
 #endif
-    ;}
+    }
     break;
 
   case 44:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 447 "Gmsh.y"
     {
 #if defined(HAVE_POST)
       if(ViewValueList) (*ViewNumList)++;
 #endif
-    ;}
+    }
     break;
 
   case 45:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 456 "Gmsh.y"
     { 
 #if defined(HAVE_POST)
       for(int i = 0; i < (int)strlen((yyvsp[(1) - (1)].c)) + 1; i++) ViewData->T2C.push_back((yyvsp[(1) - (1)].c)[i]);
 #endif
       Free((yyvsp[(1) - (1)].c));
-    ;}
+    }
     break;
 
   case 46:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 463 "Gmsh.y"
     { 
 #if defined(HAVE_POST)
       for(int i = 0; i < (int)strlen((yyvsp[(3) - (3)].c)) + 1; i++) ViewData->T2C.push_back((yyvsp[(3) - (3)].c)[i]);
 #endif
       Free((yyvsp[(3) - (3)].c));
-    ;}
+    }
     break;
 
   case 47:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 473 "Gmsh.y"
     { 
 #if defined(HAVE_POST)
@@ -4413,47 +4435,47 @@ yyreduce:
       ViewData->T2D.push_back((yyvsp[(7) - (8)].d)); 
       ViewData->T2D.push_back(ViewData->T2C.size()); 
 #endif
-    ;}
+    }
     break;
 
   case 48:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 482 "Gmsh.y"
     {
 #if defined(HAVE_POST)
       ViewData->NbT2++;
 #endif
-    ;}
+    }
     break;
 
   case 49:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 491 "Gmsh.y"
     { 
 #if defined(HAVE_POST)
       for(int i = 0; i < (int)strlen((yyvsp[(1) - (1)].c)) + 1; i++) ViewData->T3C.push_back((yyvsp[(1) - (1)].c)[i]);
 #endif
       Free((yyvsp[(1) - (1)].c));
-    ;}
+    }
     break;
 
   case 50:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 498 "Gmsh.y"
     { 
 #if defined(HAVE_POST)
       for(int i = 0; i < (int)strlen((yyvsp[(3) - (3)].c)) + 1; i++) ViewData->T3C.push_back((yyvsp[(3) - (3)].c)[i]);
 #endif
       Free((yyvsp[(3) - (3)].c));
-    ;}
+    }
     break;
 
   case 51:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 508 "Gmsh.y"
     { 
 #if defined(HAVE_POST)
@@ -4461,23 +4483,23 @@ yyreduce:
       ViewData->T3D.push_back((yyvsp[(7) - (10)].d)); ViewData->T3D.push_back((yyvsp[(9) - (10)].d));
       ViewData->T3D.push_back(ViewData->T3C.size()); 
 #endif
-    ;}
+    }
     break;
 
   case 52:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 516 "Gmsh.y"
     {
 #if defined(HAVE_POST)
       ViewData->NbT3++;
 #endif
-    ;}
+    }
     break;
 
   case 53:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 526 "Gmsh.y"
     {
 #if defined(HAVE_POST)
@@ -4493,12 +4515,12 @@ yyreduce:
       ViewData->setInterpolationMatrices(type, ListOfListOfDouble2Matrix((yyvsp[(3) - (8)].l)), 
                                          ListOfListOfDouble2Matrix((yyvsp[(6) - (8)].l)));
 #endif
-    ;}
+    }
     break;
 
   case 54:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 545 "Gmsh.y"
     {
 #if defined(HAVE_POST)
@@ -4514,80 +4536,80 @@ yyreduce:
                                          ListOfListOfDouble2Matrix((yyvsp[(9) - (14)].l)), 
                                          ListOfListOfDouble2Matrix((yyvsp[(12) - (14)].l)));
 #endif
-    ;}
+    }
     break;
 
   case 55:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 564 "Gmsh.y"
     {
 #if defined(HAVE_POST)
       ViewValueList = &ViewData->Time;
 #endif
-    ;}
+    }
     break;
 
   case 56:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 570 "Gmsh.y"
     {
-    ;}
+    }
     break;
 
   case 57:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 577 "Gmsh.y"
-    { (yyval.i) = 0; ;}
+    { (yyval.i) = 0; }
     break;
 
   case 58:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 578 "Gmsh.y"
-    { (yyval.i) = 1; ;}
+    { (yyval.i) = 1; }
     break;
 
   case 59:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 579 "Gmsh.y"
-    { (yyval.i) = 2; ;}
+    { (yyval.i) = 2; }
     break;
 
   case 60:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 580 "Gmsh.y"
-    { (yyval.i) = 3; ;}
+    { (yyval.i) = 3; }
     break;
 
   case 61:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 581 "Gmsh.y"
-    { (yyval.i) = 4; ;}
+    { (yyval.i) = 4; }
     break;
 
   case 62:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 585 "Gmsh.y"
-    { (yyval.i) = 1; ;}
+    { (yyval.i) = 1; }
     break;
 
   case 63:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 586 "Gmsh.y"
-    { (yyval.i) = -1; ;}
+    { (yyval.i) = -1; }
     break;
 
   case 65:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 595 "Gmsh.y"
     {
       if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){
@@ -4613,12 +4635,12 @@ yyreduce:
 	}
       }
       Free((yyvsp[(1) - (4)].c));
-    ;}
+    }
     break;
 
   case 66:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 621 "Gmsh.y"
     {
       int index = (int)(yyvsp[(3) - (7)].d);
@@ -4645,12 +4667,12 @@ yyreduce:
 	}
       }
       Free((yyvsp[(1) - (7)].c));
-    ;}
+    }
     break;
 
   case 67:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 648 "Gmsh.y"
     {
       if(List_Nbr((yyvsp[(4) - (9)].l)) != List_Nbr((yyvsp[(8) - (9)].l))){
@@ -4690,12 +4712,12 @@ yyreduce:
       Free((yyvsp[(1) - (9)].c));
       List_Delete((yyvsp[(4) - (9)].l));
       List_Delete((yyvsp[(8) - (9)].l));
-    ;}
+    }
     break;
 
   case 68:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 688 "Gmsh.y"
     {
       if(gmsh_yysymbols.count((yyvsp[(1) - (6)].c)))
@@ -4705,12 +4727,12 @@ yyreduce:
         gmsh_yysymbols[(yyvsp[(1) - (6)].c)].push_back(*(double*)List_Pointer((yyvsp[(5) - (6)].l), i));
       Free((yyvsp[(1) - (6)].c));
       List_Delete((yyvsp[(5) - (6)].l));
-    ;}
+    }
     break;
 
   case 69:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 698 "Gmsh.y"
     {
       // appends to the list
@@ -4718,12 +4740,12 @@ yyreduce:
 	gmsh_yysymbols[(yyvsp[(1) - (6)].c)].push_back(*(double*)List_Pointer((yyvsp[(5) - (6)].l), i));
       Free((yyvsp[(1) - (6)].c));
       List_Delete((yyvsp[(5) - (6)].l));
-    ;}
+    }
     break;
 
   case 70:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 706 "Gmsh.y"
     {
       // remove from the list
@@ -4733,12 +4755,12 @@ yyreduce:
                                            *(double*)List_Pointer((yyvsp[(5) - (6)].l), i)));
       Free((yyvsp[(1) - (6)].c));
       List_Delete((yyvsp[(5) - (6)].l));
-    ;}
+    }
     break;
 
   case 71:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 716 "Gmsh.y"
     {
       if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c)))
@@ -4750,12 +4772,12 @@ yyreduce:
           gmsh_yysymbols[(yyvsp[(1) - (3)].c)][0] += (yyvsp[(2) - (3)].i);
       }
       Free((yyvsp[(1) - (3)].c));
-    ;}
+    }
     break;
 
   case 72:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 728 "Gmsh.y"
     {
       if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c)))
@@ -4767,23 +4789,23 @@ yyreduce:
 	gmsh_yysymbols[(yyvsp[(1) - (6)].c)][index] += (yyvsp[(5) - (6)].i);
       }
       Free((yyvsp[(1) - (6)].c));
-    ;}
+    }
     break;
 
   case 73:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 740 "Gmsh.y"
     { 
       gmsh_yystringsymbols[(yyvsp[(1) - (4)].c)] = std::string((yyvsp[(3) - (4)].c));
       Free((yyvsp[(1) - (4)].c));
       Free((yyvsp[(3) - (4)].c));
-    ;}
+    }
     break;
 
   case 74:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 749 "Gmsh.y"
     { 
       std::string tmp((yyvsp[(5) - (6)].c));
@@ -4794,7 +4816,7 @@ yyreduce:
 
   case 75:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 755 "Gmsh.y"
     { 
       std::string tmp((yyvsp[(8) - (9)].c));
@@ -4805,7 +4827,7 @@ yyreduce:
 
   case 76:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 764 "Gmsh.y"
     {
       double d = 0.;
@@ -4823,12 +4845,12 @@ yyreduce:
 	NumberOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), d);
       }
       Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(3) - (6)].c));
-    ;}
+    }
     break;
 
   case 77:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 782 "Gmsh.y"
     {
       double d = 0.;
@@ -4846,12 +4868,12 @@ yyreduce:
 	NumberOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), d);
       }
       Free((yyvsp[(1) - (9)].c)); Free((yyvsp[(6) - (9)].c));
-    ;}
+    }
     break;
 
   case 78:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 800 "Gmsh.y"
     {
       double d = 0.;
@@ -4860,12 +4882,12 @@ yyreduce:
 	NumberOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (5)].c), 0, (yyvsp[(3) - (5)].c), d);
       }
       Free((yyvsp[(1) - (5)].c)); Free((yyvsp[(3) - (5)].c));
-    ;}
+    }
     break;
 
   case 79:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 809 "Gmsh.y"
     {
       double d = 0.;
@@ -4874,32 +4896,32 @@ yyreduce:
 	NumberOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (8)].c), (int)(yyvsp[(3) - (8)].d), (yyvsp[(6) - (8)].c), d);
       }
       Free((yyvsp[(1) - (8)].c)); Free((yyvsp[(6) - (8)].c));
-    ;}
+    }
     break;
 
   case 80:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 821 "Gmsh.y"
     {
       ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (8)].c), 0, (yyvsp[(5) - (8)].c), (yyvsp[(7) - (8)].u));
       Free((yyvsp[(1) - (8)].c)); Free((yyvsp[(5) - (8)].c));
-    ;}
+    }
     break;
 
   case 81:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 826 "Gmsh.y"
     {
       ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (11)].c), (int)(yyvsp[(3) - (11)].d), (yyvsp[(8) - (11)].c), (yyvsp[(10) - (11)].u));
       Free((yyvsp[(1) - (11)].c)); Free((yyvsp[(8) - (11)].c));
-    ;}
+    }
     break;
 
   case 82:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 834 "Gmsh.y"
     {
       GmshColorTable *ct = GetColorTable(0);
@@ -4919,12 +4941,12 @@ yyreduce:
       }
       Free((yyvsp[(1) - (6)].c));
       List_Delete((yyvsp[(5) - (6)].l));
-    ;}
+    }
     break;
 
   case 83:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 854 "Gmsh.y"
     {
       GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (9)].d));
@@ -4944,12 +4966,12 @@ yyreduce:
       }
       Free((yyvsp[(1) - (9)].c));
       List_Delete((yyvsp[(8) - (9)].l));
-    ;}
+    }
     break;
 
   case 84:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 877 "Gmsh.y"
     {
 #if defined(HAVE_MESH)
@@ -4958,12 +4980,12 @@ yyreduce:
       else
 	yymsg(0, "Unknown command %s Field", (yyvsp[(1) - (5)].c));
 #endif
-    ;}
+    }
     break;
 
   case 85:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 886 "Gmsh.y"
     {
 #if defined(HAVE_MESH)
@@ -4971,12 +4993,12 @@ yyreduce:
 	yymsg(0, "Cannot create field %i of type '%s'", (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c));
 #endif
       Free((yyvsp[(6) - (7)].c));
-    ;}
+    }
     break;
 
   case 86:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 894 "Gmsh.y"
     {
 #if defined(HAVE_MESH)
@@ -4998,12 +5020,12 @@ yyreduce:
 	yymsg(0, "No field with id %i", (int)(yyvsp[(3) - (9)].d));
 #endif
       Free((yyvsp[(6) - (9)].c));
-    ;}
+    }
     break;
 
   case 87:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 916 "Gmsh.y"
     {
 #if defined(HAVE_MESH)
@@ -5026,12 +5048,12 @@ yyreduce:
 #endif
       Free((yyvsp[(6) - (9)].c));
       Free((yyvsp[(8) - (9)].c));
-    ;}
+    }
     break;
 
   case 88:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 939 "Gmsh.y"
     {
 #if defined(HAVE_MESH)
@@ -5056,12 +5078,12 @@ yyreduce:
 #endif
       Free((yyvsp[(6) - (11)].c));
       List_Delete((yyvsp[(9) - (11)].l));
-    ;}
+    }
     break;
 
   case 89:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 967 "Gmsh.y"
     {
 #if defined(HAVE_PLUGINS)
@@ -5073,12 +5095,12 @@ yyreduce:
       }
 #endif
       Free((yyvsp[(3) - (9)].c)); Free((yyvsp[(6) - (9)].c));
-    ;}
+    }
     break;
 
   case 90:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 979 "Gmsh.y"
     {
 #if defined(HAVE_PLUGINS)
@@ -5090,12 +5112,12 @@ yyreduce:
       }
 #endif
       Free((yyvsp[(3) - (9)].c)); Free((yyvsp[(6) - (9)].c)); Free((yyvsp[(8) - (9)].c));
-    ;}
+    }
     break;
 
   case 94:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 997 "Gmsh.y"
     {
       std::string key((yyvsp[(3) - (3)].c));
@@ -5106,12 +5128,12 @@ yyreduce:
         gmsh_yysymbols[key] = val;
       }
       Free((yyvsp[(3) - (3)].c));
-    ;}
+    }
     break;
 
   case 95:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1008 "Gmsh.y"
     {
       std::string key((yyvsp[(3) - (5)].c));
@@ -5122,19 +5144,19 @@ yyreduce:
         gmsh_yysymbols[key] = val;
       }
       Free((yyvsp[(3) - (5)].c));
-    ;}
+    }
     break;
 
   case 96:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1019 "Gmsh.y"
-    { floatOptions.clear(); charOptions.clear(); ;}
+    { floatOptions.clear(); charOptions.clear(); }
     break;
 
   case 97:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1021 "Gmsh.y"
     { 
       std::string key((yyvsp[(3) - (9)].c));
@@ -5143,12 +5165,12 @@ yyreduce:
         Msg::ExchangeOnelabParameter(key, val, floatOptions, charOptions);
         gmsh_yysymbols[key] = val;
       }
-    ;}
+    }
     break;
 
   case 100:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1037 "Gmsh.y"
     {
       std::string key((yyvsp[(2) - (3)].c));
@@ -5159,12 +5181,12 @@ yyreduce:
       }
       Free((yyvsp[(2) - (3)].c));
       List_Delete((yyvsp[(3) - (3)].l));
-    ;}
+    }
     break;
 
   case 101:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1048 "Gmsh.y"
     {
       std::string key((yyvsp[(2) - (3)].c));
@@ -5172,42 +5194,42 @@ yyreduce:
       charOptions[key].push_back(val);
       Free((yyvsp[(2) - (3)].c));
       Free((yyvsp[(3) - (3)].c));
-    ;}
+    }
     break;
 
   case 102:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1061 "Gmsh.y"
     { 
       (yyval.i) = (int)(yyvsp[(1) - (1)].d); 
-    ;}
+    }
     break;
 
   case 103:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1065 "Gmsh.y"
     { 
       (yyval.i) = GModel::current()->setPhysicalName
         (std::string((yyvsp[(1) - (1)].c)), curPhysDim, 
          ++GModel::current()->getGEOInternals()->MaxPhysicalNum);
       Free((yyvsp[(1) - (1)].c));
-    ;}
+    }
     break;
 
   case 104:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1075 "Gmsh.y"
     {
       (yyval.l) = 0;
-    ;}
+    }
     break;
 
   case 105:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1079 "Gmsh.y"
     {
       (yyval.l) = List_Create(1, 1, sizeof(Vertex*));
@@ -5217,30 +5239,30 @@ yyreduce:
       else{
 	List_Add((yyval.l), &v);
       }
-    ;}
+    }
     break;
 
   case 106:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1091 "Gmsh.y"
     {
       for(int i = 0; i < 4; i++) (yyval.v)[i] = 0.;
-    ;}
+    }
     break;
 
   case 107:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1095 "Gmsh.y"
     {
       for(int i = 0; i < 4; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i];
-    ;}
+    }
     break;
 
   case 108:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1105 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (7)].d);
@@ -5263,21 +5285,21 @@ yyreduce:
       }
       (yyval.s).Type = MSH_POINT;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 109:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1128 "Gmsh.y"
     {
       curPhysDim = 0;
-    ;}
+    }
     break;
 
   case 110:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1132 "Gmsh.y"
     {
       int num = (int)(yyvsp[(5) - (9)].i);
@@ -5293,12 +5315,12 @@ yyreduce:
       List_Delete((yyvsp[(8) - (9)].l));
       (yyval.s).Type = MSH_PHYSICAL_POINT;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 111:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1148 "Gmsh.y"
     {      
       for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){
@@ -5317,12 +5339,12 @@ yyreduce:
       // dummy values
       (yyval.s).Type = 0;
       (yyval.s).Num = 0;
-    ;}
+    }
     break;
 
   case 112:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1170 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (7)].d);
@@ -5340,12 +5362,12 @@ yyreduce:
       List_Delete((yyvsp[(6) - (7)].l));
       (yyval.s).Type = MSH_SEGM_LINE;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 113:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1188 "Gmsh.y"
     {
       for (int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){
@@ -5366,12 +5388,12 @@ yyreduce:
 	  }
 	}
       }
-    ;}
+    }
     break;
 
   case 114:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1209 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (7)].d);
@@ -5389,12 +5411,12 @@ yyreduce:
       List_Delete((yyvsp[(6) - (7)].l));
       (yyval.s).Type = MSH_SEGM_SPLN;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 115:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1227 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (8)].d);
@@ -5424,12 +5446,12 @@ yyreduce:
       List_Delete((yyvsp[(6) - (8)].l));
       (yyval.s).Type = MSH_SEGM_CIRC;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 116:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1257 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (8)].d);
@@ -5459,12 +5481,12 @@ yyreduce:
       List_Delete((yyvsp[(6) - (8)].l));
       (yyval.s).Type = MSH_SEGM_ELLI;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 117:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1287 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (7)].d);
@@ -5482,12 +5504,12 @@ yyreduce:
       List_Delete((yyvsp[(6) - (7)].l));
       (yyval.s).Type = MSH_SEGM_BSPLN;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 118:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1305 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (7)].d);
@@ -5505,12 +5527,12 @@ yyreduce:
       List_Delete((yyvsp[(6) - (7)].l));
       (yyval.s).Type = MSH_SEGM_BEZIER;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 119:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1323 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (11)].d);
@@ -5536,12 +5558,12 @@ yyreduce:
       List_Delete((yyvsp[(8) - (11)].l));
       (yyval.s).Type = MSH_SEGM_NURBS;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 120:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1349 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (8)].d);
@@ -5558,12 +5580,12 @@ yyreduce:
       List_Delete((yyvsp[(7) - (8)].l));
       (yyval.s).Type = MSH_SEGM_LOOP;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 121:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1366 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (8)].d);
@@ -5581,21 +5603,21 @@ yyreduce:
       List_Delete((yyvsp[(7) - (8)].l));
       (yyval.s).Type = MSH_SEGM_COMPOUND;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 122:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1384 "Gmsh.y"
     {
       curPhysDim = 1;
-    ;}
+    }
     break;
 
   case 123:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1388 "Gmsh.y"
     {
       int num = (int)(yyvsp[(5) - (9)].i);
@@ -5611,12 +5633,12 @@ yyreduce:
       List_Delete((yyvsp[(8) - (9)].l));
       (yyval.s).Type = MSH_PHYSICAL_LINE;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 124:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1407 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (8)].d);
@@ -5634,12 +5656,12 @@ yyreduce:
       List_Delete((yyvsp[(7) - (8)].l));
       (yyval.s).Type = MSH_SURF_PLAN;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 125:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1425 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (9)].d), type = 0;
@@ -5678,46 +5700,46 @@ yyreduce:
       List_Delete((yyvsp[(7) - (9)].l));
       (yyval.s).Type = type;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 126:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1464 "Gmsh.y"
     {
       myGmshSurface = 0;
       (yyval.s).Type = 0;
       (yyval.s).Num = 0;
-    ;}
+    }
     break;
 
   case 127:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1470 "Gmsh.y"
     {
       myGmshSurface = gmshSurface::getSurface((int)(yyvsp[(3) - (4)].d));
       (yyval.s).Type = 0;
       (yyval.s).Num = 0;
-    ;}
+    }
     break;
 
   case 128:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1476 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (10)].d);
       myGmshSurface = gmshParametricSurface::NewParametricSurface(num, (yyvsp[(7) - (10)].c), (yyvsp[(8) - (10)].c), (yyvsp[(9) - (10)].c));
       (yyval.s).Type = 0;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 129:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1483 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (7)].d);
@@ -5742,12 +5764,12 @@ yyreduce:
       }
       (yyval.s).Type = 0;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 130:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1508 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (7)].d);
@@ -5772,12 +5794,12 @@ yyreduce:
       }
       (yyval.s).Type = 0;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 131:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1533 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (8)].d);
@@ -5793,12 +5815,12 @@ yyreduce:
       List_Delete((yyvsp[(7) - (8)].l));
       (yyval.s).Type = MSH_SURF_LOOP;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 132:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1549 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (8)].d);
@@ -5815,12 +5837,12 @@ yyreduce:
       List_Delete((yyvsp[(7) - (8)].l));
       (yyval.s).Type = MSH_SURF_COMPOUND;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 133:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1567 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (12)].d);
@@ -5850,21 +5872,21 @@ yyreduce:
       Free((yyvsp[(8) - (12)].c));
       (yyval.s).Type = MSH_SURF_COMPOUND;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 134:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1597 "Gmsh.y"
     {
       curPhysDim = 2;
-    ;}
+    }
     break;
 
   case 135:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1601 "Gmsh.y"
     {
       int num = (int)(yyvsp[(5) - (9)].i);
@@ -5880,12 +5902,12 @@ yyreduce:
       List_Delete((yyvsp[(8) - (9)].l));
       (yyval.s).Type = MSH_PHYSICAL_SURFACE;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 136:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1621 "Gmsh.y"
     {
       yymsg(0, "'Complex Volume' command is deprecated: use 'Volume' instead");
@@ -5903,12 +5925,12 @@ yyreduce:
       List_Delete((yyvsp[(7) - (8)].l));
       (yyval.s).Type = MSH_VOLUME;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 137:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1639 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (7)].d);
@@ -5925,12 +5947,12 @@ yyreduce:
       List_Delete((yyvsp[(6) - (7)].l));
       (yyval.s).Type = MSH_VOLUME;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 138:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1656 "Gmsh.y"
     {
       int num = (int)(yyvsp[(4) - (8)].d);
@@ -5946,21 +5968,21 @@ yyreduce:
       List_Delete((yyvsp[(7) - (8)].l));
       (yyval.s).Type = MSH_VOLUME_COMPOUND;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 139:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1672 "Gmsh.y"
     {
       curPhysDim = 3;
-    ;}
+    }
     break;
 
   case 140:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1676 "Gmsh.y"
     {
       int num = (int)(yyvsp[(5) - (9)].i);
@@ -5976,52 +5998,52 @@ yyreduce:
       List_Delete((yyvsp[(8) - (9)].l));
       (yyval.s).Type = MSH_PHYSICAL_VOLUME;
       (yyval.s).Num = num;
-    ;}
+    }
     break;
 
   case 141:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1698 "Gmsh.y"
     {
       TranslateShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(4) - (5)].l));
       (yyval.l) = (yyvsp[(4) - (5)].l);
-    ;}
+    }
     break;
 
   case 142:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1703 "Gmsh.y"
     {
       RotateShapes((yyvsp[(3) - (11)].v)[0], (yyvsp[(3) - (11)].v)[1], (yyvsp[(3) - (11)].v)[2], (yyvsp[(5) - (11)].v)[0], (yyvsp[(5) - (11)].v)[1], (yyvsp[(5) - (11)].v)[2], (yyvsp[(7) - (11)].d), (yyvsp[(10) - (11)].l));
       (yyval.l) = (yyvsp[(10) - (11)].l);
-    ;}
+    }
     break;
 
   case 143:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1708 "Gmsh.y"
     {
       SymmetryShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(2) - (5)].v)[3], (yyvsp[(4) - (5)].l));
       (yyval.l) = (yyvsp[(4) - (5)].l);
-    ;}
+    }
     break;
 
   case 144:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1713 "Gmsh.y"
     {
       DilatShapes((yyvsp[(3) - (9)].v)[0], (yyvsp[(3) - (9)].v)[1], (yyvsp[(3) - (9)].v)[2], (yyvsp[(5) - (9)].d), (yyvsp[(8) - (9)].l));
       (yyval.l) = (yyvsp[(8) - (9)].l);
-    ;}
+    }
     break;
 
   case 145:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1718 "Gmsh.y"
     {
       (yyval.l) = List_Create(3, 3, sizeof(Shape));
@@ -6044,23 +6066,23 @@ yyreduce:
       }
       Free((yyvsp[(1) - (4)].c));
       List_Delete((yyvsp[(3) - (4)].l));
-    ;}
+    }
     break;
 
   case 146:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1741 "Gmsh.y"
     { 
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       IntersectCurvesWithSurface((yyvsp[(4) - (9)].l), (int)(yyvsp[(8) - (9)].d), (yyval.l));
       List_Delete((yyvsp[(4) - (9)].l));
-    ;}
+    }
     break;
 
   case 147:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1747 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape*));
@@ -6068,44 +6090,44 @@ yyreduce:
       List_Delete((yyvsp[(7) - (9)].l));
       SplitCurve((int)(yyvsp[(4) - (9)].d), tmp, (yyval.l));
       List_Delete(tmp);
-    ;}
+    }
     break;
 
   case 148:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1757 "Gmsh.y"
-    { (yyval.l) = (yyvsp[(1) - (1)].l); ;}
+    { (yyval.l) = (yyvsp[(1) - (1)].l); }
     break;
 
   case 149:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1758 "Gmsh.y"
-    { (yyval.l) = (yyvsp[(1) - (1)].l); ;}
+    { (yyval.l) = (yyvsp[(1) - (1)].l); }
     break;
 
   case 150:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1763 "Gmsh.y"
     {
       (yyval.l) = List_Create(3, 3, sizeof(Shape));
-    ;}
+    }
     break;
 
   case 151:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1767 "Gmsh.y"
     {
       List_Add((yyval.l), &(yyvsp[(2) - (2)].s));
-    ;}
+    }
     break;
 
   case 152:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1771 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){
@@ -6128,12 +6150,12 @@ yyreduce:
 	    yymsg(1, "Unknown point %d", TheShape.Num);
 	}
       }
-    ;}
+    }
     break;
 
   case 153:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1794 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){
@@ -6156,12 +6178,12 @@ yyreduce:
 	    yymsg(1, "Unknown curve %d", TheShape.Num);
 	}
       }
-    ;}
+    }
     break;
 
   case 154:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1817 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){
@@ -6184,12 +6206,12 @@ yyreduce:
 	    yymsg(1, "Unknown surface %d", TheShape.Num);
 	}
       }
-    ;}
+    }
     break;
 
   case 155:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1840 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){
@@ -6212,12 +6234,12 @@ yyreduce:
 	    yymsg(1, "Unknown volume %d", TheShape.Num);
 	}
       }
-    ;}
+    }
     break;
 
   case 156:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1868 "Gmsh.y"
     {
 #if defined(HAVE_DINTEGRATION)
@@ -6238,12 +6260,12 @@ yyreduce:
       else
         yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (8)].d));
 #endif
-    ;}
+    }
     break;
 
   case 157:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1889 "Gmsh.y"
     {
 #if defined(HAVE_DINTEGRATION)
@@ -6266,12 +6288,12 @@ yyreduce:
 	 Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l);
       }
 #endif
-    ;}
+    }
     break;
 
   case 158:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1913 "Gmsh.y"
     {
 #if defined(HAVE_DINTEGRATION)
@@ -6291,12 +6313,12 @@ yyreduce:
       else
         yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (14)].d));
 #endif
-    ;}
+    }
     break;
 
   case 159:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1934 "Gmsh.y"
     {
 #if defined(HAVE_DINTEGRATION)
@@ -6317,12 +6339,12 @@ yyreduce:
       else
         yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (16)].d));
 #endif
-    ;}
+    }
     break;
 
   case 160:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1955 "Gmsh.y"
     {
 #if defined(HAVE_DINTEGRATION)
@@ -6342,12 +6364,12 @@ yyreduce:
       else
         yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (12)].d));
 #endif
-    ;}
+    }
     break;
 
   case 161:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 1975 "Gmsh.y"
     {
 #if defined(HAVE_DINTEGRATION)
@@ -6459,12 +6481,12 @@ yyreduce:
         yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (8)].d));
       Free((yyvsp[(2) - (8)].c));
 #endif
-    ;}
+    }
     break;
 
   case 162:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2087 "Gmsh.y"
     {
 #if defined(HAVE_DINTEGRATION)
@@ -6483,12 +6505,12 @@ yyreduce:
         yymsg(0, "Wrong levelset definition");
       Free((yyvsp[(2) - (8)].c)); Free((yyvsp[(7) - (8)].c));
 #endif
-    ;}
+    }
     break;
 
   case 163:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2106 "Gmsh.y"
     {
 #if defined(HAVE_DINTEGRATION)
@@ -6526,12 +6548,12 @@ yyreduce:
         yymsg(0, "Wrong levelset definition");
       Free((yyvsp[(2) - (6)].c));
 #endif
-    ;}
+    }
     break;
 
   case 164:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2145 "Gmsh.y"
     {
 #if defined(HAVE_DINTEGRATION)
@@ -6634,12 +6656,12 @@ yyreduce:
         yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (14)].d));
       Free((yyvsp[(2) - (14)].c));
 #endif
-    ;}
+    }
     break;
 
   case 165:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2253 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){
@@ -6648,23 +6670,23 @@ yyreduce:
 	DeleteShape(TheShape.Type, TheShape.Num);
       }
       List_Delete((yyvsp[(3) - (4)].l));
-    ;}
+    }
     break;
 
   case 166:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2262 "Gmsh.y"
     {
 #if defined(HAVE_MESH)
       GModel::current()->getFields()->deleteField((int)(yyvsp[(4) - (6)].d));
 #endif
-    ;}
+    }
     break;
 
   case 167:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2268 "Gmsh.y"
     {
 #if defined(HAVE_POST)
@@ -6679,12 +6701,12 @@ yyreduce:
 	yymsg(0, "Unknown command 'Delete %s'", (yyvsp[(2) - (6)].c));
 #endif
       Free((yyvsp[(2) - (6)].c));
-    ;}
+    }
     break;
 
   case 168:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2283 "Gmsh.y"
     {
       if(!strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){
@@ -6712,12 +6734,12 @@ yyreduce:
 	  yymsg(0, "Unknown object or expression to delete '%s'", (yyvsp[(2) - (3)].c));
       }
       Free((yyvsp[(2) - (3)].c));
-    ;}
+    }
     break;
 
   case 169:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2311 "Gmsh.y"
     {
 #if defined(HAVE_POST)
@@ -6729,12 +6751,12 @@ yyreduce:
 	yymsg(0, "Unknown command 'Delete %s %s'", (yyvsp[(2) - (4)].c), (yyvsp[(3) - (4)].c));
 #endif
       Free((yyvsp[(2) - (4)].c)); Free((yyvsp[(3) - (4)].c));
-    ;}
+    }
     break;
 
   case 170:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2328 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){
@@ -6743,34 +6765,34 @@ yyreduce:
 	ColorShape(TheShape.Type, TheShape.Num, (yyvsp[(2) - (5)].u));
       }
       List_Delete((yyvsp[(4) - (5)].l));      
-    ;}
+    }
     break;
 
   case 171:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2342 "Gmsh.y"
     {
       for(int i = 0; i < 4; i++)
 	VisibilityShape((yyvsp[(2) - (3)].c), i, 1);
       Free((yyvsp[(2) - (3)].c));
-    ;}
+    }
     break;
 
   case 172:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2348 "Gmsh.y"
     {
       for(int i = 0; i < 4; i++)
 	VisibilityShape((yyvsp[(2) - (3)].c), i, 0);
       Free((yyvsp[(2) - (3)].c));
-    ;}
+    }
     break;
 
   case 173:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2354 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){
@@ -6779,12 +6801,12 @@ yyreduce:
 	VisibilityShape(TheShape.Type, TheShape.Num, 1);
       }
       List_Delete((yyvsp[(3) - (4)].l));
-    ;}
+    }
     break;
 
   case 174:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2363 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){
@@ -6793,12 +6815,12 @@ yyreduce:
 	VisibilityShape(TheShape.Type, TheShape.Num, 0);
       }
       List_Delete((yyvsp[(3) - (4)].l));
-    ;}
+    }
     break;
 
   case 175:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2377 "Gmsh.y"
     {
       if(!strcmp((yyvsp[(1) - (3)].c), "Include")){
@@ -6840,12 +6862,12 @@ yyreduce:
       else
 	yymsg(0, "Unknown command '%s'", (yyvsp[(1) - (3)].c));
       Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(2) - (3)].c));
-    ;}
+    }
     break;
 
   case 176:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2419 "Gmsh.y"
     {
 #if defined(HAVE_POST)
@@ -6862,12 +6884,12 @@ yyreduce:
 	yymsg(0, "Unknown command '%s'", (yyvsp[(1) - (7)].c));
 #endif
       Free((yyvsp[(1) - (7)].c)); Free((yyvsp[(2) - (7)].c)); Free((yyvsp[(6) - (7)].c));
-    ;}
+    }
     break;
 
   case 177:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2436 "Gmsh.y"
     {
 #if defined(HAVE_POST) && defined(HAVE_MESH)
@@ -6882,12 +6904,12 @@ yyreduce:
 	yymsg(0, "Unknown command '%s'", (yyvsp[(1) - (7)].c));
 #endif
       Free((yyvsp[(1) - (7)].c)); Free((yyvsp[(2) - (7)].c)); Free((yyvsp[(3) - (7)].c));
-    ;}
+    }
     break;
 
   case 178:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2451 "Gmsh.y"
     {
       if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){
@@ -6906,12 +6928,12 @@ yyreduce:
       else
 	yymsg(0, "Unknown command '%s'", (yyvsp[(1) - (3)].c));
       Free((yyvsp[(1) - (3)].c));
-    ;}
+    }
     break;
 
   case 179:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2470 "Gmsh.y"
     {
 #if defined(HAVE_PLUGINS)
@@ -6923,12 +6945,12 @@ yyreduce:
        }
 #endif
        Free((yyvsp[(3) - (7)].c)); Free((yyvsp[(6) - (7)].c));
-     ;}
+     }
     break;
 
   case 180:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2482 "Gmsh.y"
     {
 #if defined(HAVE_POST)
@@ -6952,93 +6974,93 @@ yyreduce:
 	yymsg(0, "Unknown 'Combine' command");
 #endif
       Free((yyvsp[(2) - (3)].c));
-    ;}
+    }
     break;
 
   case 181:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2506 "Gmsh.y"
     {
       exit(0);
-    ;}
+    }
     break;
 
   case 182:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2510 "Gmsh.y"
     {
       // FIXME: this is a hack to force a transfer from the old DB to
       // the new DB. This will become unnecessary if/when we fill the 
       // GModel directly during parsing.
       GModel::current()->importGEOInternals();
-    ;}
+    }
     break;
 
   case 183:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2517 "Gmsh.y"
     {
       CTX::instance()->forcedBBox = 0;
       GModel::current()->importGEOInternals();
       SetBoundingBox();
-    ;}
+    }
     break;
 
   case 184:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2523 "Gmsh.y"
     {
       CTX::instance()->forcedBBox = 1;
       SetBoundingBox((yyvsp[(3) - (15)].d), (yyvsp[(5) - (15)].d), (yyvsp[(7) - (15)].d), (yyvsp[(9) - (15)].d), (yyvsp[(11) - (15)].d), (yyvsp[(13) - (15)].d));
-    ;}
+    }
     break;
 
   case 185:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2528 "Gmsh.y"
     {
 #if defined(HAVE_OPENGL)
       drawContext::global()->draw();
 #endif
-    ;}
+    }
     break;
 
   case 186:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2534 "Gmsh.y"
     {
       GModel::current()->createTopologyFromMesh();
-    ;}
+    }
     break;
 
   case 187:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2538 "Gmsh.y"
     {
       GModel::current()->createTopologyFromMesh(1);
-    ;}
+    }
     break;
 
   case 188:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2542 "Gmsh.y"
     {
       GModel::current()->importGEOInternals();
       GModel::current()->refineMesh(CTX::instance()->mesh.secondOrderLinear);
-    ;}
+    }
     break;
 
   case 189:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2552 "Gmsh.y"
     {
       LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d);
@@ -7055,12 +7077,12 @@ yyreduce:
 	yymsg(0, "Reached maximum number of imbricated loops");
 	ImbricatedLoop = MAX_RECUR_LOOPS - 1;
       }
-    ;}
+    }
     break;
 
   case 190:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2569 "Gmsh.y"
     {
       LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d);
@@ -7077,12 +7099,12 @@ yyreduce:
 	yymsg(0, "Reached maximum number of imbricated loops");
 	ImbricatedLoop = MAX_RECUR_LOOPS - 1;
       }
-    ;}
+    }
     break;
 
   case 191:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2586 "Gmsh.y"
     {
       LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d);
@@ -7101,12 +7123,12 @@ yyreduce:
 	yymsg(0, "Reached maximum number of imbricated loops");
 	ImbricatedLoop = MAX_RECUR_LOOPS - 1;
       }
-    ;}
+    }
     break;
 
   case 192:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2605 "Gmsh.y"
     {
       LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d);
@@ -7125,12 +7147,12 @@ yyreduce:
 	yymsg(0, "Reached maximum number of imbricated loops");
 	ImbricatedLoop = MAX_RECUR_LOOPS - 1;
       }
-    ;}
+    }
     break;
 
   case 193:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2624 "Gmsh.y"
     {
       if(ImbricatedLoop <= 0){
@@ -7160,12 +7182,12 @@ yyreduce:
 	else
 	  ImbricatedLoop--;
       }
-    ;}
+    }
     break;
 
   case 194:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2654 "Gmsh.y"
     {
       if(!FunctionManager::Instance()->createFunction
@@ -7173,52 +7195,52 @@ yyreduce:
 	yymsg(0, "Redefinition of function %s", (yyvsp[(2) - (2)].c));
       skip_until(NULL, "Return");
       //FIXME: wee leak $2
-    ;}
+    }
     break;
 
   case 195:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2662 "Gmsh.y"
     {
       if(!FunctionManager::Instance()->leaveFunction
          (&gmsh_yyin, gmsh_yyname, gmsh_yylineno))
 	yymsg(0, "Error while exiting function");
-    ;}
+    }
     break;
 
   case 196:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2668 "Gmsh.y"
     {
       if(!FunctionManager::Instance()->enterFunction
          ((yyvsp[(2) - (3)].c), &gmsh_yyin, gmsh_yyname, gmsh_yylineno))
 	yymsg(0, "Unknown function %s", (yyvsp[(2) - (3)].c));
       //FIXME: wee leak $2
-    ;}
+    }
     break;
 
   case 197:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2675 "Gmsh.y"
     {
       if(!(yyvsp[(3) - (4)].d)) skip_until("If", "EndIf");
-    ;}
+    }
     break;
 
   case 198:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2679 "Gmsh.y"
     {
-    ;}
+    }
     break;
 
   case 199:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2688 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
@@ -7226,12 +7248,12 @@ yyreduce:
 		    (yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
 		    NULL, (yyval.l));
       List_Delete((yyvsp[(4) - (5)].l));
-    ;}
+    }
     break;
 
   case 200:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2696 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
@@ -7239,12 +7261,12 @@ yyreduce:
 		    0., 0., 0., (yyvsp[(3) - (11)].v)[0], (yyvsp[(3) - (11)].v)[1], (yyvsp[(3) - (11)].v)[2], (yyvsp[(5) - (11)].v)[0], (yyvsp[(5) - (11)].v)[1], (yyvsp[(5) - (11)].v)[2], (yyvsp[(7) - (11)].d),
 		    NULL, (yyval.l));
       List_Delete((yyvsp[(10) - (11)].l));
-    ;}
+    }
     break;
 
   case 201:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2704 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
@@ -7252,22 +7274,22 @@ yyreduce:
 		    (yyvsp[(3) - (13)].v)[0], (yyvsp[(3) - (13)].v)[1], (yyvsp[(3) - (13)].v)[2], (yyvsp[(5) - (13)].v)[0], (yyvsp[(5) - (13)].v)[1], (yyvsp[(5) - (13)].v)[2], (yyvsp[(7) - (13)].v)[0], (yyvsp[(7) - (13)].v)[1], (yyvsp[(7) - (13)].v)[2], (yyvsp[(9) - (13)].d),
 		    NULL, (yyval.l));
       List_Delete((yyvsp[(12) - (13)].l));
-    ;}
+    }
     break;
 
   case 202:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2712 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
-    ;}
+    }
     break;
 
   case 203:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2717 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
@@ -7275,22 +7297,22 @@ yyreduce:
 		    (yyvsp[(2) - (7)].v)[0], (yyvsp[(2) - (7)].v)[1], (yyvsp[(2) - (7)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
 		    &extr, (yyval.l));
       List_Delete((yyvsp[(4) - (7)].l));
-    ;}
+    }
     break;
 
   case 204:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2725 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
-    ;}
+    }
     break;
 
   case 205:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2730 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
@@ -7298,22 +7320,22 @@ yyreduce:
 		    0., 0., 0., (yyvsp[(3) - (13)].v)[0], (yyvsp[(3) - (13)].v)[1], (yyvsp[(3) - (13)].v)[2], (yyvsp[(5) - (13)].v)[0], (yyvsp[(5) - (13)].v)[1], (yyvsp[(5) - (13)].v)[2], (yyvsp[(7) - (13)].d),
 		    &extr, (yyval.l));
       List_Delete((yyvsp[(10) - (13)].l));
-    ;}
+    }
     break;
 
   case 206:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2738 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
-    ;}
+    }
     break;
 
   case 207:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2743 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
@@ -7321,356 +7343,356 @@ yyreduce:
 		    (yyvsp[(3) - (15)].v)[0], (yyvsp[(3) - (15)].v)[1], (yyvsp[(3) - (15)].v)[2], (yyvsp[(5) - (15)].v)[0], (yyvsp[(5) - (15)].v)[1], (yyvsp[(5) - (15)].v)[2], (yyvsp[(7) - (15)].v)[0], (yyvsp[(7) - (15)].v)[1], (yyvsp[(7) - (15)].v)[2], (yyvsp[(9) - (15)].d),
 		    &extr, (yyval.l));
       List_Delete((yyvsp[(12) - (15)].l));
-    ;}
+    }
     break;
 
   case 208:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2751 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
-    ;}
+    }
     break;
 
   case 209:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2756 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
 		    &extr, (yyval.l));
       List_Delete((yyvsp[(3) - (6)].l));
-    ;}
+    }
     break;
 
   case 210:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2764 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), 
 		   (yyvsp[(6) - (8)].v)[0], (yyvsp[(6) - (8)].v)[1], (yyvsp[(6) - (8)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
 		   NULL, (yyval.l));
-    ;}
+    }
     break;
 
   case 211:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2771 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), 
 		   (yyvsp[(6) - (8)].v)[0], (yyvsp[(6) - (8)].v)[1], (yyvsp[(6) - (8)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
 		   NULL, (yyval.l));
-    ;}
+    }
     break;
 
   case 212:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2778 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), 
 		   (yyvsp[(6) - (8)].v)[0], (yyvsp[(6) - (8)].v)[1], (yyvsp[(6) - (8)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
 		   NULL, (yyval.l));
-    ;}
+    }
     break;
 
   case 213:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2785 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), 
 		   0., 0., 0., (yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], (yyvsp[(8) - (12)].v)[0], (yyvsp[(8) - (12)].v)[1], (yyvsp[(8) - (12)].v)[2], (yyvsp[(10) - (12)].d),
 		   NULL, (yyval.l));
-    ;}
+    }
     break;
 
   case 214:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2792 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), 
 		   0., 0., 0., (yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], (yyvsp[(8) - (12)].v)[0], (yyvsp[(8) - (12)].v)[1], (yyvsp[(8) - (12)].v)[2], (yyvsp[(10) - (12)].d),
 		   NULL, (yyval.l));
-    ;}
+    }
     break;
 
   case 215:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2799 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), 
 		   0., 0., 0., (yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], (yyvsp[(8) - (12)].v)[0], (yyvsp[(8) - (12)].v)[1], (yyvsp[(8) - (12)].v)[2], (yyvsp[(10) - (12)].d),
 		   NULL, (yyval.l));
-    ;}
+    }
     break;
 
   case 216:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2806 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), 
 		   (yyvsp[(6) - (14)].v)[0], (yyvsp[(6) - (14)].v)[1], (yyvsp[(6) - (14)].v)[2], (yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2], (yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2], (yyvsp[(12) - (14)].d),
 		   NULL, (yyval.l));
-    ;}
+    }
     break;
 
   case 217:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2813 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), 
 		   (yyvsp[(6) - (14)].v)[0], (yyvsp[(6) - (14)].v)[1], (yyvsp[(6) - (14)].v)[2], (yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2], (yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2], (yyvsp[(12) - (14)].d),
 		   NULL, (yyval.l));
-    ;}
+    }
     break;
 
   case 218:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2820 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), 
 		   (yyvsp[(6) - (14)].v)[0], (yyvsp[(6) - (14)].v)[1], (yyvsp[(6) - (14)].v)[2], (yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2], (yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2], (yyvsp[(12) - (14)].d),
 		   NULL, (yyval.l));
-    ;}
+    }
     break;
 
   case 219:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2827 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
-    ;}
+    }
     break;
 
   case 220:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2832 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), 
 		   (yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
 		   &extr, (yyval.l));
-    ;}
+    }
     break;
 
   case 221:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2839 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
-    ;}
+    }
     break;
 
   case 222:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2844 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), 
 		   (yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
 		   &extr, (yyval.l));
-    ;}
+    }
     break;
 
   case 223:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2851 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
-    ;}
+    }
     break;
 
   case 224:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2856 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), 
 		   (yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
 		   &extr, (yyval.l));
-    ;}
+    }
     break;
 
   case 225:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2863 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
-    ;}
+    }
     break;
 
   case 226:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2868 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), 
 		   0., 0., 0., (yyvsp[(6) - (16)].v)[0], (yyvsp[(6) - (16)].v)[1], (yyvsp[(6) - (16)].v)[2], (yyvsp[(8) - (16)].v)[0], (yyvsp[(8) - (16)].v)[1], (yyvsp[(8) - (16)].v)[2], (yyvsp[(10) - (16)].d),
 		   &extr, (yyval.l));
-    ;}
+    }
     break;
 
   case 227:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2875 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
-    ;}
+    }
     break;
 
   case 228:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2880 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), 
 		   0., 0., 0., (yyvsp[(6) - (16)].v)[0], (yyvsp[(6) - (16)].v)[1], (yyvsp[(6) - (16)].v)[2], (yyvsp[(8) - (16)].v)[0], (yyvsp[(8) - (16)].v)[1], (yyvsp[(8) - (16)].v)[2], (yyvsp[(10) - (16)].d),
 		   &extr, (yyval.l));
-    ;}
+    }
     break;
 
   case 229:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2887 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
-    ;}
+    }
     break;
 
   case 230:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2892 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), 
 		   0., 0., 0., (yyvsp[(6) - (16)].v)[0], (yyvsp[(6) - (16)].v)[1], (yyvsp[(6) - (16)].v)[2], (yyvsp[(8) - (16)].v)[0], (yyvsp[(8) - (16)].v)[1], (yyvsp[(8) - (16)].v)[2], (yyvsp[(10) - (16)].d),
 		   &extr, (yyval.l));
-    ;}
+    }
     break;
 
   case 231:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2899 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
-    ;}
+    }
     break;
 
   case 232:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2904 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), 
 		   (yyvsp[(6) - (18)].v)[0], (yyvsp[(6) - (18)].v)[1], (yyvsp[(6) - (18)].v)[2], (yyvsp[(8) - (18)].v)[0], (yyvsp[(8) - (18)].v)[1], (yyvsp[(8) - (18)].v)[2], (yyvsp[(10) - (18)].v)[0], (yyvsp[(10) - (18)].v)[1], (yyvsp[(10) - (18)].v)[2], (yyvsp[(12) - (18)].d),
 		   &extr, (yyval.l));
-    ;}
+    }
     break;
 
   case 233:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2911 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
-    ;}
+    }
     break;
 
   case 234:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2916 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), 
 		   (yyvsp[(6) - (18)].v)[0], (yyvsp[(6) - (18)].v)[1], (yyvsp[(6) - (18)].v)[2], (yyvsp[(8) - (18)].v)[0], (yyvsp[(8) - (18)].v)[1], (yyvsp[(8) - (18)].v)[2], (yyvsp[(10) - (18)].v)[0], (yyvsp[(10) - (18)].v)[1], (yyvsp[(10) - (18)].v)[2], (yyvsp[(12) - (18)].d),
 		   &extr, (yyval.l));
-    ;}
+    }
     break;
 
   case 235:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2923 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
       extr.mesh.QuadToTri = NO_QUADTRI;
-    ;}
+    }
     break;
 
   case 236:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2928 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), 
 		   (yyvsp[(6) - (18)].v)[0], (yyvsp[(6) - (18)].v)[1], (yyvsp[(6) - (18)].v)[2], (yyvsp[(8) - (18)].v)[0], (yyvsp[(8) - (18)].v)[1], (yyvsp[(8) - (18)].v)[2], (yyvsp[(10) - (18)].v)[0], (yyvsp[(10) - (18)].v)[1], (yyvsp[(10) - (18)].v)[2], (yyvsp[(12) - (18)].d),
 		   &extr, (yyval.l));
-    ;}
+    }
     break;
 
   case 237:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2939 "Gmsh.y"
     {
-    ;}
+    }
     break;
 
   case 238:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2942 "Gmsh.y"
     {
-    ;}
+    }
     break;
 
   case 239:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2948 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = true;
@@ -7679,12 +7701,12 @@ yyreduce:
       extr.mesh.hLayer.clear();
       extr.mesh.NbElmLayer.push_back((int)fabs((yyvsp[(3) - (5)].d)));
       extr.mesh.hLayer.push_back(1.);
-    ;}
+    }
     break;
 
   case 240:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2957 "Gmsh.y"
     {
       extr.mesh.ExtrudeMesh = true;
@@ -7704,12 +7726,12 @@ yyreduce:
 	yymsg(0, "Wrong layer definition {%d, %d}", List_Nbr((yyvsp[(3) - (7)].l)), List_Nbr((yyvsp[(5) - (7)].l)));
       List_Delete((yyvsp[(3) - (7)].l));
       List_Delete((yyvsp[(5) - (7)].l));
-    ;}
+    }
     break;
 
   case 241:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 2977 "Gmsh.y"
     {
       yymsg(0, "Explicit region numbers in layers are deprecated");
@@ -7732,57 +7754,57 @@ yyreduce:
       List_Delete((yyvsp[(3) - (9)].l));
       List_Delete((yyvsp[(5) - (9)].l));
       List_Delete((yyvsp[(7) - (9)].l));
-    ;}
+    }
     break;
 
   case 242:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3000 "Gmsh.y"
     {
       extr.mesh.Recombine = true;
-    ;}
+    }
     break;
 
   case 243:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3004 "Gmsh.y"
     {
       extr.mesh.QuadToTri = QUADTRI_DBL_1;
-    ;}
+    }
     break;
 
   case 244:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3008 "Gmsh.y"
     {
       extr.mesh.QuadToTri = QUADTRI_DBL_1_RECOMB;
-    ;}
+    }
     break;
 
   case 245:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3012 "Gmsh.y"
     {
       extr.mesh.QuadToTri = QUADTRI_SNGL_1;
-    ;}
+    }
     break;
 
   case 246:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3016 "Gmsh.y"
     {
       extr.mesh.QuadToTri = QUADTRI_SNGL_1_RECOMB;
-    ;}
+    }
     break;
 
   case 247:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3020 "Gmsh.y"
     {
       int num = (int)(yyvsp[(3) - (9)].d);
@@ -7801,12 +7823,12 @@ yyreduce:
 	}
       }
       List_Delete((yyvsp[(6) - (9)].l));
-    ;}
+    }
     break;
 
   case 248:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3039 "Gmsh.y"
     {
       if(!strcmp((yyvsp[(2) - (6)].c), "Index"))
@@ -7814,21 +7836,21 @@ yyreduce:
       else if(!strcmp((yyvsp[(2) - (6)].c), "View"))
         extr.mesh.ViewIndex = (yyvsp[(4) - (6)].d);
       Free((yyvsp[(2) - (6)].c));
-    ;}
+    }
     break;
 
   case 249:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3051 "Gmsh.y"
     {
       (yyval.v)[0] = (yyval.v)[1] = 1.;
-    ;}
+    }
     break;
 
   case 250:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3055 "Gmsh.y"
     {
       if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power"))
@@ -7841,21 +7863,21 @@ yyreduce:
       }
       (yyval.v)[1] = (yyvsp[(3) - (3)].d);
       Free((yyvsp[(2) - (3)].c));
-    ;}
+    }
     break;
 
   case 251:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3070 "Gmsh.y"
     {
       (yyval.i) = -1; // left
-    ;}
+    }
     break;
 
   case 252:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3074 "Gmsh.y"
     {
       if(!strcmp((yyvsp[(1) - (1)].c), "Right"))
@@ -7865,48 +7887,48 @@ yyreduce:
       else // alternated
         (yyval.i) = 0;
       Free((yyvsp[(1) - (1)].c));
-    ;}
+    }
     break;
 
   case 253:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3086 "Gmsh.y"
     {
      (yyval.l) = List_Create(1, 1, sizeof(double));
-   ;}
+   }
     break;
 
   case 254:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3090 "Gmsh.y"
     {
      (yyval.l) = (yyvsp[(2) - (2)].l);
-   ;}
+   }
     break;
 
   case 255:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3095 "Gmsh.y"
     {
       (yyval.i) = 45;
-    ;}
+    }
     break;
 
   case 256:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3099 "Gmsh.y"
     {
       (yyval.i) = (int)(yyvsp[(2) - (2)].d);
-    ;}
+    }
     break;
 
   case 257:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3106 "Gmsh.y"
     {
       int type = (int)(yyvsp[(6) - (7)].v)[0];
@@ -7962,12 +7984,12 @@ yyreduce:
         }
         List_Delete((yyvsp[(3) - (7)].l));
       }
-    ;}
+    }
     break;
 
   case 258:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3162 "Gmsh.y"
     {
       int k = List_Nbr((yyvsp[(4) - (6)].l));
@@ -8037,22 +8059,22 @@ yyreduce:
         }
       }
       List_Delete((yyvsp[(4) - (6)].l));
-    ;}
+    }
     break;
 
   case 259:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3232 "Gmsh.y"
     {
       yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)");
       List_Delete((yyvsp[(7) - (8)].l));
-    ;}
+    }
     break;
 
   case 260:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3237 "Gmsh.y"
     {
       int k = List_Nbr((yyvsp[(4) - (5)].l));
@@ -8119,12 +8141,12 @@ yyreduce:
         }
       }
       List_Delete((yyvsp[(4) - (5)].l));
-    ;}
+    }
     break;
 
   case 261:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3304 "Gmsh.y"
     {
       if(!(yyvsp[(2) - (3)].l)){
@@ -8160,12 +8182,12 @@ yyreduce:
         }
         List_Delete((yyvsp[(2) - (3)].l));
       }
-    ;}
+    }
     break;
 
   case 262:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3340 "Gmsh.y"
     {
       if(!(yyvsp[(3) - (5)].l)){
@@ -8208,12 +8230,12 @@ yyreduce:
         }
         List_Delete((yyvsp[(3) - (5)].l));
       }
-    ;}
+    }
     break;
 
   case 263:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3383 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){
@@ -8233,12 +8255,12 @@ yyreduce:
         }
       }
       List_Delete((yyvsp[(3) - (6)].l));
-    ;}
+    }
     break;
 
   case 264:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3408 "Gmsh.y"
     {
       if(List_Nbr((yyvsp[(5) - (6)].l)) != List_Nbr((yyvsp[(3) - (6)].l))){
@@ -8265,12 +8287,12 @@ yyreduce:
       }
       List_Delete((yyvsp[(3) - (6)].l));
       List_Delete((yyvsp[(5) - (6)].l));
-    ;}
+    }
     break;
 
   case 265:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3436 "Gmsh.y"
     {
       if (List_Nbr((yyvsp[(5) - (12)].l)) != List_Nbr((yyvsp[(10) - (12)].l))){
@@ -8306,12 +8328,12 @@ yyreduce:
       }
       List_Delete((yyvsp[(5) - (12)].l));
       List_Delete((yyvsp[(10) - (12)].l));
-    ;}
+    }
     break;
 
   case 266:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3479 "Gmsh.y"
     { 
       Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d));
@@ -8334,12 +8356,12 @@ yyreduce:
         else
           yymsg(0, "Unknown surface %d", (int)(yyvsp[(8) - (10)].d));
       }
-    ;}
+    }
     break;
 
   case 267:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3502 "Gmsh.y"
     {
       Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d));
@@ -8362,37 +8384,37 @@ yyreduce:
         else
           yymsg(0, "Unknown surface %d", (int)(yyvsp[(8) - (10)].d));
       }
-    ;}
+    }
     break;
 
   case 268:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3525 "Gmsh.y"
     {
-    ;}
+    }
     break;
 
   case 269:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3528 "Gmsh.y"
     {
-    ;}
+    }
     break;
 
   case 270:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3537 "Gmsh.y"
     { 
       ReplaceAllDuplicates();
-    ;}
+    }
     break;
 
   case 271:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3541 "Gmsh.y"
     { 
       if(!strcmp((yyvsp[(2) - (3)].c), "Geometry"))
@@ -8402,12 +8424,12 @@ yyreduce:
       else
         yymsg(0, "Unknown coherence command");
       Free((yyvsp[(2) - (3)].c));
-    ;}
+    }
     break;
 
   case 272:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3551 "Gmsh.y"
     { 
       if(List_Nbr((yyvsp[(4) - (6)].l)) >= 2){
@@ -8437,12 +8459,12 @@ yyreduce:
         yymsg(0, "Need at least two points to merge");
       ReplaceAllDuplicates();
       List_Delete((yyvsp[(4) - (6)].l));
-    ;}
+    }
     break;
 
   case 273:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3588 "Gmsh.y"
     {
     
@@ -8478,12 +8500,12 @@ yyreduce:
     #else
     yymsg(0, "Gmsh needs to be configured with option Kbipack to use homology computation");
     #endif
-    ;}
+    }
     break;
 
   case 274:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3625 "Gmsh.y"
     {
     List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l));
@@ -8518,12 +8540,12 @@ yyreduce:
     #else
     yymsg(0, "Gmsh needs to be configured with option Kbipack to use homology computation");
     #endif
-    ;}
+    }
     break;
 
   case 275:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3661 "Gmsh.y"
     {
     List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l));
@@ -8558,12 +8580,12 @@ yyreduce:
     #else
     yymsg(0, "Gmsh needs to be configured with option Kbipack to use homology computation");
     #endif
-    ;}
+    }
     break;
 
   case 276:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3696 "Gmsh.y"
     {
     List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l));
@@ -8598,500 +8620,500 @@ yyreduce:
     #else
     yymsg(0, "Gmsh needs to be configured with option Kbipack to use homology computation");
     #endif
-    ;}
+    }
     break;
 
   case 277:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3735 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(1) - (1)].d);           ;}
+    { (yyval.d) = (yyvsp[(1) - (1)].d);           }
     break;
 
   case 278:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3736 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(2) - (3)].d);           ;}
+    { (yyval.d) = (yyvsp[(2) - (3)].d);           }
     break;
 
   case 279:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3737 "Gmsh.y"
-    { (yyval.d) = -(yyvsp[(2) - (2)].d);          ;}
+    { (yyval.d) = -(yyvsp[(2) - (2)].d);          }
     break;
 
   case 280:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3738 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(2) - (2)].d);           ;}
+    { (yyval.d) = (yyvsp[(2) - (2)].d);           }
     break;
 
   case 281:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3739 "Gmsh.y"
-    { (yyval.d) = !(yyvsp[(2) - (2)].d);          ;}
+    { (yyval.d) = !(yyvsp[(2) - (2)].d);          }
     break;
 
   case 282:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3740 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d);      ;}
+    { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d);      }
     break;
 
   case 283:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3741 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d);      ;}
+    { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d);      }
     break;
 
   case 284:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3742 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d);      ;}
+    { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d);      }
     break;
 
   case 285:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3744 "Gmsh.y"
     { 
       if(!(yyvsp[(3) - (3)].d))
 	yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d));
       else
 	(yyval.d) = (yyvsp[(1) - (3)].d) / (yyvsp[(3) - (3)].d);     
-    ;}
+    }
     break;
 
   case 286:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3750 "Gmsh.y"
-    { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d);  ;}
+    { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d);  }
     break;
 
   case 287:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3751 "Gmsh.y"
-    { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d));  ;}
+    { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d));  }
     break;
 
   case 288:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3752 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d);      ;}
+    { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d);      }
     break;
 
   case 289:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3753 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d);      ;}
+    { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d);      }
     break;
 
   case 290:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3754 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d);     ;}
+    { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d);     }
     break;
 
   case 291:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3755 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d);     ;}
+    { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d);     }
     break;
 
   case 292:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3756 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d);     ;}
+    { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d);     }
     break;
 
   case 293:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3757 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d);     ;}
+    { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d);     }
     break;
 
   case 294:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3758 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d);     ;}
+    { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d);     }
     break;
 
   case 295:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3759 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d);     ;}
+    { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d);     }
     break;
 
   case 296:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3760 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;}
+    { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); }
     break;
 
   case 297:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3761 "Gmsh.y"
-    { (yyval.d) = exp((yyvsp[(3) - (4)].d));      ;}
+    { (yyval.d) = exp((yyvsp[(3) - (4)].d));      }
     break;
 
   case 298:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3762 "Gmsh.y"
-    { (yyval.d) = log((yyvsp[(3) - (4)].d));      ;}
+    { (yyval.d) = log((yyvsp[(3) - (4)].d));      }
     break;
 
   case 299:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3763 "Gmsh.y"
-    { (yyval.d) = log10((yyvsp[(3) - (4)].d));    ;}
+    { (yyval.d) = log10((yyvsp[(3) - (4)].d));    }
     break;
 
   case 300:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3764 "Gmsh.y"
-    { (yyval.d) = sqrt((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = sqrt((yyvsp[(3) - (4)].d));     }
     break;
 
   case 301:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3765 "Gmsh.y"
-    { (yyval.d) = sin((yyvsp[(3) - (4)].d));      ;}
+    { (yyval.d) = sin((yyvsp[(3) - (4)].d));      }
     break;
 
   case 302:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3766 "Gmsh.y"
-    { (yyval.d) = asin((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = asin((yyvsp[(3) - (4)].d));     }
     break;
 
   case 303:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3767 "Gmsh.y"
-    { (yyval.d) = cos((yyvsp[(3) - (4)].d));      ;}
+    { (yyval.d) = cos((yyvsp[(3) - (4)].d));      }
     break;
 
   case 304:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3768 "Gmsh.y"
-    { (yyval.d) = acos((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = acos((yyvsp[(3) - (4)].d));     }
     break;
 
   case 305:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3769 "Gmsh.y"
-    { (yyval.d) = tan((yyvsp[(3) - (4)].d));      ;}
+    { (yyval.d) = tan((yyvsp[(3) - (4)].d));      }
     break;
 
   case 306:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3770 "Gmsh.y"
-    { (yyval.d) = atan((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = atan((yyvsp[(3) - (4)].d));     }
     break;
 
   case 307:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3771 "Gmsh.y"
-    { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;}
+    { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));}
     break;
 
   case 308:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3772 "Gmsh.y"
-    { (yyval.d) = sinh((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = sinh((yyvsp[(3) - (4)].d));     }
     break;
 
   case 309:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3773 "Gmsh.y"
-    { (yyval.d) = cosh((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = cosh((yyvsp[(3) - (4)].d));     }
     break;
 
   case 310:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3774 "Gmsh.y"
-    { (yyval.d) = tanh((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = tanh((yyvsp[(3) - (4)].d));     }
     break;
 
   case 311:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3775 "Gmsh.y"
-    { (yyval.d) = fabs((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = fabs((yyvsp[(3) - (4)].d));     }
     break;
 
   case 312:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3776 "Gmsh.y"
-    { (yyval.d) = floor((yyvsp[(3) - (4)].d));    ;}
+    { (yyval.d) = floor((yyvsp[(3) - (4)].d));    }
     break;
 
   case 313:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3777 "Gmsh.y"
-    { (yyval.d) = ceil((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = ceil((yyvsp[(3) - (4)].d));     }
     break;
 
   case 314:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3778 "Gmsh.y"
-    { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
+    { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); }
     break;
 
   case 315:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3779 "Gmsh.y"
-    { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
+    { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); }
     break;
 
   case 316:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3780 "Gmsh.y"
-    { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;}
+    { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); }
     break;
 
   case 317:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3781 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;}
+    { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; }
     break;
 
   case 318:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3783 "Gmsh.y"
-    { (yyval.d) = exp((yyvsp[(3) - (4)].d));      ;}
+    { (yyval.d) = exp((yyvsp[(3) - (4)].d));      }
     break;
 
   case 319:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3784 "Gmsh.y"
-    { (yyval.d) = log((yyvsp[(3) - (4)].d));      ;}
+    { (yyval.d) = log((yyvsp[(3) - (4)].d));      }
     break;
 
   case 320:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3785 "Gmsh.y"
-    { (yyval.d) = log10((yyvsp[(3) - (4)].d));    ;}
+    { (yyval.d) = log10((yyvsp[(3) - (4)].d));    }
     break;
 
   case 321:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3786 "Gmsh.y"
-    { (yyval.d) = sqrt((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = sqrt((yyvsp[(3) - (4)].d));     }
     break;
 
   case 322:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3787 "Gmsh.y"
-    { (yyval.d) = sin((yyvsp[(3) - (4)].d));      ;}
+    { (yyval.d) = sin((yyvsp[(3) - (4)].d));      }
     break;
 
   case 323:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3788 "Gmsh.y"
-    { (yyval.d) = asin((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = asin((yyvsp[(3) - (4)].d));     }
     break;
 
   case 324:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3789 "Gmsh.y"
-    { (yyval.d) = cos((yyvsp[(3) - (4)].d));      ;}
+    { (yyval.d) = cos((yyvsp[(3) - (4)].d));      }
     break;
 
   case 325:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3790 "Gmsh.y"
-    { (yyval.d) = acos((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = acos((yyvsp[(3) - (4)].d));     }
     break;
 
   case 326:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3791 "Gmsh.y"
-    { (yyval.d) = tan((yyvsp[(3) - (4)].d));      ;}
+    { (yyval.d) = tan((yyvsp[(3) - (4)].d));      }
     break;
 
   case 327:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3792 "Gmsh.y"
-    { (yyval.d) = atan((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = atan((yyvsp[(3) - (4)].d));     }
     break;
 
   case 328:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3793 "Gmsh.y"
-    { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;}
+    { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));}
     break;
 
   case 329:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3794 "Gmsh.y"
-    { (yyval.d) = sinh((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = sinh((yyvsp[(3) - (4)].d));     }
     break;
 
   case 330:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3795 "Gmsh.y"
-    { (yyval.d) = cosh((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = cosh((yyvsp[(3) - (4)].d));     }
     break;
 
   case 331:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3796 "Gmsh.y"
-    { (yyval.d) = tanh((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = tanh((yyvsp[(3) - (4)].d));     }
     break;
 
   case 332:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3797 "Gmsh.y"
-    { (yyval.d) = fabs((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = fabs((yyvsp[(3) - (4)].d));     }
     break;
 
   case 333:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3798 "Gmsh.y"
-    { (yyval.d) = floor((yyvsp[(3) - (4)].d));    ;}
+    { (yyval.d) = floor((yyvsp[(3) - (4)].d));    }
     break;
 
   case 334:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3799 "Gmsh.y"
-    { (yyval.d) = ceil((yyvsp[(3) - (4)].d));     ;}
+    { (yyval.d) = ceil((yyvsp[(3) - (4)].d));     }
     break;
 
   case 335:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3800 "Gmsh.y"
-    { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
+    { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); }
     break;
 
   case 336:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3801 "Gmsh.y"
-    { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
+    { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); }
     break;
 
   case 337:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3802 "Gmsh.y"
-    { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;}
+    { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); }
     break;
 
   case 338:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3803 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;}
+    { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; }
     break;
 
   case 339:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3812 "Gmsh.y"
-    { (yyval.d) = (yyvsp[(1) - (1)].d); ;}
+    { (yyval.d) = (yyvsp[(1) - (1)].d); }
     break;
 
   case 340:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3813 "Gmsh.y"
-    { (yyval.d) = 3.141592653589793; ;}
+    { (yyval.d) = 3.141592653589793; }
     break;
 
   case 341:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3814 "Gmsh.y"
-    { (yyval.d) = Msg::GetCommRank(); ;}
+    { (yyval.d) = Msg::GetCommRank(); }
     break;
 
   case 342:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3815 "Gmsh.y"
-    { (yyval.d) = Msg::GetCommSize(); ;}
+    { (yyval.d) = Msg::GetCommSize(); }
     break;
 
   case 343:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3816 "Gmsh.y"
-    { (yyval.d) = GetGmshMajorVersion(); ;}
+    { (yyval.d) = GetGmshMajorVersion(); }
     break;
 
   case 344:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3817 "Gmsh.y"
-    { (yyval.d) = GetGmshMinorVersion(); ;}
+    { (yyval.d) = GetGmshMinorVersion(); }
     break;
 
   case 345:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3818 "Gmsh.y"
-    { (yyval.d) = GetGmshPatchVersion(); ;}
+    { (yyval.d) = GetGmshPatchVersion(); }
     break;
 
   case 346:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3823 "Gmsh.y"
     {
       if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){
@@ -9107,12 +9129,12 @@ yyreduce:
           (yyval.d) = gmsh_yysymbols[(yyvsp[(1) - (1)].c)][0];
       }
       Free((yyvsp[(1) - (1)].c));
-    ;}
+    }
     break;
 
   case 347:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3842 "Gmsh.y"
     {
       char tmpstring[1024];
@@ -9130,12 +9152,12 @@ yyreduce:
           (yyval.d) = gmsh_yysymbols[tmpstring][0];
       }
       Free((yyvsp[(1) - (5)].c));
-    ;}
+    }
     break;
 
   case 348:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3860 "Gmsh.y"
     {
       int index = (int)(yyvsp[(3) - (4)].d);
@@ -9150,12 +9172,12 @@ yyreduce:
       else
 	(yyval.d) = gmsh_yysymbols[(yyvsp[(1) - (4)].c)][index];
       Free((yyvsp[(1) - (4)].c));
-    ;}
+    }
     break;
 
   case 349:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3875 "Gmsh.y"
     {
       if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){
@@ -9165,12 +9187,12 @@ yyreduce:
       else
 	(yyval.d) = gmsh_yysymbols[(yyvsp[(2) - (4)].c)].size();
       Free((yyvsp[(2) - (4)].c));
-    ;}
+    }
     break;
 
   case 350:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3885 "Gmsh.y"
     {
       if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){
@@ -9186,12 +9208,12 @@ yyreduce:
           (yyval.d) = (gmsh_yysymbols[(yyvsp[(1) - (2)].c)][0] += (yyvsp[(2) - (2)].i));
       }
       Free((yyvsp[(1) - (2)].c));
-    ;}
+    }
     break;
 
   case 351:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3901 "Gmsh.y"
     {
       int index = (int)(yyvsp[(3) - (5)].d);
@@ -9206,32 +9228,32 @@ yyreduce:
       else
 	(yyval.d) = (gmsh_yysymbols[(yyvsp[(1) - (5)].c)][index] += (yyvsp[(5) - (5)].i));
       Free((yyvsp[(1) - (5)].c));
-    ;}
+    }
     break;
 
   case 352:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3919 "Gmsh.y"
     {
       NumberOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), (yyval.d));
       Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c));
-    ;}
+    }
     break;
 
   case 353:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3924 "Gmsh.y"
     {
       NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), (yyval.d));
       Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c));
-    ;}
+    }
     break;
 
   case 354:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3929 "Gmsh.y"
     {
       double d = 0.;
@@ -9241,12 +9263,12 @@ yyreduce:
 	(yyval.d) = d;
       }
       Free((yyvsp[(1) - (4)].c)); Free((yyvsp[(3) - (4)].c));
-    ;}
+    }
     break;
 
   case 355:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3939 "Gmsh.y"
     {
       double d = 0.;
@@ -9256,160 +9278,160 @@ yyreduce:
 	(yyval.d) = d;
       }
       Free((yyvsp[(1) - (7)].c)); Free((yyvsp[(6) - (7)].c));
-    ;}
+    }
     break;
 
   case 356:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3949 "Gmsh.y"
     { 
       (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d));
       Free((yyvsp[(3) - (6)].c));
-    ;}
+    }
     break;
 
   case 357:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3957 "Gmsh.y"
     {
       memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double));
-    ;}
+    }
     break;
 
   case 358:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3961 "Gmsh.y"
     {
       for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i];
-    ;}
+    }
     break;
 
   case 359:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3965 "Gmsh.y"
     { 
       for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i];
-    ;}
+    }
     break;
 
   case 360:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3969 "Gmsh.y"
     { 
       for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i];
-    ;}
+    }
     break;
 
   case 361:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3973 "Gmsh.y"
     {
       for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i];
-    ;}
+    }
     break;
 
   case 362:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3980 "Gmsh.y"
     { 
       (yyval.v)[0] = (yyvsp[(2) - (11)].d);  (yyval.v)[1] = (yyvsp[(4) - (11)].d);  (yyval.v)[2] = (yyvsp[(6) - (11)].d);  (yyval.v)[3] = (yyvsp[(8) - (11)].d); (yyval.v)[4] = (yyvsp[(10) - (11)].d);
-    ;}
+    }
     break;
 
   case 363:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3984 "Gmsh.y"
     { 
       (yyval.v)[0] = (yyvsp[(2) - (9)].d);  (yyval.v)[1] = (yyvsp[(4) - (9)].d);  (yyval.v)[2] = (yyvsp[(6) - (9)].d);  (yyval.v)[3] = (yyvsp[(8) - (9)].d); (yyval.v)[4] = 1.0;
-    ;}
+    }
     break;
 
   case 364:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3988 "Gmsh.y"
     {
       (yyval.v)[0] = (yyvsp[(2) - (7)].d);  (yyval.v)[1] = (yyvsp[(4) - (7)].d);  (yyval.v)[2] = (yyvsp[(6) - (7)].d);  (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0;
-    ;}
+    }
     break;
 
   case 365:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3992 "Gmsh.y"
     {
       (yyval.v)[0] = (yyvsp[(2) - (7)].d);  (yyval.v)[1] = (yyvsp[(4) - (7)].d);  (yyval.v)[2] = (yyvsp[(6) - (7)].d);  (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0;
-    ;}
+    }
     break;
 
   case 366:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 3999 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(List_T*));
       List_Add((yyval.l), &((yyvsp[(1) - (1)].l)));
-    ;}
+    }
     break;
 
   case 367:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4004 "Gmsh.y"
     {
       List_Add((yyval.l), &((yyvsp[(3) - (3)].l)));
-    ;}
+    }
     break;
 
   case 368:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4011 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(double));
       List_Add((yyval.l), &((yyvsp[(1) - (1)].d)));
-    ;}
+    }
     break;
 
   case 369:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4016 "Gmsh.y"
     {
       (yyval.l) = (yyvsp[(1) - (1)].l);
-    ;}
+    }
     break;
 
   case 370:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4020 "Gmsh.y"
     {
       // creates an empty list
       (yyval.l) = List_Create(2, 1, sizeof(double));
-    ;}
+    }
     break;
 
   case 371:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4025 "Gmsh.y"
     {
       (yyval.l) = (yyvsp[(2) - (3)].l);
-    ;}
+    }
     break;
 
   case 372:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4029 "Gmsh.y"
     {
       (yyval.l) = (yyvsp[(3) - (4)].l);
@@ -9417,12 +9439,12 @@ yyreduce:
 	double *pd = (double*)List_Pointer((yyval.l), i);
 	(*pd) = - (*pd);
       }
-    ;}
+    }
     break;
 
   case 373:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4037 "Gmsh.y"
     {
       (yyval.l) = (yyvsp[(4) - (5)].l);
@@ -9430,21 +9452,21 @@ yyreduce:
 	double *pd = (double*)List_Pointer((yyval.l), i);
 	(*pd) *= (yyvsp[(1) - (5)].d);
       }
-    ;}
+    }
     break;
 
   case 374:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4048 "Gmsh.y"
     { 
       (yyval.l) = (yyvsp[(1) - (1)].l); 
-    ;}
+    }
     break;
 
   case 375:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4052 "Gmsh.y"
     {
       if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all"))
@@ -9453,12 +9475,12 @@ yyreduce:
         yyerror("Unknown special string for list replacement");
         (yyval.l) = List_Create(2, 1, sizeof(double));
       }
-    ;}
+    }
     break;
 
   case 376:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4064 "Gmsh.y"
     {
       (yyval.l) = (yyvsp[(2) - (2)].l);
@@ -9466,12 +9488,12 @@ yyreduce:
 	double *pd = (double*)List_Pointer((yyval.l), i);
 	(*pd) = - (*pd);
       }
-    ;}
+    }
     break;
 
   case 377:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4072 "Gmsh.y"
     {
       (yyval.l) = (yyvsp[(3) - (3)].l);
@@ -9479,24 +9501,24 @@ yyreduce:
 	double *pd = (double*)List_Pointer((yyval.l), i);
 	(*pd) *= (yyvsp[(1) - (3)].d);
       }
-    ;}
+    }
     break;
 
   case 378:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4080 "Gmsh.y"
     { 
       (yyval.l) = List_Create(2, 1, sizeof(double)); 
       for(double d = (yyvsp[(1) - (3)].d); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d <= (yyvsp[(3) - (3)].d)) : (d >= (yyvsp[(3) - (3)].d)); 
           ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d += 1.) : (d -= 1.)) 
 	List_Add((yyval.l), &d);
-    ;}
+    }
     break;
 
   case 379:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4087 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(double)); 
@@ -9507,12 +9529,12 @@ yyreduce:
       else
 	for(double d = (yyvsp[(1) - (5)].d); ((yyvsp[(5) - (5)].d) > 0) ? (d <= (yyvsp[(3) - (5)].d)) : (d >= (yyvsp[(3) - (5)].d)); d += (yyvsp[(5) - (5)].d))
 	  List_Add((yyval.l), &d);
-   ;}
+   }
     break;
 
   case 380:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4098 "Gmsh.y"
     {
       // Returns the coordinates of a point and fills a list with it.
@@ -9532,48 +9554,48 @@ yyreduce:
 	List_Add((yyval.l), &v->Pos.Y);
 	List_Add((yyval.l), &v->Pos.Z);
       }
-    ;}
+    }
     break;
 
   case 381:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4118 "Gmsh.y"
     {
       (yyval.l) = GetAllEntityNumbers(0);
-    ;}
+    }
     break;
 
   case 382:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4122 "Gmsh.y"
     {
       (yyval.l) = GetAllEntityNumbers(1);
-    ;}
+    }
     break;
 
   case 383:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4126 "Gmsh.y"
     {
       (yyval.l) = GetAllEntityNumbers(2);
-    ;}
+    }
     break;
 
   case 384:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4130 "Gmsh.y"
     {
       (yyval.l) = GetAllEntityNumbers(3);
-    ;}
+    }
     break;
 
   case 385:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4134 "Gmsh.y"
     {
       (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double));
@@ -9583,12 +9605,12 @@ yyreduce:
 	List_Add((yyval.l), &d);
       }
       List_Delete((yyvsp[(1) - (1)].l));
-    ;}
+    }
     break;
 
   case 386:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4144 "Gmsh.y"
     {
       (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double));
@@ -9598,12 +9620,12 @@ yyreduce:
 	List_Add((yyval.l), &d);
       }
       List_Delete((yyvsp[(1) - (1)].l));
-    ;}
+    }
     break;
 
   case 387:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4154 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(double));
@@ -9613,12 +9635,12 @@ yyreduce:
 	for(unsigned int i = 0; i < gmsh_yysymbols[(yyvsp[(1) - (3)].c)].size(); i++)
 	  List_Add((yyval.l), &gmsh_yysymbols[(yyvsp[(1) - (3)].c)][i]);
       Free((yyvsp[(1) - (3)].c));
-    ;}
+    }
     break;
 
   case 388:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4164 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(double));
@@ -9635,40 +9657,40 @@ yyreduce:
       }
       Free((yyvsp[(1) - (6)].c));
       List_Delete((yyvsp[(4) - (6)].l));
-    ;}
+    }
     break;
 
   case 389:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4184 "Gmsh.y"
     {
       (yyval.l) = List_Create(2, 1, sizeof(double));
       List_Add((yyval.l), &((yyvsp[(1) - (1)].d)));
-    ;}
+    }
     break;
 
   case 390:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4189 "Gmsh.y"
     {
       (yyval.l) = (yyvsp[(1) - (1)].l);
-    ;}
+    }
     break;
 
   case 391:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4193 "Gmsh.y"
     {
       List_Add((yyval.l), &((yyvsp[(3) - (3)].d)));
-    ;}
+    }
     break;
 
   case 392:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4197 "Gmsh.y"
     {
       for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){
@@ -9677,63 +9699,63 @@ yyreduce:
 	List_Add((yyval.l), &d);
       }
       List_Delete((yyvsp[(3) - (3)].l));
-    ;}
+    }
     break;
 
   case 393:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4209 "Gmsh.y"
     {
       (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d));
-    ;}
+    }
     break;
 
   case 394:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4213 "Gmsh.y"
     {
       (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255);
-    ;}
+    }
     break;
 
   case 395:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4225 "Gmsh.y"
     {
       int flag;
       (yyval.u) = GetColorForString(ColorString, -1, (yyvsp[(1) - (1)].c), &flag);
       if(flag) yymsg(0, "Unknown color '%s'", (yyvsp[(1) - (1)].c));
       Free((yyvsp[(1) - (1)].c));
-    ;}
+    }
     break;
 
   case 396:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4232 "Gmsh.y"
     {
       unsigned int val = 0;
       ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val);
       (yyval.u) = val;
       Free((yyvsp[(1) - (5)].c)); Free((yyvsp[(5) - (5)].c));
-    ;}
+    }
     break;
 
   case 397:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4242 "Gmsh.y"
     {
       (yyval.l) = (yyvsp[(2) - (3)].l);
-    ;}
+    }
     break;
 
   case 398:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4246 "Gmsh.y"
     {
       (yyval.l) = List_Create(256, 10, sizeof(unsigned int));
@@ -9745,40 +9767,40 @@ yyreduce:
 	  List_Add((yyval.l), &ct->table[i]);
       }
       Free((yyvsp[(1) - (6)].c));
-    ;}
+    }
     break;
 
   case 399:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4261 "Gmsh.y"
     {
       (yyval.l) = List_Create(256, 10, sizeof(unsigned int));
       List_Add((yyval.l), &((yyvsp[(1) - (1)].u)));
-    ;}
+    }
     break;
 
   case 400:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4266 "Gmsh.y"
     {
       List_Add((yyval.l), &((yyvsp[(3) - (3)].u)));
-    ;}
+    }
     break;
 
   case 401:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4273 "Gmsh.y"
     {
       (yyval.c) = (yyvsp[(1) - (1)].c);
-    ;}
+    }
     break;
 
   case 402:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4277 "Gmsh.y"
     {
       if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){
@@ -9791,12 +9813,12 @@ yyreduce:
 	strcpy((yyval.c), val.c_str());
 	Free((yyvsp[(1) - (1)].c));
       }
-    ;}
+    }
     break;
 
   case 403:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4290 "Gmsh.y"
     { 
       std::string out;
@@ -9804,12 +9826,12 @@ yyreduce:
       (yyval.c) = (char*)Malloc((out.size() + 1) * sizeof(char));
       strcpy((yyval.c), out.c_str());
       Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c));
-    ;}
+    }
     break;
 
   case 404:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4298 "Gmsh.y"
     { 
       std::string out;
@@ -9817,21 +9839,21 @@ yyreduce:
       (yyval.c) = (char*)Malloc((out.size() + 1) * sizeof(char));
       strcpy((yyval.c), out.c_str());
       Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c));
-    ;}
+    }
     break;
 
   case 405:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4309 "Gmsh.y"
     {
       (yyval.c) = (yyvsp[(1) - (1)].c);
-    ;}
+    }
     break;
 
   case 406:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4313 "Gmsh.y"
     {
       (yyval.c) = (char *)Malloc(32 * sizeof(char));
@@ -9839,12 +9861,12 @@ yyreduce:
       time(&now);
       strcpy((yyval.c), ctime(&now));
       (yyval.c)[strlen((yyval.c)) - 1] = '\0';
-    ;}
+    }
     break;
 
   case 407:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4321 "Gmsh.y"
     { 
       const char *env = GetEnvironmentVar((yyvsp[(3) - (4)].c));
@@ -9852,12 +9874,12 @@ yyreduce:
       (yyval.c) = (char *)Malloc((sizeof(env) + 1) * sizeof(char));
       strcpy((yyval.c), env);
       Free((yyvsp[(3) - (4)].c));
-    ;}
+    }
     break;
 
   case 408:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4329 "Gmsh.y"
     { 
       std::string s = Msg::GetString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c));
@@ -9865,12 +9887,12 @@ yyreduce:
       strcpy((yyval.c), s.c_str());
       Free((yyvsp[(3) - (6)].c));
       Free((yyvsp[(5) - (6)].c));
-    ;}
+    }
     break;
 
   case 409:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4337 "Gmsh.y"
     {
       (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (6)].c)) + strlen((yyvsp[(5) - (6)].c)) + 1) * sizeof(char));
@@ -9878,12 +9900,12 @@ yyreduce:
       strcat((yyval.c), (yyvsp[(5) - (6)].c));
       Free((yyvsp[(3) - (6)].c));
       Free((yyvsp[(5) - (6)].c));
-    ;}
+    }
     break;
 
   case 410:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4345 "Gmsh.y"
     {
       (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char));
@@ -9897,12 +9919,12 @@ yyreduce:
       }
       if(i <= 0) strcpy((yyval.c), (yyvsp[(3) - (4)].c));
       Free((yyvsp[(3) - (4)].c));
-    ;}
+    }
     break;
 
   case 411:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4359 "Gmsh.y"
     {
       (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char));
@@ -9916,21 +9938,21 @@ yyreduce:
       else
 	strcpy((yyval.c), &(yyvsp[(3) - (4)].c)[i+1]);
       Free((yyvsp[(3) - (4)].c));
-    ;}
+    }
     break;
 
   case 412:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4373 "Gmsh.y"
     {
       (yyval.c) = (yyvsp[(3) - (4)].c);
-    ;}
+    }
     break;
 
   case 413:
 
-/* Line 1464 of yacc.c  */
+/* Line 1806 of yacc.c  */
 #line 4377 "Gmsh.y"
     {
       char tmpstring[1024];
@@ -9949,7 +9971,7 @@ yyreduce:
 	Free((yyvsp[(3) - (6)].c));
       }
       List_Delete((yyvsp[(5) - (6)].l));
-    ;}
+    }
     break;
 
 
@@ -9958,6 +9980,17 @@ yyreduce:
 #line 9959 "Gmsh.tab.cpp"
       default: break;
     }
+  /* User semantic actions sometimes alter yychar, and that requires
+     that yytoken be updated with the new translation.  We take the
+     approach of translating immediately before every use of yytoken.
+     One alternative is translating here after every semantic action,
+     but that translation would be missed if the semantic action invokes
+     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
+     incorrect destructor might then be invoked immediately.  In the
+     case of YYERROR or YYBACKUP, subsequent parser actions might lead
+     to an incorrect destructor call or verbose syntax error message
+     before the lookahead is translated.  */
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
 
   YYPOPSTACK (yylen);
@@ -9985,6 +10018,10 @@ yyreduce:
 | yyerrlab -- here on detecting error |
 `------------------------------------*/
 yyerrlab:
+  /* Make sure we have latest lookahead translation.  See comments at
+     user semantic actions for why this is necessary.  */
+  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
+
   /* If not already recovering from an error, report this error.  */
   if (!yyerrstatus)
     {
@@ -9992,37 +10029,36 @@ yyerrlab:
 #if ! YYERROR_VERBOSE
       yyerror (YY_("syntax error"));
 #else
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
+                                        yyssp, yytoken)
       {
-	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
-	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
-	  {
-	    YYSIZE_T yyalloc = 2 * yysize;
-	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
-	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
-	    if (yymsg != yymsgbuf)
-	      YYSTACK_FREE (yymsg);
-	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
-	    if (yymsg)
-	      yymsg_alloc = yyalloc;
-	    else
-	      {
-		yymsg = yymsgbuf;
-		yymsg_alloc = sizeof yymsgbuf;
-	      }
-	  }
-
-	if (0 < yysize && yysize <= yymsg_alloc)
-	  {
-	    (void) yysyntax_error (yymsg, yystate, yychar);
-	    yyerror (yymsg);
-	  }
-	else
-	  {
-	    yyerror (YY_("syntax error"));
-	    if (yysize != 0)
-	      goto yyexhaustedlab;
-	  }
+        char const *yymsgp = YY_("syntax error");
+        int yysyntax_error_status;
+        yysyntax_error_status = YYSYNTAX_ERROR;
+        if (yysyntax_error_status == 0)
+          yymsgp = yymsg;
+        else if (yysyntax_error_status == 1)
+          {
+            if (yymsg != yymsgbuf)
+              YYSTACK_FREE (yymsg);
+            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
+            if (!yymsg)
+              {
+                yymsg = yymsgbuf;
+                yymsg_alloc = sizeof yymsgbuf;
+                yysyntax_error_status = 2;
+              }
+            else
+              {
+                yysyntax_error_status = YYSYNTAX_ERROR;
+                yymsgp = yymsg;
+              }
+          }
+        yyerror (yymsgp);
+        if (yysyntax_error_status == 2)
+          goto yyexhaustedlab;
       }
+# undef YYSYNTAX_ERROR
 #endif
     }
 
@@ -10081,7 +10117,7 @@ yyerrlab1:
   for (;;)
     {
       yyn = yypact[yystate];
-      if (yyn != YYPACT_NINF)
+      if (!yypact_value_is_default (yyn))
 	{
 	  yyn += YYTERROR;
 	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
@@ -10140,8 +10176,13 @@ yyexhaustedlab:
 
 yyreturn:
   if (yychar != YYEMPTY)
-     yydestruct ("Cleanup: discarding lookahead",
-		 yytoken, &yylval);
+    {
+      /* Make sure we have latest lookahead translation.  See comments at
+         user semantic actions for why this is necessary.  */
+      yytoken = YYTRANSLATE (yychar);
+      yydestruct ("Cleanup: discarding lookahead",
+                  yytoken, &yylval);
+    }
   /* Do not reclaim the symbols of the rule which action triggered
      this YYABORT or YYACCEPT.  */
   YYPOPSTACK (yylen);
@@ -10166,7 +10207,7 @@ yyreturn:
 
 
 
-/* Line 1684 of yacc.c  */
+/* Line 2067 of yacc.c  */
 #line 4397 "Gmsh.y"
 
 
diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp
index 1c7b587201e7ecd7e236d5298029e75912b39290..d6457c74eb767cc4864c37700553488f573c853a 100644
--- a/Parser/Gmsh.tab.hpp
+++ b/Parser/Gmsh.tab.hpp
@@ -1,9 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.4.3.  */
+/* A Bison parser, made by GNU Bison 2.5.  */
 
-/* Skeleton interface for Bison's Yacc-like parsers in C
+/* Bison interface for Yacc-like parsers in C
    
-      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-   2009, 2010 Free Software Foundation, Inc.
+      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -184,7 +183,7 @@
 typedef union YYSTYPE
 {
 
-/* Line 1685 of yacc.c  */
+/* Line 2068 of yacc.c  */
 #line 91 "Gmsh.y"
 
   char *c;
@@ -197,8 +196,8 @@ typedef union YYSTYPE
 
 
 
-/* Line 1685 of yacc.c  */
-#line 202 "Gmsh.tab.hpp"
+/* Line 2068 of yacc.c  */
+#line 201 "Gmsh.tab.hpp"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
diff --git a/benchmarks/levelset/squareP.geo b/benchmarks/levelset/squareP.geo
index aab74d4b9c3c42365f403e36213483b1c25b561a..1fd30ad43efa577063f89215a207af4798a375aa 100644
--- a/benchmarks/levelset/squareP.geo
+++ b/benchmarks/levelset/squareP.geo
@@ -24,7 +24,7 @@ Mesh 2;
 Levelset Plane (1) = {0,1,0,-7};
 //Levelset Point (1) = {{0.1, 2, 0},{3,2,0},{9,2,0},{5,2,0}, {0.1, 2.2, -1},{3,2.5,-1},{9,2,-1},{5,2,-1}, {0.2, 2, 1},{3,2,1},{9,2,1},{5,2,1}}; 
 
-Levelset CutMeshTri {1};
+Levelset CutMesh {1};
 
 Print "squareP_cut.msh";