diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index 989bedd965d59a34dc2f8da09ad4b8338e07bd39..068eb4c741436d57cd2b8e06aa9591751b333e23 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -326,7 +326,7 @@
 /* Copy the first part of user declarations.  */
 #line 1 "Gmsh.y"
 
-// $Id: Gmsh.tab.cpp,v 1.338 2008-01-16 21:51:47 geuzaine Exp $
+// $Id: Gmsh.tab.cpp,v 1.339 2008-01-18 20:13:35 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -363,7 +363,7 @@
 #include "PViewDataList.h"
 #include "Options.h"
 #include "Colors.h"
-#include "Parser.h"
+#include "GmshParser.h"
 #include "OpenFile.h"
 #include "CommandLine.h"
 #include "FunctionManager.h"
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index 174a6fa0939619e3faca0d105c26e4d35e94e4c0..1c36fd4dce1e322278b02d027ddac09bd8ea311f 100644
--- a/Parser/Gmsh.yy.cpp
+++ b/Parser/Gmsh.yy.cpp
@@ -847,7 +847,7 @@ int yy_flex_debug = 0;
 char *yytext;
 #line 1 "Gmsh.l"
 #line 2 "Gmsh.l"
-// $Id: Gmsh.yy.cpp,v 1.338 2008-01-18 20:02:29 geuzaine Exp $
+// $Id: Gmsh.yy.cpp,v 1.339 2008-01-18 20:13:37 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -902,7 +902,11 @@ void   skipline(void);
        result = n;							\
      }									\
 
-#line 906 "Gmsh.yy.cpp"
+#if defined(WIN32)
+#define isatty(arg) -1
+#endif
+
+#line 910 "Gmsh.yy.cpp"
 
 #define INITIAL 0
 
@@ -1055,10 +1059,10 @@ YY_DECL
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
     
