Skip to content
Snippets Groups Projects
Gmsh.tab.cpp 261 KiB
Newer Older
			   &pc,&prc,NULL);
#line 1811 "Gmsh.y"
      Extrude_ProtudeCurve(TRANSLATE,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],
#line 1816 "Gmsh.y"
      Extrude_ProtudeCurve(ROTATE,(int)yyvsp[-8].d,0.,0.,0.,
			   yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,1,NULL);
#line 1821 "Gmsh.y"
      Extrude_ProtudeCurve(TRANSLATE_ROTATE,(int)yyvsp[-10].d,yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],
			   yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,1,NULL);
#line 1826 "Gmsh.y"
      extr.mesh.ExtrudeMesh = false;
      extr.mesh.Recombine = false;
    ;
#line 1831 "Gmsh.y"
      Extrude_ProtudeCurve(TRANSLATE,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],
#line 1836 "Gmsh.y"
      extr.mesh.ExtrudeMesh = false;
      extr.mesh.Recombine = false;
#line 1841 "Gmsh.y"
      Extrude_ProtudeCurve(ROTATE,(int)yyvsp[-12].d,0.,0.,0.,
			   yyvsp[-10].v[0],yyvsp[-10].v[1],yyvsp[-10].v[2],yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].d,1,&extr);
#line 1846 "Gmsh.y"
{
      extr.mesh.ExtrudeMesh = false;
      extr.mesh.Recombine = false;
    ;
    break;}
#line 1851 "Gmsh.y"
      Extrude_ProtudeCurve(TRANSLATE_ROTATE,(int)yyvsp[-14].d,yyvsp[-12].v[0],yyvsp[-12].v[1],yyvsp[-12].v[2],
			   yyvsp[-10].v[0],yyvsp[-10].v[1],yyvsp[-10].v[2],yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].d,1,&extr);
#line 1859 "Gmsh.y"
      Extrude_ProtudeSurface(TRANSLATE,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],
			     0.,0.,0.,0.,0.,0.,0.,0,NULL);
#line 1864 "Gmsh.y"
      Extrude_ProtudeSurface(ROTATE,(int)yyvsp[-8].d,0.,0.,0.,
			     yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,0,NULL);
#line 1869 "Gmsh.y"
      Extrude_ProtudeSurface(TRANSLATE_ROTATE,(int)yyvsp[-10].d,yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],
			     yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,0,NULL);
#line 1874 "Gmsh.y"
      extr.mesh.ExtrudeMesh = false;
      extr.mesh.Recombine = false;
#line 1879 "Gmsh.y"
{
      int vol = NEWREG();
      Extrude_ProtudeSurface(TRANSLATE,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],
			     0.,0.,0.,0.,0.,0.,0.,vol,&extr);
    ;
    break;}
case 241:
#line 1885 "Gmsh.y"
{
      extr.mesh.ExtrudeMesh = false;
      extr.mesh.Recombine = false;
    ;
    break;}
case 242:
#line 1891 "Gmsh.y"
{
      int vol = NEWREG();
      Extrude_ProtudeSurface(ROTATE,(int)yyvsp[-12].d,0.,0.,0.,
			     yyvsp[-10].v[0],yyvsp[-10].v[1],yyvsp[-10].v[2],yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].d,vol,&extr);
    ;
    break;}
case 243:
#line 1897 "Gmsh.y"
{
      extr.mesh.ExtrudeMesh = false;
      extr.mesh.Recombine = false;
    ;
    break;}
case 244:
#line 1903 "Gmsh.y"
{
      int vol = NEWREG();
      Extrude_ProtudeSurface(TRANSLATE_ROTATE,(int)yyvsp[-14].d,yyvsp[-12].v[0],yyvsp[-12].v[1],yyvsp[-12].v[2],
			     yyvsp[-10].v[0],yyvsp[-10].v[1],yyvsp[-10].v[2],yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].d,vol,&extr);
    ;
    break;}
