Skip to content
Snippets Groups Projects
Gmsh.tab.cpp 281 KiB
Newer Older
      List_Delete(yyvsp[-1].l);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 237:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 2920 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Surface *s = FindSurface((int)yyvsp[-4].d, THEM);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yymsg(WARNING, "Unknown surface %d", (int)yyvsp[-4].d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
        int k = List_Nbr(yyvsp[-1].l);
	  yymsg(GERROR, "Wrong definition of Elliptic Surface %d: "
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		"%d points instead of 4" , (int)yyvsp[-4].d, k);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  for(int i = 0; i < k; i++){
	    double d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    List_Read(yyvsp[-1].l, i, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    int j = (int)fabs(d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    Vertex *v = FindPoint(j, THEM);
	    if(!v)
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	      yymsg(WARNING, "Unknown point %d", j);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    else
	      List_Add(s->TrsfPoints, &v);
      List_Delete(yyvsp[-1].l);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 238:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 2946 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Volume *v = FindVolume((int)yyvsp[-4].d, THEM);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yymsg(WARNING, "Unknown volume %d", (int)yyvsp[-4].d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	int k = List_Nbr(yyvsp[-1].l);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	if(k != 6 && k != 8)
	  yymsg(GERROR, "Wrong definition of Transfinite Volume %d: "
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		"%d points instead of 6 or 8" , (int)yyvsp[-4].d, k);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  for(int i = 0; i < k; i++){
	    double d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    List_Read(yyvsp[-1].l, i, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    int j = (int)fabs(d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    Vertex *vert = FindPoint(j, THEM);
	    if(!vert)
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	      yymsg(WARNING, "Unknown point %d", j);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    else
	      List_Add(v->TrsfPoints, &vert);
      List_Delete(yyvsp[-1].l);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 239:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 2972 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){
	double d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	List_Read(yyvsp[-3].l, i, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	int j = (int)d;
	Surface *s = FindSurface(j, THEM);
	  s->RecombineAngle = (yyvsp[-1].d > 0 && yyvsp[-1].d < 90) ? yyvsp[-1].d : 90;
      List_Delete(yyvsp[-3].l);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 240:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 2986 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
	double d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	List_Read(yyvsp[-1].l, i, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	int j = (int)d;
        Surface *s = FindSurface(j, THEM);
      List_Delete(yyvsp[-1].l);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 241:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3005 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ 
      ReplaceAllDuplicates(THEM);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 242:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3009 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ 
Christophe Geuzaine's avatar
Christophe Geuzaine committed
      IntersectAllSegmentsTogether();
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 243:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3018 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{yyval.i = 1;;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 244:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3019 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{yyval.i = 0;;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 245:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3020 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{yyval.i = -1;;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 246:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3021 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{yyval.i = -1;;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 247:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3022 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{yyval.i = -1;;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 248:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3026 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[0].d;           ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 249:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3027 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[-1].d;           ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 250:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3028 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = -yyvsp[0].d;          ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 251:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3029 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[0].d;           ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 252:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3030 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = !yyvsp[0].d;          ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 253:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3031 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[-2].d - yyvsp[0].d;      ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 254:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3032 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[-2].d + yyvsp[0].d;      ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 255:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3033 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[-2].d * yyvsp[0].d;      ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 256:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3035 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      if(!yyvsp[0].d)
	yymsg(GERROR, "Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d);
      else
	yyval.d = yyvsp[-2].d / yyvsp[0].d;     
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 257:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3041 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d;  ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 258:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3042 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = pow(yyvsp[-2].d, yyvsp[0].d);  ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 259:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3043 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[-2].d < yyvsp[0].d;      ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 260:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3044 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[-2].d > yyvsp[0].d;      ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 261:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3045 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[-2].d <= yyvsp[0].d;     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 262:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3046 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[-2].d >= yyvsp[0].d;     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 263:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3047 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[-2].d == yyvsp[0].d;     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 264:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3048 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[-2].d != yyvsp[0].d;     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 265:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3049 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[-2].d && yyvsp[0].d;     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 266:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3050 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[-2].d || yyvsp[0].d;     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 267:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3051 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d;  ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 268:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3052 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = exp(yyvsp[-1].d);      ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 269:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3053 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = log(yyvsp[-1].d);      ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 270:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3054 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = log10(yyvsp[-1].d);    ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 271:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3055 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = sqrt(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 272:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3056 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = sin(yyvsp[-1].d);      ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 273:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3057 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = asin(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 274:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3058 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = cos(yyvsp[-1].d);      ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 275:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3059 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = acos(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 276:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3060 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = tan(yyvsp[-1].d);      ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 277:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3061 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = atan(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 278:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3062 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 279:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3063 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = sinh(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 280:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3064 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = cosh(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 281:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3065 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = tanh(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 282:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3066 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = fabs(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 283:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3067 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = floor(yyvsp[-1].d);    ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 284:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3068 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = ceil(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 285:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3069 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 286:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3070 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 287:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3071 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 288:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3072 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 289:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3074 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = exp(yyvsp[-1].d);      ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 290:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3075 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = log(yyvsp[-1].d);      ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 291:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3076 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = log10(yyvsp[-1].d);    ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 292:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3077 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = sqrt(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 293:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3078 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = sin(yyvsp[-1].d);      ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 294:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3079 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = asin(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 295:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3080 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = cos(yyvsp[-1].d);      ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 296:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3081 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = acos(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 297:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3082 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = tan(yyvsp[-1].d);      ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 298:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3083 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = atan(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 299:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3084 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 300:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3085 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = sinh(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 301:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3086 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = cosh(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 302:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3087 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = tanh(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 303:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3088 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = fabs(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 304:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3089 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = floor(yyvsp[-1].d);    ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 305:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3090 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = ceil(yyvsp[-1].d);     ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 306:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3091 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 307:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3092 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 308:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3093 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 309:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3094 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 310:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3103 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = yyvsp[0].d; ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 311:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3104 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = 3.141592653589793; ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 312:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3105 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = ParUtil::Instance()->rank(); ;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 313:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3106 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = ParUtil::Instance()->size(); ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 314:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3107 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = GMSH_MAJOR_VERSION; ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 315:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3108 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = GMSH_MINOR_VERSION; ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 316:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3109 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ yyval.d = GMSH_PATCH_VERSION; ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 317:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3114 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Symbol TheSymbol;
      TheSymbol.Name = yyvsp[0].c;
      Symbol *pSymbol;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yymsg(GERROR, "Unknown variable '%s'", yyvsp[0].c);
	yyval.d = 0.;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yyval.d = *(double*)List_Pointer_Fast(pSymbol->val, 0);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[0].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 318:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3127 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Symbol TheSymbol;
      TheSymbol.Name = yyvsp[-3].c;
      Symbol *pSymbol;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yymsg(GERROR, "Unknown variable '%s'", yyvsp[-3].c);
	yyval.d = 0.;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	double *pd;
	if((pd = (double*)List_Pointer_Test(pSymbol->val, (int)yyvsp[-1].d)))
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  yyval.d = *pd;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-3].c, (int)yyvsp[-1].d);
	  yyval.d = 0.;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[-3].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 319:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3147 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Symbol TheSymbol;
      TheSymbol.Name = yyvsp[-2].c;
      Symbol *pSymbol;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yymsg(GERROR, "Unknown variable '%s'", yyvsp[-2].c);
	yyval.d = 0.;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      }
      else{
	yyval.d = List_Nbr(pSymbol->val);
      }
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[-2].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 320:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3161 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Symbol TheSymbol;
      TheSymbol.Name = yyvsp[-1].c;
      Symbol *pSymbol;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yymsg(GERROR, "Unknown variable '%s'", yyvsp[-1].c);
	yyval.d = 0.;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yyval.d = (*(double*)List_Pointer_Fast(pSymbol->val, 0) += yyvsp[0].i);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[-1].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 321:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3174 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Symbol TheSymbol;
      TheSymbol.Name = yyvsp[-4].c;
      Symbol *pSymbol;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yymsg(GERROR, "Unknown variable '%s'", yyvsp[-4].c);
	yyval.d = 0.;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	double *pd;
	if((pd = (double*)List_Pointer_Test(pSymbol->val, (int)yyvsp[-2].d)))
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  yyval.d = (*pd += yyvsp[0].i);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-4].c, (int)yyvsp[-2].d);
	  yyval.d = 0.;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[-4].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 322:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3197 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      double (*pNumOpt)(int num, int action, double value);
      StringXNumber *pNumCat;
      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-2].c))){
	yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-2].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yyval.d = 0.;
	if(!(pNumOpt =  (double (*) (int, int, double))Get_NumberOption(yyvsp[0].c, pNumCat))){
	  yymsg(GERROR, "Unknown numeric option '%s.%s'", yyvsp[-2].c, yyvsp[0].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  yyval.d = 0.;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[-2].c); Free(yyvsp[0].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 323:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3215 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      double (*pNumOpt)(int num, int action, double value);
      StringXNumber *pNumCat;
      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))){
	yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-5].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yyval.d = 0.;
	if(!(pNumOpt =  (double (*) (int, int, double))Get_NumberOption(yyvsp[0].c, pNumCat))){
	  yymsg(GERROR, "Unknown numeric option '%s[%d].%s'", yyvsp[-5].c, (int)yyvsp[-3].d, yyvsp[0].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  yyval.d = 0.;
	else
	  yyval.d = pNumOpt((int)yyvsp[-3].d, GMSH_GET, 0);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[-5].c); Free(yyvsp[0].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 324:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3233 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      double (*pNumOpt)(int num, int action, double value);
      StringXNumber *pNumCat;
      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c))){
	yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-3].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yyval.d = 0.;
	if(!(pNumOpt =  (double (*) (int, int, double))Get_NumberOption(yyvsp[-1].c, pNumCat))){
	  yymsg(GERROR, "Unknown numeric option '%s.%s'", yyvsp[-3].c, yyvsp[-1].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  yyval.d = 0.;
	else
	  yyval.d = pNumOpt(0, GMSH_SET|GMSH_GUI, pNumOpt(0, GMSH_GET, 0)+yyvsp[0].i);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[-3].c); Free(yyvsp[-1].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 325:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3251 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      double (*pNumOpt)(int num, int action, double value);
      StringXNumber *pNumCat;
      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-6].c))){
	yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-6].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yyval.d = 0.;
	if(!(pNumOpt =  (double (*) (int, int, double))Get_NumberOption(yyvsp[-1].c, pNumCat))){
	  yymsg(GERROR, "Unknown numeric option '%s[%d].%s'", yyvsp[-6].c, (int)yyvsp[-4].d, yyvsp[-1].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  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);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[-6].c); Free(yyvsp[-1].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 326:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3269 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ 
      yyval.d = GetValue(yyvsp[-3].c, yyvsp[-1].d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[-3].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 327:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3277 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 328:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3281 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      for(int i = 0; i < 5; i++) yyval.v[i] = -yyvsp[0].v[i];
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 329:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3285 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[0].v[i];
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 330:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3289 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i];
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 331:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3293 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Jean-François Remacle's avatar
 
Jean-François Remacle committed
      for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i];
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 332:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3300 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ 
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;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 333:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3304 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      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;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 334:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3308 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
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;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 335:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3312 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
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;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 336:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3319 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 337:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3322 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 338:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3328 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 339:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3331 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 340:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3337 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 341:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3340 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
       yyval.l = yyvsp[-1].l;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 342:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3344 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
       yyval.l = yyvsp[-1].l;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 343:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3351 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
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;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 344:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3356 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
      List_Add(yyval.l, &(yyvsp[0].l));
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 345:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3364 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = List_Create(2, 1, sizeof(double));
      List_Add(yyval.l, &(yyvsp[0].d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 346:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3369 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = yyvsp[0].l;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 347:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3373 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = yyvsp[-1].l;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 348:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3377 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = yyvsp[-1].l;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      double *pd;
      for(int i = 0; i < List_Nbr(yyval.l); i++){
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	pd = (double*)List_Pointer(yyval.l, i);
	(*pd) = - (*pd);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 349:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3389 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{ 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = List_Create(2, 1, sizeof(double)); 
      for(double d = yyvsp[-2].d; (yyvsp[-2].d < yyvsp[0].d) ? (d <= yyvsp[0].d) : (d >= yyvsp[0].d); (yyvsp[-2].d < yyvsp[0].d) ? (d += 1.) : (d -= 1.)) 
	List_Add(yyval.l, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 350:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3395 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = List_Create(2, 1, sizeof(double)); 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      if(!yyvsp[0].d || (yyvsp[-4].d < yyvsp[-2].d && yyvsp[0].d < 0) || (yyvsp[-4].d > yyvsp[-2].d && yyvsp[0].d > 0)){
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
        yymsg(GERROR, "Wrong increment in '%g:%g:%g'", yyvsp[-4].d, yyvsp[-2].d, yyvsp[0].d);
	List_Add(yyval.l, &(yyvsp[-4].d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	for(double d = yyvsp[-4].d; (yyvsp[0].d > 0) ? (d <= yyvsp[-2].d) : (d >= yyvsp[-2].d); d += yyvsp[0].d)
	  List_Add(yyval.l, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
   ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 351:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3406 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      // Returns the coordinates of a point and fills a list with it.
      // This allows to ensure e.g. that relative point positions are
      // always conserved
      Vertex *v = FindPoint((int)yyvsp[-1].d, THEM);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = List_Create(3, 1, sizeof(double));      
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      if(!v) {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yymsg(GERROR, "Unknown point '%d'", (int) yyvsp[-1].d);
	double d = 0.0;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	List_Add(yyval.l, &d);
	List_Add(yyval.l, &d);
	List_Add(yyval.l, &d);
      }
      else{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	List_Add(yyval.l, &v->Pos.X);
	List_Add(yyval.l, &v->Pos.Y);
	List_Add(yyval.l, &v->Pos.Z);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      }
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 352:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3426 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){
	Shape *s = (Shape*) List_Pointer(yyvsp[0].l, i);
	double d = s->Num;
	List_Add(yyval.l, &d);
      }
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete(yyvsp[0].l);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 353:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3436 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){
	Shape *s = (Shape*) List_Pointer(yyvsp[0].l, i);
	double d = s->Num;
	List_Add(yyval.l, &d);
      }
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete(yyvsp[0].l);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 354:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3446 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      // FIXME: The syntax for this is ugly: we get double semi-colons
      // at the end of the line
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){
	Shape *s = (Shape*) List_Pointer(yyvsp[0].l, i);
	double d = s->Num;
	List_Add(yyval.l, &d);
      }
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete(yyvsp[0].l);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 355:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3458 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = List_Create(2, 1, sizeof(double));
      Symbol TheSymbol;
      TheSymbol.Name = yyvsp[-2].c;
      Symbol *pSymbol;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yymsg(GERROR, "Unknown variable '%s'", yyvsp[-2].c);
	double d = 0.0;
	List_Add(yyval.l, &d);
      }
      else{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	for(int i = 0; i < List_Nbr(pSymbol->val); i++)
	  List_Add(yyval.l, (double*)List_Pointer_Fast(pSymbol->val, i));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[-2].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 356:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3475 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = List_Create(2, 1, sizeof(double));
      Symbol TheSymbol;
      TheSymbol.Name = yyvsp[-2].c;
      Symbol *pSymbol;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yymsg(GERROR, "Unknown variable '%s'", yyvsp[-2].c);
	double d = 0.0;
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	List_Add(yyval.l, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	for(int i = 0; i < List_Nbr(pSymbol->val); i++){
	  double d = - *(double*)List_Pointer_Fast(pSymbol->val, i);
	  List_Add(yyval.l, &d);
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[-2].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 357:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3494 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = List_Create(2, 1, sizeof(double));
      Symbol TheSymbol;
      TheSymbol.Name = yyvsp[-5].c;
      Symbol *pSymbol;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yymsg(GERROR, "Unknown variable '%s'", yyvsp[-5].c);
	double d = 0.0;
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	List_Add(yyval.l, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
	  int j = (int)(*(double*)List_Pointer_Fast(yyvsp[-2].l, i));
	  double *pd;
	  if((pd = (double*)List_Pointer_Test(pSymbol->val, j)))
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    List_Add(yyval.l, pd);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-5].c, j);	  
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[-5].c);
      List_Delete(yyvsp[-2].l);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 358:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3518 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = List_Create(2, 1, sizeof(double));
      Symbol TheSymbol;
      TheSymbol.Name = yyvsp[-5].c;
      Symbol *pSymbol;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yymsg(GERROR, "Unknown variable '%s'", yyvsp[-5].c);
	double d = 0.0;
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	List_Add(yyval.l, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
	  int j = (int)(*(double*)List_Pointer_Fast(yyvsp[-2].l, i));
	  double *pd;
	  if((pd = (double*)List_Pointer_Test(pSymbol->val, j))){
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    double d = - *pd;
	    List_Add(yyval.l, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-5].c, j);	  
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[-5].c);
      List_Delete(yyvsp[-2].l);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 359:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3547 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = List_Create(2, 1, sizeof(double));
      List_Add(yyval.l, &(yyvsp[0].d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 360:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3552 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = yyvsp[0].l;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 361:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3556 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Add(yyval.l, &(yyvsp[0].d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 362:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3560 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){
	double d;
	List_Read(yyvsp[0].l, i, &d);
	List_Add(yyval.l, &d);
      List_Delete(yyvsp[0].l);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 363:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3573 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.u = PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 364:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3577 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
      yyval.u = PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 365:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3589 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      int flag;
      yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag);
      if(flag) yymsg(GERROR, "Unknown color '%s'", yyvsp[0].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[0].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 366:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3596 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      unsigned int (*pColOpt)(int num, int action, unsigned int value);
      StringXColor *pColCat;
      if(!(pColCat = Get_ColorOptionCategory(yyvsp[-4].c))){
	yymsg(GERROR, "Unknown color option class '%s'", yyvsp[-4].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	yyval.u = 0;
	if(!(pColOpt =  (unsigned int (*) (int, int, unsigned int))Get_ColorOption(yyvsp[0].c, pColCat))){
	  yymsg(GERROR, "Unknown color option '%s.Color.%s'", yyvsp[-4].c, yyvsp[0].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  yyval.u = 0;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  yyval.u = pColOpt(0, GMSH_GET, 0);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[-4].c); Free(yyvsp[0].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 367:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3618 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = yyvsp[-1].l;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 368:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3622 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = List_Create(256, 10, sizeof(unsigned int));
      GmshColorTable *ct = Get_ColorTable((int)yyvsp[-3].d);
	yymsg(GERROR, "View[%d] does not exist", (int)yyvsp[-3].d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	for(int i = 0; i < ct->size; i++) 
	  List_Add(yyval.l, &ct->table[i]);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      Free(yyvsp[-5].c);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 369:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3637 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.l = List_Create(256, 10, sizeof(unsigned int));
      List_Add(yyval.l, &(yyvsp[0].u));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 370:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3642 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Jean-François Remacle's avatar
 
Jean-François Remacle committed
      List_Add(yyval.l, &(yyvsp[0].u));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;
    break;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
case 371:
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
#line 3649 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
{
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      yyval.c = yyvsp[0].c;