-#line 66 "Gmsh.l"
+#line 70 "Gmsh.l"
 
 
-#line 1062 "Gmsh.yy.cpp"
+#line 1066 "Gmsh.yy.cpp"
 
 	if ( !(yy_init) )
 		{
@@ -1144,741 +1148,741 @@ do_action:	/* This label is used only to access EOF actions. */
 case 1:
 /* rule 1 can match eol */
 YY_RULE_SETUP
-#line 68 "Gmsh.l"
+#line 72 "Gmsh.l"
 /* none */;
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 69 "Gmsh.l"
+#line 73 "Gmsh.l"
 return tEND;
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 70 "Gmsh.l"
+#line 74 "Gmsh.l"
 skipcomments();
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 71 "Gmsh.l"
+#line 75 "Gmsh.l"
 skipline();
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 72 "Gmsh.l"
+#line 76 "Gmsh.l"
 {parsestring('\"'); return tBIGSTR;}
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 73 "Gmsh.l"
+#line 77 "Gmsh.l"
 {parsestring('\''); return tBIGSTR;}
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 74 "Gmsh.l"
+#line 78 "Gmsh.l"
 {yylval.d = NEWREG(); return tDOUBLE;}
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 75 "Gmsh.l"
+#line 79 "Gmsh.l"
 {yylval.d = NEWPOINT(); return tDOUBLE;}
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 76 "Gmsh.l"
+#line 80 "Gmsh.l"
 {yylval.d = NEWLINE(); return tDOUBLE;}
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 77 "Gmsh.l"
+#line 81 "Gmsh.l"
 {yylval.d = NEWLINE(); return tDOUBLE;}
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 78 "Gmsh.l"
+#line 82 "Gmsh.l"
 {yylval.d = NEWLINELOOP(); return tDOUBLE;}
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 79 "Gmsh.l"
+#line 83 "Gmsh.l"
 {yylval.d = NEWSURFACE(); return tDOUBLE;}
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 80 "Gmsh.l"
+#line 84 "Gmsh.l"
 {yylval.d = NEWSURFACELOOP(); return tDOUBLE;}
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 81 "Gmsh.l"
+#line 85 "Gmsh.l"
 {yylval.d = NEWVOLUME(); return tDOUBLE;}
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 82 "Gmsh.l"
+#line 86 "Gmsh.l"
 return tAFFECT;
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 83 "Gmsh.l"
+#line 87 "Gmsh.l"
 return tAFFECTPLUS;
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 84 "Gmsh.l"
+#line 88 "Gmsh.l"
 return tAFFECTMINUS;
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 85 "Gmsh.l"
+#line 89 "Gmsh.l"
 return tAFFECTTIMES;
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 86 "Gmsh.l"
+#line 90 "Gmsh.l"
 return tAFFECTDIVIDE;
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 87 "Gmsh.l"
+#line 91 "Gmsh.l"
 return tDOTS;
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 88 "Gmsh.l"
+#line 92 "Gmsh.l"
 return tDOTS;
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 89 "Gmsh.l"
+#line 93 "Gmsh.l"
 return tOR;
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 90 "Gmsh.l"
+#line 94 "Gmsh.l"
 return tAND;
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 91 "Gmsh.l"
+#line 95 "Gmsh.l"
 return tPLUSPLUS;
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 92 "Gmsh.l"
+#line 96 "Gmsh.l"
 return tMINUSMINUS;
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 93 "Gmsh.l"
+#line 97 "Gmsh.l"
 return tEQUAL;
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 94 "Gmsh.l"
+#line 98 "Gmsh.l"
 return tNOTEQUAL;
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 95 "Gmsh.l"
+#line 99 "Gmsh.l"
 return tLESSOREQUAL;
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 96 "Gmsh.l"
+#line 100 "Gmsh.l"
 return tGREATEROREQUAL;
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 98 "Gmsh.l"
+#line 102 "Gmsh.l"
 return tAcos;
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 99 "Gmsh.l"
+#line 103 "Gmsh.l"
 return tAcos;
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 100 "Gmsh.l"
+#line 104 "Gmsh.l"
 return tAlias;
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 101 "Gmsh.l"
+#line 105 "Gmsh.l"
 return tAliasWithOptions;
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 102 "Gmsh.l"
+#line 106 "Gmsh.l"
 return tAsin;
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 103 "Gmsh.l"
+#line 107 "Gmsh.l"
 return tAsin;
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 104 "Gmsh.l"
+#line 108 "Gmsh.l"
 return tAtan;
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 105 "Gmsh.l"
+#line 109 "Gmsh.l"
 return tAtan;
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 106 "Gmsh.l"
+#line 110 "Gmsh.l"
 return tAtan2;
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 107 "Gmsh.l"
+#line 111 "Gmsh.l"
 return tAtan2;
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 108 "Gmsh.l"
+#line 112 "Gmsh.l"
 return tAttractor;
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 110 "Gmsh.l"
+#line 114 "Gmsh.l"
 return tBezier;
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 111 "Gmsh.l"
+#line 115 "Gmsh.l"
 return tBoundary;
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 112 "Gmsh.l"
+#line 116 "Gmsh.l"
 return tBump;
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 113 "Gmsh.l"
+#line 117 "Gmsh.l"
 return tBSpline;
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 114 "Gmsh.l"
+#line 118 "Gmsh.l"
 return tBoundingBox;
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 116 "Gmsh.l"
+#line 120 "Gmsh.l"
 return tCeil;
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 117 "Gmsh.l"
+#line 121 "Gmsh.l"
 return tCircle;
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 118 "Gmsh.l"
+#line 122 "Gmsh.l"
 return tCoherence;
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 119 "Gmsh.l"
+#line 123 "Gmsh.l"
 return tCombine;
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 120 "Gmsh.l"
+#line 124 "Gmsh.l"
 return tCosh;
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 121 "Gmsh.l"
+#line 125 "Gmsh.l"
 return tCos;
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 122 "Gmsh.l"
+#line 126 "Gmsh.l"
 return tCharacteristic;
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 123 "Gmsh.l"
+#line 127 "Gmsh.l"
 return tComplex;
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 124 "Gmsh.l"
+#line 128 "Gmsh.l"
 return tColor;
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 125 "Gmsh.l"
+#line 129 "Gmsh.l"
 return tColorTable;
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 126 "Gmsh.l"
+#line 130 "Gmsh.l"
 return tCoordinates;
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 127 "Gmsh.l"
+#line 131 "Gmsh.l"
 return tSpline;
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 128 "Gmsh.l"
+#line 132 "Gmsh.l"
 return tCall;
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 130 "Gmsh.l"
+#line 134 "Gmsh.l"
 return tDelete;
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 131 "Gmsh.l"
+#line 135 "Gmsh.l"
 return tDilate;
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 132 "Gmsh.l"
+#line 136 "Gmsh.l"
 return tDuplicata;
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 133 "Gmsh.l"
+#line 137 "Gmsh.l"
 return tDraw;
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 135 "Gmsh.l"
+#line 139 "Gmsh.l"
 return tExp;
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 136 "Gmsh.l"
+#line 140 "Gmsh.l"
 return tEllipse;
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 137 "Gmsh.l"
+#line 141 "Gmsh.l"
 return tEllipse;
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 138 "Gmsh.l"
+#line 142 "Gmsh.l"
 return tExtrude;
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 139 "Gmsh.l"
+#line 143 "Gmsh.l"
 return tElliptic;
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 140 "Gmsh.l"
+#line 144 "Gmsh.l"
 return tEndFor;
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 141 "Gmsh.l"
+#line 145 "Gmsh.l"
 return tEndIf;
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 142 "Gmsh.l"
+#line 146 "Gmsh.l"
 return tEuclidian;
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 143 "Gmsh.l"
+#line 147 "Gmsh.l"
 return tExit;
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 145 "Gmsh.l"
+#line 149 "Gmsh.l"
 return tFabs;
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 146 "Gmsh.l"
+#line 150 "Gmsh.l"
 return tField;
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 147 "Gmsh.l"
+#line 151 "Gmsh.l"
 return tFloor;
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 148 "Gmsh.l"
+#line 152 "Gmsh.l"
 return tFmod;
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 149 "Gmsh.l"
+#line 153 "Gmsh.l"
 return tFor;
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 150 "Gmsh.l"
+#line 154 "Gmsh.l"
 return tFunction;
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 152 "Gmsh.l"
+#line 156 "Gmsh.l"
 return tGetValue;
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 153 "Gmsh.l"
+#line 157 "Gmsh.l"
 return tGrad;
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 154 "Gmsh.l"
+#line 158 "Gmsh.l"
 return tGMSH_MAJOR_VERSION;
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 155 "Gmsh.l"
+#line 159 "Gmsh.l"
 return tGMSH_MINOR_VERSION;
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 156 "Gmsh.l"
+#line 160 "Gmsh.l"
 return tGMSH_PATCH_VERSION;
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 158 "Gmsh.l"
+#line 162 "Gmsh.l"
 return tHide;
 	YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 159 "Gmsh.l"
+#line 163 "Gmsh.l"
 return tHole;
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 160 "Gmsh.l"
+#line 164 "Gmsh.l"
 return tHypot;
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 162 "Gmsh.l"
+#line 166 "Gmsh.l"
 return tIn;
 	YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 163 "Gmsh.l"
+#line 167 "Gmsh.l"
 return tIf;
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 164 "Gmsh.l"
+#line 168 "Gmsh.l"
 return tIntersect;
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 166 "Gmsh.l"
+#line 170 "Gmsh.l"
 return tKnots;
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 168 "Gmsh.l"
+#line 172 "Gmsh.l"
 return tLatLon;
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 169 "Gmsh.l"
+#line 173 "Gmsh.l"
 return tLength;
 	YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 170 "Gmsh.l"
+#line 174 "Gmsh.l"
 return tLine;
 	YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 171 "Gmsh.l"
+#line 175 "Gmsh.l"
 return tLoop;
 	YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 172 "Gmsh.l"
+#line 176 "Gmsh.l"
 return tLog;
 	YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 173 "Gmsh.l"
+#line 177 "Gmsh.l"
 return tLog10;
 	YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 174 "Gmsh.l"
+#line 178 "Gmsh.l"
 return tLayers;
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 176 "Gmsh.l"
+#line 180 "Gmsh.l"
 return tModulo;
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 177 "Gmsh.l"
+#line 181 "Gmsh.l"
 return tMPI_Rank;
 	YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 178 "Gmsh.l"
+#line 182 "Gmsh.l"
 return tMPI_Size;
 	YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 180 "Gmsh.l"
+#line 184 "Gmsh.l"
 return tNurbs;
 	YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 182 "Gmsh.l"
+#line 186 "Gmsh.l"
 return tOrder;
 	YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 184 "Gmsh.l"
+#line 188 "Gmsh.l"
 return tPhysical;
 	YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 185 "Gmsh.l"
+#line 189 "Gmsh.l"
 return tPi;
 	YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 186 "Gmsh.l"
+#line 190 "Gmsh.l"
 return tPlane;
 	YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 187 "Gmsh.l"
+#line 191 "Gmsh.l"
 return tPoint;
 	YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 188 "Gmsh.l"
+#line 192 "Gmsh.l"
 return tProgression;
 	YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 189 "Gmsh.l"
+#line 193 "Gmsh.l"
 return tProgression;
 	YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 190 "Gmsh.l"
+#line 194 "Gmsh.l"
 return tParametric;
 	YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 191 "Gmsh.l"
+#line 195 "Gmsh.l"
 return tPolarSphere;
 	YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 192 "Gmsh.l"
+#line 196 "Gmsh.l"
 return tPrintf;
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 193 "Gmsh.l"
+#line 197 "Gmsh.l"
 return tPlugin;
 	YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 195 "Gmsh.l"
+#line 199 "Gmsh.l"
 return tRecombine;
 	YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 196 "Gmsh.l"
+#line 200 "Gmsh.l"
 return tRotate;
 	YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 197 "Gmsh.l"
+#line 201 "Gmsh.l"
 return tRuled;
 	YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 198 "Gmsh.l"
+#line 202 "Gmsh.l"
 return tRand;
 	YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 199 "Gmsh.l"
+#line 203 "Gmsh.l"
 return tReturn;
 	YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 201 "Gmsh.l"
+#line 205 "Gmsh.l"
 return tSqrt;
 	YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 202 "Gmsh.l"
+#line 206 "Gmsh.l"
 return tSin;
 	YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 203 "Gmsh.l"
+#line 207 "Gmsh.l"
 return tSinh;
 	YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 204 "Gmsh.l"
+#line 208 "Gmsh.l"
 return tSphere;
 	YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 205 "Gmsh.l"
+#line 209 "Gmsh.l"
 return tSpline;
 	YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 206 "Gmsh.l"
+#line 210 "Gmsh.l"
 return tSurface;
 	YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 207 "Gmsh.l"
+#line 211 "Gmsh.l"
 return tSymmetry;
 	YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 208 "Gmsh.l"
+#line 212 "Gmsh.l"
 return tSprintf;
 	YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 209 "Gmsh.l"
+#line 213 "Gmsh.l"
 return tStrCat;
 	YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 210 "Gmsh.l"
+#line 214 "Gmsh.l"
 return tStrPrefix;
 	YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 211 "Gmsh.l"
+#line 215 "Gmsh.l"
 return tStrRelative;
 	YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 212 "Gmsh.l"
+#line 216 "Gmsh.l"
 return tStructured;
 	YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 213 "Gmsh.l"
+#line 217 "Gmsh.l"
 return tShow;
 	YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 215 "Gmsh.l"
+#line 219 "Gmsh.l"
 return tTransfinite;
 	YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 216 "Gmsh.l"
+#line 220 "Gmsh.l"
 return tTranslate;
 	YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 217 "Gmsh.l"
+#line 221 "Gmsh.l"
 return tTanh;
 	YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 218 "Gmsh.l"
+#line 222 "Gmsh.l"
 return tTan;
 	YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 219 "Gmsh.l"
+#line 223 "Gmsh.l"
 return tThreshold;
 	YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 220 "Gmsh.l"
+#line 224 "Gmsh.l"
 return tToday;
 	YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 222 "Gmsh.l"
+#line 226 "Gmsh.l"
 return tUsing;
 	YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 224 "Gmsh.l"
+#line 228 "Gmsh.l"
 return tVolume;
 	YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 225 "Gmsh.l"
+#line 229 "Gmsh.l"
 return tPostView;
 	YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 227 "Gmsh.l"
+#line 231 "Gmsh.l"
 return tText2D;
 	YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 228 "Gmsh.l"
+#line 232 "Gmsh.l"
 return tText3D;
 	YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 229 "Gmsh.l"
+#line 233 "Gmsh.l"
 return tInterpolationScheme;
 	YY_BREAK
 case 142:
 YY_RULE_SETUP
-#line 230 "Gmsh.l"
+#line 234 "Gmsh.l"
 return tTime;
 	YY_BREAK
 case 143:
-#line 233 "Gmsh.l"
+#line 237 "Gmsh.l"
 case 144:
-#line 234 "Gmsh.l"
+#line 238 "Gmsh.l"
 case 145:
-#line 235 "Gmsh.l"
+#line 239 "Gmsh.l"
 case 146:
 YY_RULE_SETUP
-#line 235 "Gmsh.l"
+#line 239 "Gmsh.l"
 {yylval.d = atof((char *)yytext); return tDOUBLE;}
 	YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 237 "Gmsh.l"
+#line 241 "Gmsh.l"
 {yylval.c = strsave((char*)yytext); return tSTRING;}
 	YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 239 "Gmsh.l"
+#line 243 "Gmsh.l"
 return yytext[0];
 	YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 241 "Gmsh.l"
+#line 245 "Gmsh.l"
 ECHO;
 	YY_BREAK
-#line 1882 "Gmsh.yy.cpp"
+#line 1886 "Gmsh.yy.cpp"
 case YY_STATE_EOF(INITIAL):
 	yyterminate();
 
@@ -2424,8 +2428,6 @@ static void yy_load_buffer_state  (void)
 extern int isatty (int );
 #endif /* __cplusplus */
     
-#define isatty(arg) -1
-
 /* Initializes or reinitializes a buffer.
  * This function is sometimes called more than once on the same buffer,
  * such as during a yyrestart() or at EOF.
@@ -2866,7 +2868,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 241 "Gmsh.l"
+#line 245 "Gmsh.l"