case 245:
#line 1912 "Gmsh.y"
#line 1915 "Gmsh.y"
#line 1921 "Gmsh.y"
{
      double d;
      extr.mesh.ExtrudeMesh = true;
      extr.mesh.NbLayer = List_Nbr(yyvsp[-6].l);
      if(List_Nbr(yyvsp[-6].l) == List_Nbr(yyvsp[-4].l) && List_Nbr(yyvsp[-6].l) == List_Nbr(yyvsp[-2].l)){
	extr.mesh.NbElmLayer = (int*)Malloc(extr.mesh.NbLayer*sizeof(int));
	extr.mesh.ZonLayer = (int*)Malloc(extr.mesh.NbLayer*sizeof(int));
	extr.mesh.hLayer = (double*)Malloc(extr.mesh.NbLayer*sizeof(double));
	for(int i=0;i<List_Nbr(yyvsp[-6].l);i++){
	  List_Read(yyvsp[-6].l,i,&d);
	  extr.mesh.NbElmLayer[i] = (int)d;
	  List_Read(yyvsp[-4].l,i,&d);
	  extr.mesh.ZonLayer[i] = (int)d;
	  List_Read(yyvsp[-2].l,i,&d);
	  extr.mesh.hLayer[i] = d;
	}
      }
      else{
	vyyerror("Wrong layer definition {%d, %d, %d}", 
	       List_Nbr(yyvsp[-6].l), List_Nbr(yyvsp[-4].l), List_Nbr(yyvsp[-2].l));
      List_Delete(yyvsp[-6].l);
      List_Delete(yyvsp[-4].l);
      List_Delete(yyvsp[-2].l);
case 248:
#line 1947 "Gmsh.y"
      double d;
      extr.mesh.ExtrudeMesh = true;
      extr.mesh.NbLayer = List_Nbr(yyvsp[-4].l);
      if(List_Nbr(yyvsp[-4].l) == List_Nbr(yyvsp[-2].l)){
	extr.mesh.NbElmLayer = (int*)Malloc(extr.mesh.NbLayer*sizeof(int));
	extr.mesh.ZonLayer = (int*)Malloc(extr.mesh.NbLayer*sizeof(int));
	extr.mesh.hLayer = (double*)Malloc(extr.mesh.NbLayer*sizeof(double));
	for(int i=0;i<List_Nbr(yyvsp[-4].l);i++){
	  List_Read(yyvsp[-4].l,i,&d);
	  extr.mesh.NbElmLayer[i] = (int)d;
	  extr.mesh.ZonLayer[i] = 0;
	  List_Read(yyvsp[-2].l,i,&d);
	  extr.mesh.hLayer[i] = d;
	}
      }
      else{
	vyyerror("Wrong layer definition {%d, %d}", 
	       List_Nbr(yyvsp[-4].l), List_Nbr(yyvsp[-2].l));
      }
      List_Delete(yyvsp[-4].l);
      List_Delete(yyvsp[-2].l);
case 249:
#line 1971 "Gmsh.y"
{
      extr.mesh.Recombine = true;
    ;
    break;}
case 250:
#line 1982 "Gmsh.y"
      Curve *c;
      for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
	List_Read(yyvsp[-3].l,i,&d);
	j = (int)fabs(d);
        c = FindCurve(j,THEM);
	if(!c)
	  Msg(WARNING, "Unkown Curve %d", j);
	  c->Method = TRANSFINI;
	  c->ipar[0] = (int)yyvsp[-1].d;
	  c->ipar[1] = sign(d);
	  c->dpar[0] = 1.0;
      List_Delete(yyvsp[-3].l);
case 251:
#line 2000 "Gmsh.y"
      Curve *c;
      for(i=0;i<List_Nbr(yyvsp[-6].l);i++){
	List_Read(yyvsp[-6].l,i,&d);
	j = (int)fabs(d);
        c = FindCurve(j,THEM);
	if(!c)
	  Msg(WARNING, "Unkown Curve %d", j);
	  c->Method = TRANSFINI;
	  c->ipar[0] = (int)yyvsp[-4].d;
	  c->ipar[1] = sign(d); /* Progresion : code 1 ou -1 */
	  c->dpar[0] = fabs(yyvsp[-1].d);
      List_Delete(yyvsp[-6].l);
case 252:
#line 2018 "Gmsh.y"
      Curve *c;
      for(i=0;i<List_Nbr(yyvsp[-6].l);i++){
	List_Read(yyvsp[-6].l,i,&d);
	j = (int)fabs(d);
        c = FindCurve(j,THEM);
	if(!c)
	  Msg(WARNING, "Unkown Curve %d", j);
	  c->Method = TRANSFINI;
	  c->ipar[0] = (int)yyvsp[-4].d;
	  c->ipar[1] = 2*sign(d); /* Bump : code 2 ou -2 */
	  c->dpar[0] = fabs(yyvsp[-1].d);
      List_Delete(yyvsp[-6].l);
case 253:
#line 2036 "Gmsh.y"
      Surface *s = FindSurface((int)yyvsp[-4].d,THEM);
      if(!s)
	Msg(WARNING, "Unkown Surface %d", (int)yyvsp[-4].d);
	s->Method = TRANSFINI;
	k = List_Nbr(yyvsp[-1].l);
	if(k!=3 && k!=4){
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	  vyyerror("Wrong definition of Transfinite Surface %d: "
		   "%d points instead of 3 or 4" , yyvsp[-4].d, k) ;
	  for(i=0;i<k;i++){
	    List_Read(yyvsp[-1].l,i,&d);
	    j = (int)fabs(d);
	    s->ipar[i] = j;
      List_Delete(yyvsp[-1].l);
case 254:
#line 2058 "Gmsh.y"
      Surface *s = FindSurface((int)yyvsp[-4].d,THEM);
      if(!s)
	Msg(WARNING, "Unkown Surface %d", (int)yyvsp[-4].d);
        s->Method = ELLIPTIC;
        k = List_Nbr(yyvsp[-1].l);
        if(k != 4)
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	  vyyerror("Wrong definition of Elliptic Surface %d: "
		   "%d points instead of 4" , yyvsp[-4].d, k) ;
        else{
	  for(i=0;i<k;i++){
	    List_Read(yyvsp[-1].l,i,&d);
	    j = (int)fabs(d);
	    s->ipar[i] = j;
      List_Delete(yyvsp[-1].l);
case 255:
#line 2079 "Gmsh.y"
      Volume *v = FindVolume((int)yyvsp[-4].d,THEM);
      if(!v)
	Msg(WARNING, "Unkown Volume %d", (int)yyvsp[-4].d);
	v->Method = TRANSFINI;
	k = List_Nbr(yyvsp[-1].l);
	if(k!=6 && k!=8)
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	  vyyerror("Wrong definition of Transfinite Volume %d: "
		   "%d points instead of 6 or 8" , yyvsp[-4].d, k) ;
	  for(i=0;i<k;i++){
	    List_Read(yyvsp[-1].l,i,&d);
	    j = (int)fabs(d);
	    v->ipar[i] = j;
      List_Delete(yyvsp[-1].l);
case 256:
#line 2100 "Gmsh.y"
      Surface *s;
      for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
	List_Read(yyvsp[-3].l,i,&d);
	j = (int)d;
	s = FindSurface(j,THEM);
	  s->RecombineAngle = (yyvsp[-1].d > 0 && yyvsp[-1].d < 90) ? yyvsp[-1].d : 90;
      List_Delete(yyvsp[-3].l);
case 257:
#line 2114 "Gmsh.y"
      Surface *s;
      for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
	List_Read(yyvsp[-1].l,i,&d);
	j = (int)d;
        s = FindSurface(j,THEM);
	  s->Recombine = 1;
	  s->RecombineAngle = 30.;
        }
      List_Delete(yyvsp[-1].l);
case 258:
#line 2136 "Gmsh.y"
      ReplaceAllDuplicates(THEM);
case 259:
#line 2140 "Gmsh.y"
Christophe Geuzaine's avatar
Christophe Geuzaine committed
{ 
      IntersectAllSegmentsTogether();
    ;
Christophe Geuzaine's avatar
Christophe Geuzaine committed
    break;}
case 260:
#line 2151 "Gmsh.y"
{yyval.i = 1;;
case 261:
#line 2152 "Gmsh.y"
{yyval.i = 0;;
case 262:
#line 2153 "Gmsh.y"
{yyval.i = -1;;
case 263:
#line 2154 "Gmsh.y"
Christophe Geuzaine's avatar
Christophe Geuzaine committed
{yyval.i = -1;;
case 264:
#line 2155 "Gmsh.y"
{yyval.i = -1;;
case 265:
#line 2159 "Gmsh.y"
{ yyval.d = yyvsp[0].d;           ;
Christophe Geuzaine's avatar
Christophe Geuzaine committed
    break;}
case 266:
#line 2160 "Gmsh.y"
{ yyval.d = yyvsp[-1].d ;          ;
case 267:
#line 2161 "Gmsh.y"
{ yyval.d = -yyvsp[0].d ;         ;
case 268:
#line 2162 "Gmsh.y"
{ yyval.d = yyvsp[0].d;           ;
case 269:
#line 2163 "Gmsh.y"
{ yyval.d = !yyvsp[0].d ;         ;
case 270:
#line 2164 "Gmsh.y"
{ yyval.d = yyvsp[-2].d - yyvsp[0].d ;     ;
case 271:
#line 2165 "Gmsh.y"
{ yyval.d = yyvsp[-2].d + yyvsp[0].d ;     ;
Christophe Geuzaine's avatar
Christophe Geuzaine committed
    break;}
case 272:
#line 2166 "Gmsh.y"
{ yyval.d = yyvsp[-2].d * yyvsp[0].d ;     ;
    break;}
case 273:
#line 2168 "Gmsh.y"
{ 
      if(!yyvsp[0].d)
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	vyyerror("Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d);
      else
	yyval.d = yyvsp[-2].d / yyvsp[0].d ;     
    ;
case 274:
#line 2174 "Gmsh.y"
{ yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d ;  ;
case 275:
#line 2175 "Gmsh.y"
{ yyval.d = pow(yyvsp[-2].d,yyvsp[0].d) ;  ;
case 276:
#line 2176 "Gmsh.y"
{ yyval.d = yyvsp[-2].d < yyvsp[0].d ;     ;
case 277:
#line 2177 "Gmsh.y"
{ yyval.d = yyvsp[-2].d > yyvsp[0].d ;     ;
case 278:
#line 2178 "Gmsh.y"
{ yyval.d = yyvsp[-2].d <= yyvsp[0].d ;    ;
case 279:
#line 2179 "Gmsh.y"
{ yyval.d = yyvsp[-2].d >= yyvsp[0].d ;    ;
case 280:
#line 2180 "Gmsh.y"
{ yyval.d = yyvsp[-2].d == yyvsp[0].d ;    ;
case 281:
#line 2181 "Gmsh.y"
{ yyval.d = yyvsp[-2].d != yyvsp[0].d ;    ;
case 282:
#line 2182 "Gmsh.y"
{ yyval.d = yyvsp[-2].d && yyvsp[0].d ;    ;
case 283:
#line 2183 "Gmsh.y"
{ yyval.d = yyvsp[-2].d || yyvsp[0].d ;    ;
case 284:
#line 2184 "Gmsh.y"
{ yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d ; ;
case 285:
#line 2185 "Gmsh.y"
{ yyval.d = exp(yyvsp[-1].d);      ;
case 286:
#line 2186 "Gmsh.y"
{ yyval.d = log(yyvsp[-1].d);      ;
case 287:
#line 2187 "Gmsh.y"
{ yyval.d = log10(yyvsp[-1].d);    ;
case 288:
#line 2188 "Gmsh.y"
{ yyval.d = sqrt(yyvsp[-1].d);     ;
case 289:
#line 2189 "Gmsh.y"
{ yyval.d = sin(yyvsp[-1].d);      ;
case 290:
#line 2190 "Gmsh.y"
{ yyval.d = asin(yyvsp[-1].d);     ;
case 291:
#line 2191 "Gmsh.y"
{ yyval.d = cos(yyvsp[-1].d);      ;
case 292:
#line 2192 "Gmsh.y"
{ yyval.d = acos(yyvsp[-1].d);     ;
case 293:
#line 2193 "Gmsh.y"
{ yyval.d = tan(yyvsp[-1].d);      ;
case 294:
#line 2194 "Gmsh.y"
{ yyval.d = atan(yyvsp[-1].d);     ;
case 295:
#line 2195 "Gmsh.y"
{ yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ;
case 296:
#line 2196 "Gmsh.y"
{ yyval.d = sinh(yyvsp[-1].d);     ;
case 297:
#line 2197 "Gmsh.y"
{ yyval.d = cosh(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
Christophe Geuzaine committed
    break;}
case 298:
#line 2198 "Gmsh.y"
{ yyval.d = tanh(yyvsp[-1].d);     ;
David Colignon's avatar
David Colignon committed
    break;}
case 299:
#line 2199 "Gmsh.y"
{ yyval.d = fabs(yyvsp[-1].d);     ;
    break;}
case 300:
#line 2200 "Gmsh.y"
{ yyval.d = floor(yyvsp[-1].d);    ;
Christophe Geuzaine's avatar
Christophe Geuzaine committed
    break;}
case 301:
#line 2201 "Gmsh.y"
{ yyval.d = ceil(yyvsp[-1].d);     ;
case 302:
#line 2202 "Gmsh.y"
Christophe Geuzaine's avatar
Christophe Geuzaine committed
{ yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  ;
case 303:
#line 2203 "Gmsh.y"
{ yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  ;
case 304:
#line 2204 "Gmsh.y"
{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
case 305:
#line 2205 "Gmsh.y"
{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
case 306:
#line 2207 "Gmsh.y"
{ yyval.d = exp(yyvsp[-1].d);      ;
case 307:
#line 2208 "Gmsh.y"
{ yyval.d = log(yyvsp[-1].d);      ;
case 308:
#line 2209 "Gmsh.y"
{ yyval.d = log10(yyvsp[-1].d);    ;
Christophe Geuzaine's avatar
Christophe Geuzaine committed
    break;}
case 309:
#line 2210 "Gmsh.y"
{ yyval.d = sqrt(yyvsp[-1].d);     ;
case 310:
#line 2211 "Gmsh.y"
{ yyval.d = sin(yyvsp[-1].d);      ;
case 311:
#line 2212 "Gmsh.y"
{ yyval.d = asin(yyvsp[-1].d);     ;
case 312:
#line 2213 "Gmsh.y"
{ yyval.d = cos(yyvsp[-1].d);      ;
case 313:
#line 2214 "Gmsh.y"
{ yyval.d = acos(yyvsp[-1].d);     ;
case 314:
#line 2215 "Gmsh.y"
{ yyval.d = tan(yyvsp[-1].d);      ;
case 315:
#line 2216 "Gmsh.y"
{ yyval.d = atan(yyvsp[-1].d);     ;
case 316:
#line 2217 "Gmsh.y"
{ yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ;
case 317:
#line 2218 "Gmsh.y"
{ yyval.d = sinh(yyvsp[-1].d);     ;
case 318:
#line 2219 "Gmsh.y"
{ yyval.d = cosh(yyvsp[-1].d);     ;
case 319:
#line 2220 "Gmsh.y"
{ yyval.d = tanh(yyvsp[-1].d);     ;
case 320:
#line 2221 "Gmsh.y"
{ yyval.d = fabs(yyvsp[-1].d);     ;
case 321:
#line 2222 "Gmsh.y"
{ yyval.d = floor(yyvsp[-1].d);    ;
case 322:
#line 2223 "Gmsh.y"
{ yyval.d = ceil(yyvsp[-1].d);     ;
case 323:
#line 2224 "Gmsh.y"
{ yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  ;
    break;}
case 324:
#line 2225 "Gmsh.y"
{ yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  ;
case 325:
#line 2226 "Gmsh.y"
{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
case 326:
#line 2227 "Gmsh.y"
{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
case 327:
#line 2236 "Gmsh.y"
{ yyval.d = yyvsp[0].d; ;
case 328:
#line 2237 "Gmsh.y"
{ yyval.d = 3.141592653589793; ;
case 329:
#line 2238 "Gmsh.y"
{ yyval.d = ParUtil::Instance()->rank(); ;
case 330:
#line 2239 "Gmsh.y"
{ yyval.d = ParUtil::Instance()->size(); ;
    break;}
case 331:
#line 2244 "Gmsh.y"
      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	vyyerror("Unknown variable '%s'", yyvsp[0].c) ;
	yyval.d = 0. ;
      }
	yyval.d = *(double*)List_Pointer_Fast(pSymbol->val, 0) ;
case 332:
#line 2255 "Gmsh.y"
{
      TheSymbol.Name = yyvsp[-3].c ;
      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	vyyerror("Unknown variable '%s'", yyvsp[-3].c) ;
	yyval.d = 0. ;
      }
      else{
	if((pd = (double*)List_Pointer_Test(pSymbol->val, (int)yyvsp[-1].d)))
	  yyval.d = *pd ;
	else{
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	  vyyerror("Uninitialized variable '%s[%d]'", yyvsp[-3].c, (int)yyvsp[-1].d) ;
	  yyval.d = 0. ;
	}
      }
    ;
    break;}
case 333:
#line 2272 "Gmsh.y"
{
      TheSymbol.Name = yyvsp[-1].c ;
      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	vyyerror("Unknown variable '%s'", yyvsp[-1].c) ;
	yyval.d = 0. ;
      }
      else
	yyval.d = (*(double*)List_Pointer_Fast(pSymbol->val, 0) += yyvsp[0].i) ;
case 334:
#line 2283 "Gmsh.y"
{
      TheSymbol.Name = yyvsp[-4].c ;
      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	vyyerror("Unknown variable '%s'", yyvsp[-4].c) ;
	yyval.d = 0. ;
      }
      else{
	if((pd = (double*)List_Pointer_Test(pSymbol->val, (int)yyvsp[-2].d)))
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	  vyyerror("Uninitialized variable '%s[%d]'", yyvsp[-4].c, (int)yyvsp[-2].d) ;
	  yyval.d = 0. ;
	}
      }
    ;
    break;}
case 335:
#line 2302 "Gmsh.y"
      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-2].c))){
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	vyyerror("Unknown numeric option class '%s'", yyvsp[-2].c);
	yyval.d = 0. ;
      }
	if(!(pNumOpt =  (double (*) (int, int, double))Get_NumberOption(yyvsp[0].c, pNumCat))){
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	  vyyerror("Unknown numeric option '%s.%s'", yyvsp[-2].c, yyvsp[0].c);
	  yyval.d = 0. ;
	}
case 336:
#line 2318 "Gmsh.y"
      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))){
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	vyyerror("Unknown numeric option class '%s'", yyvsp[-5].c);
	yyval.d = 0. ;
      }
	if(!(pNumOpt =  (double (*) (int, int, double))Get_NumberOption(yyvsp[0].c, pNumCat))){
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	  vyyerror("Unknown numeric option '%s[%d].%s'", yyvsp[-5].c, (int)yyvsp[-3].d, yyvsp[0].c);
	  yyval.d = 0. ;
	else
	  yyval.d = pNumOpt((int)yyvsp[-3].d, GMSH_GET, 0);
case 337:
#line 2334 "Gmsh.y"
      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c))){
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	vyyerror("Unknown numeric option class '%s'", yyvsp[-3].c);
	yyval.d = 0. ;
      }
	if(!(pNumOpt =  (double (*) (int, int, double))Get_NumberOption(yyvsp[-1].c, pNumCat))){
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	  vyyerror("Unknown numeric option '%s.%s'", yyvsp[-3].c, yyvsp[-1].c);
	  yyval.d = 0. ;
	}
	else
	  yyval.d = pNumOpt(0, GMSH_SET|GMSH_GUI, pNumOpt(0, GMSH_GET, 0)+yyvsp[0].i);
case 338:
#line 2350 "Gmsh.y"
      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-6].c))){
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	vyyerror("Unknown numeric option class '%s'", yyvsp[-6].c);
	yyval.d = 0. ;
      }
	if(!(pNumOpt =  (double (*) (int, int, double))Get_NumberOption(yyvsp[-1].c, pNumCat))){
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	  vyyerror("Unknown numeric option '%s[%d].%s'", yyvsp[-6].c, (int)yyvsp[-4].d, yyvsp[-1].c);
	  yyval.d = 0. ;
	else
	  yyval.d = pNumOpt((int)yyvsp[-4].d, GMSH_SET|GMSH_GUI, pNumOpt((int)yyvsp[-4].d, GMSH_GET, 0)+yyvsp[0].i);
case 339:
#line 2368 "Gmsh.y"
Christophe Geuzaine's avatar
Christophe Geuzaine committed
{
      memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double)) ;
case 340:
#line 2372 "Gmsh.y"
{
      for(i=0 ; i<5 ; i++) yyval.v[i] = -yyvsp[0].v[i] ;
case 341:
#line 2376 "Gmsh.y"
Christophe Geuzaine's avatar
Christophe Geuzaine committed
{ 
      for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[0].v[i];
case 342:
#line 2380 "Gmsh.y"
{ 
      for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i] ;
case 343:
#line 2384 "Gmsh.y"
{
      for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i] ;
case 344:
#line 2390 "Gmsh.y"
Christophe Geuzaine's avatar
Christophe Geuzaine committed
{ 
      yyval.v[0]=yyvsp[-9].d;  yyval.v[1]=yyvsp[-7].d;  yyval.v[2]=yyvsp[-5].d;  yyval.v[3]=yyvsp[-3].d; yyval.v[4]=yyvsp[-1].d;
case 345:
#line 2394 "Gmsh.y"
{ 
      yyval.v[0]=yyvsp[-7].d;  yyval.v[1]=yyvsp[-5].d;  yyval.v[2]=yyvsp[-3].d;  yyval.v[3]=yyvsp[-1].d; yyval.v[4]=1.0;
case 346:
#line 2398 "Gmsh.y"
Christophe Geuzaine's avatar
Christophe Geuzaine committed
      yyval.v[0]=yyvsp[-5].d;  yyval.v[1]=yyvsp[-3].d;  yyval.v[2]=yyvsp[-1].d;  yyval.v[3]=0.0; yyval.v[4]=1.0;
case 347:
#line 2402 "Gmsh.y"
      yyval.v[0]=yyvsp[-5].d;  yyval.v[1]=yyvsp[-3].d;  yyval.v[2]=yyvsp[-1].d;  yyval.v[3]=0.0; yyval.v[4]=1.0;
case 348:
#line 2409 "Gmsh.y"
case 349:
#line 2412 "Gmsh.y"
David Colignon's avatar
David Colignon committed
{
    ;
    break;}
case 350:
#line 2418 "Gmsh.y"
case 351:
#line 2421 "Gmsh.y"
case 352:
#line 2427 "Gmsh.y"
Christophe Geuzaine's avatar
Christophe Geuzaine committed
{
    ;
    break;}
case 353:
#line 2430 "Gmsh.y"
Christophe Geuzaine's avatar
Christophe Geuzaine committed
       yyval.l=yyvsp[-1].l;
case 354:
#line 2434 "Gmsh.y"
       yyval.l=yyvsp[-1].l;
case 355:
#line 2441 "Gmsh.y"
Christophe Geuzaine's avatar
Christophe Geuzaine committed
{
      yyval.l = List_Create(2,1,sizeof(List_T*)) ;
Christophe Geuzaine's avatar
Christophe Geuzaine committed
      List_Add(yyval.l, &(yyvsp[0].l)) ;
    ;
    break;}
case 356:
#line 2446 "Gmsh.y"
{
      List_Add(yyval.l, &(yyvsp[0].l)) ;
    ;
    break;}
case 357:
#line 2454 "Gmsh.y"
      yyval.l = List_Create(2,1,sizeof(double)) ;
      List_Add(yyval.l, &(yyvsp[0].d)) ;
case 358:
#line 2459 "Gmsh.y"
      yyval.l = yyvsp[0].l ;
case 359:
#line 2463 "Gmsh.y"
{
      yyval.l=yyvsp[-1].l;
    ;
    break;}
case 360:
#line 2467 "Gmsh.y"
Christophe Geuzaine's avatar
Christophe Geuzaine committed
      yyval.l=yyvsp[-1].l;
      for(i=0 ; i<List_Nbr(yyval.l) ; i++){
	pd = (double*)List_Pointer(yyval.l, i);
	(*pd) = - (*pd);
case 361:
#line 2478 "Gmsh.y"
{ 
      yyval.l = List_Create(2,1,sizeof(double)) ; 
      for(d=yyvsp[-2].d ; (yyvsp[-2].d<yyvsp[0].d)?(d<=yyvsp[0].d):(d>=yyvsp[0].d) ; (yyvsp[-2].d<yyvsp[0].d)?(d+=1.):(d-=1.)) 
	List_Add(yyval.l, &d) ;
    ;
    break;}
case 362:
#line 2484 "Gmsh.y"
      yyval.l = List_Create(2,1,sizeof(double)) ; 
      if(!yyvsp[0].d || (yyvsp[-4].d<yyvsp[-2].d && yyvsp[0].d<0) || (yyvsp[-4].d>yyvsp[-2].d && yyvsp[0].d>0)){
        vyyerror("Wrong increment in '%g:%g:%g'", yyvsp[-4].d, yyvsp[-2].d, yyvsp[0].d) ;
	List_Add(yyval.l, &(yyvsp[-4].d)) ;
      }
      else
	for(d=yyvsp[-4].d ; (yyvsp[0].d>0)?(d<=yyvsp[-2].d):(d>=yyvsp[-2].d) ; d+=yyvsp[0].d)
	  List_Add(yyval.l, &d) ;
   ;
case 363:
#line 2495 "Gmsh.y"
{
      yyval.l = List_Create(2,1,sizeof(double)) ;
Christophe Geuzaine's avatar
Christophe Geuzaine committed
      TheSymbol.Name = yyvsp[-2].c ;
      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	vyyerror("Unknown variable '%s'", yyvsp[-2].c) ;
	d = 0.0 ;
	List_Add(yyval.l, &d);
      }
      else{
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	for(i = 0 ; i < List_Nbr(pSymbol->val) ; i++)
	  List_Add(yyval.l, (double*)List_Pointer_Fast(pSymbol->val, i)) ;
case 364:
#line 2509 "Gmsh.y"
      yyval.l = List_Create(2,1,sizeof(double)) ;
      TheSymbol.Name = yyvsp[-2].c ;
      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	vyyerror("Unknown variable '%s'", yyvsp[-2].c) ;
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	d = 0.0 ;
	List_Add(yyval.l, &d);
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	for(i = 0 ; i < List_Nbr(pSymbol->val) ; i++){
	  d = - *(double*)List_Pointer_Fast(pSymbol->val, i);
	  List_Add(yyval.l, &d) ;
	}
case 365:
#line 2525 "Gmsh.y"
      yyval.l = List_Create(2,1,sizeof(double)) ;
      TheSymbol.Name = yyvsp[-5].c ;
      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	vyyerror("Unknown variable '%s'", yyvsp[-5].c) ;
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	d = 0.0 ;
	List_Add(yyval.l, &d);
      }
      else{
	for(i = 0 ; i < List_Nbr(yyvsp[-2].l) ; i++){
	  j = (int)(*(double*)List_Pointer_Fast(yyvsp[-2].l, i));
	  if((pd = (double*)List_Pointer_Test(pSymbol->val, j)))
	    List_Add(yyval.l, pd) ;
	  else
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	    vyyerror("Uninitialized variable '%s[%d]'", yyvsp[-5].c, j) ;