Newer
Older
TheSymbol.Name = (yyvsp[(2) - (8)].c);
if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))){
TheSymbol.val = List_Create(1, 1, sizeof(double));
List_Put(TheSymbol.val, 0, &(yyvsp[(5) - (8)].d));
List_Write(pSymbol->val, 0, &(yyvsp[(5) - (8)].d));
yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno;
ImbricatedLoop++;
if(ImbricatedLoop > MAX_RECUR_LOOPS-1){
yymsg(GERROR, "Reached maximum number of imbricated loops");
ImbricatedLoop = MAX_RECUR_LOOPS-1;
}
if((yyvsp[(5) - (8)].d) > (yyvsp[(7) - (8)].d)) skip_until("For", "EndFor");
;}
break;
case 157:
#line 2168 "Gmsh.y"
{
LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d);
LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d);
LoopControlVariablesTab[ImbricatedLoop][2] = (yyvsp[(9) - (10)].d);
LoopControlVariablesNameTab[ImbricatedLoop] = (yyvsp[(2) - (10)].c);
TheSymbol.Name = (yyvsp[(2) - (10)].c);
if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))){
TheSymbol.val = List_Create(1, 1, sizeof(double));
List_Put(TheSymbol.val, 0, &(yyvsp[(5) - (10)].d));
List_Write(pSymbol->val, 0, &(yyvsp[(5) - (10)].d));
yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno;
ImbricatedLoop++;
if(ImbricatedLoop > MAX_RECUR_LOOPS-1){
yymsg(GERROR, "Reached maximum number of imbricated loops");
ImbricatedLoop = MAX_RECUR_LOOPS-1;
}
if(((yyvsp[(9) - (10)].d) > 0. && (yyvsp[(5) - (10)].d) > (yyvsp[(7) - (10)].d)) || ((yyvsp[(9) - (10)].d) < 0. && (yyvsp[(5) - (10)].d) < (yyvsp[(7) - (10)].d)))
;}
break;
case 158:
#line 2195 "Gmsh.y"
{
if(ImbricatedLoop <= 0){
yymsg(GERROR, "Invalid For/EndFor loop");
ImbricatedLoop = 0;
double x0 = LoopControlVariablesTab[ImbricatedLoop-1][0];
double x1 = LoopControlVariablesTab[ImbricatedLoop-1][1];
double step = LoopControlVariablesTab[ImbricatedLoop-1][2];
int do_next = (step > 0.) ? (x0+step <= x1) : (x0+step >= x1);
if(do_next){
LoopControlVariablesTab[ImbricatedLoop-1][0] +=
LoopControlVariablesTab[ImbricatedLoop-1][2];
Symbol TheSymbol;
TheSymbol.Name = LoopControlVariablesNameTab[ImbricatedLoop-1];
Symbol *pSymbol;
if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol)))
yymsg(GERROR, "Unknown loop variable");
else
*(double*)List_Pointer_Fast(pSymbol->val, 0) +=
LoopControlVariablesTab[ImbricatedLoop-1][2];
}
fsetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop-1]);
yylineno = yylinenoImbricatedLoopsTab[ImbricatedLoop-1];
}
else{
ImbricatedLoop--;
;}
break;
case 159:
#line 2227 "Gmsh.y"
{
if(!FunctionManager::Instance()->createFunction((yyvsp[(2) - (2)].c), yyin, yyname, yylineno))
yymsg(GERROR, "Redefinition of function %s", (yyvsp[(2) - (2)].c));
;}
break;
case 160:
#line 2234 "Gmsh.y"
{
if(!FunctionManager::Instance()->leaveFunction(&yyin, yyname, yylineno))

Christophe Geuzaine
committed
yymsg(GERROR, "Error while exiting function");
;}
break;
case 161:
#line 2239 "Gmsh.y"
{
if(!FunctionManager::Instance()->enterFunction((yyvsp[(2) - (3)].c), &yyin, yyname, yylineno))
yymsg(GERROR, "Unknown function %s", (yyvsp[(2) - (3)].c));
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
;}
break;
case 162:
#line 2245 "Gmsh.y"
{
if(!(yyvsp[(3) - (4)].d)) skip_until("If", "EndIf");
;}
break;
case 163:
#line 2249 "Gmsh.y"
{
;}
break;
case 164:
#line 2258 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (5)].l),
(yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
NULL, (yyval.l));
List_Delete((yyvsp[(4) - (5)].l));
;}
break;
case 165:
#line 2266 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShapes(ROTATE, (yyvsp[(10) - (11)].l),
0., 0., 0., (yyvsp[(3) - (11)].v)[0], (yyvsp[(3) - (11)].v)[1], (yyvsp[(3) - (11)].v)[2], (yyvsp[(5) - (11)].v)[0], (yyvsp[(5) - (11)].v)[1], (yyvsp[(5) - (11)].v)[2], (yyvsp[(7) - (11)].d),
NULL, (yyval.l));
List_Delete((yyvsp[(10) - (11)].l));
;}
break;
case 166:
#line 2274 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l),
(yyvsp[(3) - (13)].v)[0], (yyvsp[(3) - (13)].v)[1], (yyvsp[(3) - (13)].v)[2], (yyvsp[(5) - (13)].v)[0], (yyvsp[(5) - (13)].v)[1], (yyvsp[(5) - (13)].v)[2], (yyvsp[(7) - (13)].v)[0], (yyvsp[(7) - (13)].v)[1], (yyvsp[(7) - (13)].v)[2], (yyvsp[(9) - (13)].d),
NULL, (yyval.l));
List_Delete((yyvsp[(12) - (13)].l));
;}
break;
case 167:
#line 2282 "Gmsh.y"
{
;}
break;
case 168:
#line 2286 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l),
(yyvsp[(2) - (7)].v)[0], (yyvsp[(2) - (7)].v)[1], (yyvsp[(2) - (7)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
&extr, (yyval.l));
List_Delete((yyvsp[(4) - (7)].l));
;}
break;
case 169:
#line 2294 "Gmsh.y"
{
;}
break;
case 170:
#line 2298 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l),
0., 0., 0., (yyvsp[(3) - (13)].v)[0], (yyvsp[(3) - (13)].v)[1], (yyvsp[(3) - (13)].v)[2], (yyvsp[(5) - (13)].v)[0], (yyvsp[(5) - (13)].v)[1], (yyvsp[(5) - (13)].v)[2], (yyvsp[(7) - (13)].d),
&extr, (yyval.l));
List_Delete((yyvsp[(10) - (13)].l));
;}
break;
case 171:
#line 2306 "Gmsh.y"
{
;}
break;
case 172:
#line 2310 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l),
(yyvsp[(3) - (15)].v)[0], (yyvsp[(3) - (15)].v)[1], (yyvsp[(3) - (15)].v)[2], (yyvsp[(5) - (15)].v)[0], (yyvsp[(5) - (15)].v)[1], (yyvsp[(5) - (15)].v)[2], (yyvsp[(7) - (15)].v)[0], (yyvsp[(7) - (15)].v)[1], (yyvsp[(7) - (15)].v)[2], (yyvsp[(9) - (15)].d),
&extr, (yyval.l));
List_Delete((yyvsp[(12) - (15)].l));
;}
break;
case 173:
#line 2318 "Gmsh.y"
{
;}
break;
case 174:
#line 2322 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
&extr, (yyval.l));
List_Delete((yyvsp[(3) - (6)].l));
;}
break;
case 175:
#line 2329 "Gmsh.y"
{
;}
break;
case 176:
#line 2333 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
extr.mesh.ViewIndex = (int)(yyvsp[(4) - (10)].d);
ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(7) - (10)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
&extr, (yyval.l));
Free((yyvsp[(2) - (10)].c));
List_Delete((yyvsp[(7) - (10)].l));
;}
break;
case 177:
#line 2345 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d),
(yyvsp[(6) - (8)].v)[0], (yyvsp[(6) - (8)].v)[1], (yyvsp[(6) - (8)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
NULL, (yyval.l));
;}
break;
case 178:
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d),
(yyvsp[(6) - (8)].v)[0], (yyvsp[(6) - (8)].v)[1], (yyvsp[(6) - (8)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
NULL, (yyval.l));
;}
break;
case 179:
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d),
(yyvsp[(6) - (8)].v)[0], (yyvsp[(6) - (8)].v)[1], (yyvsp[(6) - (8)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
NULL, (yyval.l));
;}
break;
case 180:
#line 2366 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d),
0., 0., 0., (yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], (yyvsp[(8) - (12)].v)[0], (yyvsp[(8) - (12)].v)[1], (yyvsp[(8) - (12)].v)[2], (yyvsp[(10) - (12)].d),
NULL, (yyval.l));
;}
break;
case 181:
#line 2373 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d),
0., 0., 0., (yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], (yyvsp[(8) - (12)].v)[0], (yyvsp[(8) - (12)].v)[1], (yyvsp[(8) - (12)].v)[2], (yyvsp[(10) - (12)].d),
NULL, (yyval.l));
;}
break;
case 182:
#line 2380 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d),
0., 0., 0., (yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], (yyvsp[(8) - (12)].v)[0], (yyvsp[(8) - (12)].v)[1], (yyvsp[(8) - (12)].v)[2], (yyvsp[(10) - (12)].d),
NULL, (yyval.l));
;}
break;
case 183:
#line 2387 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d),
(yyvsp[(6) - (14)].v)[0], (yyvsp[(6) - (14)].v)[1], (yyvsp[(6) - (14)].v)[2], (yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2], (yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2], (yyvsp[(12) - (14)].d),
NULL, (yyval.l));
;}
break;
case 184:
#line 2394 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d),
(yyvsp[(6) - (14)].v)[0], (yyvsp[(6) - (14)].v)[1], (yyvsp[(6) - (14)].v)[2], (yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2], (yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2], (yyvsp[(12) - (14)].d),
NULL, (yyval.l));
;}
break;
case 185:
#line 2401 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d),
(yyvsp[(6) - (14)].v)[0], (yyvsp[(6) - (14)].v)[1], (yyvsp[(6) - (14)].v)[2], (yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2], (yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2], (yyvsp[(12) - (14)].d),
NULL, (yyval.l));
;}
break;
case 186:
#line 2408 "Gmsh.y"
{
;}
break;
case 187:
#line 2412 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d),
(yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
&extr, (yyval.l));
;}
break;
case 188:
#line 2419 "Gmsh.y"
{
;}
break;
case 189:
#line 2423 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d),
(yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
&extr, (yyval.l));
;}
break;
case 190:
#line 2430 "Gmsh.y"
{
;}
break;
case 191:
#line 2434 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d),
(yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
&extr, (yyval.l));
;}
break;
case 192:
#line 2441 "Gmsh.y"
{
;}
break;
case 193:
#line 2445 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d),
0., 0., 0., (yyvsp[(6) - (16)].v)[0], (yyvsp[(6) - (16)].v)[1], (yyvsp[(6) - (16)].v)[2], (yyvsp[(8) - (16)].v)[0], (yyvsp[(8) - (16)].v)[1], (yyvsp[(8) - (16)].v)[2], (yyvsp[(10) - (16)].d),
&extr, (yyval.l));
;}
break;
case 194:
#line 2452 "Gmsh.y"
{
;}
break;
case 195:
#line 2456 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d),
0., 0., 0., (yyvsp[(6) - (16)].v)[0], (yyvsp[(6) - (16)].v)[1], (yyvsp[(6) - (16)].v)[2], (yyvsp[(8) - (16)].v)[0], (yyvsp[(8) - (16)].v)[1], (yyvsp[(8) - (16)].v)[2], (yyvsp[(10) - (16)].d),
&extr, (yyval.l));
;}
break;
case 196:
#line 2463 "Gmsh.y"
{
;}
break;
case 197:
#line 2467 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d),
0., 0., 0., (yyvsp[(6) - (16)].v)[0], (yyvsp[(6) - (16)].v)[1], (yyvsp[(6) - (16)].v)[2], (yyvsp[(8) - (16)].v)[0], (yyvsp[(8) - (16)].v)[1], (yyvsp[(8) - (16)].v)[2], (yyvsp[(10) - (16)].d),
&extr, (yyval.l));
;}
break;
case 198:
#line 2474 "Gmsh.y"
{
;}
break;
case 199:
#line 2478 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d),
(yyvsp[(6) - (18)].v)[0], (yyvsp[(6) - (18)].v)[1], (yyvsp[(6) - (18)].v)[2], (yyvsp[(8) - (18)].v)[0], (yyvsp[(8) - (18)].v)[1], (yyvsp[(8) - (18)].v)[2], (yyvsp[(10) - (18)].v)[0], (yyvsp[(10) - (18)].v)[1], (yyvsp[(10) - (18)].v)[2], (yyvsp[(12) - (18)].d),
&extr, (yyval.l));
;}
break;
case 200:
#line 2485 "Gmsh.y"
{
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
;}
break;
case 201:
#line 2489 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d),
(yyvsp[(6) - (18)].v)[0], (yyvsp[(6) - (18)].v)[1], (yyvsp[(6) - (18)].v)[2], (yyvsp[(8) - (18)].v)[0], (yyvsp[(8) - (18)].v)[1], (yyvsp[(8) - (18)].v)[2], (yyvsp[(10) - (18)].v)[0], (yyvsp[(10) - (18)].v)[1], (yyvsp[(10) - (18)].v)[2], (yyvsp[(12) - (18)].d),
&extr, (yyval.l));
;}
break;
case 202:
#line 2496 "Gmsh.y"
{
extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
;}
break;
case 203:
#line 2500 "Gmsh.y"
{
(yyval.l) = List_Create(2, 1, sizeof(Shape));
ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d),
(yyvsp[(6) - (18)].v)[0], (yyvsp[(6) - (18)].v)[1], (yyvsp[(6) - (18)].v)[2], (yyvsp[(8) - (18)].v)[0], (yyvsp[(8) - (18)].v)[1], (yyvsp[(8) - (18)].v)[2], (yyvsp[(10) - (18)].v)[0], (yyvsp[(10) - (18)].v)[1], (yyvsp[(10) - (18)].v)[2], (yyvsp[(12) - (18)].d),
&extr, (yyval.l));
;}
break;
case 204:
#line 2511 "Gmsh.y"
{
;}
break;
case 205:
#line 2514 "Gmsh.y"
{
;}
break;
case 206:
#line 2520 "Gmsh.y"
{
extr.mesh.ExtrudeMesh = true;
extr.mesh.NbLayer = 1;
extr.mesh.NbElmLayer.clear();
extr.mesh.hLayer.clear();
extr.mesh.NbElmLayer.push_back((int)fabs((yyvsp[(3) - (5)].d)));
;}
break;
case 207:
#line 2529 "Gmsh.y"
{
double d;
extr.mesh.ExtrudeMesh = true;
extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l));
if(List_Nbr((yyvsp[(3) - (7)].l)) == List_Nbr((yyvsp[(5) - (7)].l))){
for(int i = 0; i < List_Nbr((yyvsp[(3) - (7)].l)); i++){
List_Read((yyvsp[(3) - (7)].l), i, &d);
List_Read((yyvsp[(5) - (7)].l), i, &d);
List_Nbr((yyvsp[(3) - (7)].l)), List_Nbr((yyvsp[(5) - (7)].l)));
}
List_Delete((yyvsp[(3) - (7)].l));
List_Delete((yyvsp[(5) - (7)].l));
;}
break;
case 208:
#line 2551 "Gmsh.y"
{
yymsg(WARNING, "Explicit region numbers in layers are deprecated");
double d;
extr.mesh.ExtrudeMesh = true;
extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (9)].l));
if(List_Nbr((yyvsp[(3) - (9)].l)) == List_Nbr((yyvsp[(5) - (9)].l)) && List_Nbr((yyvsp[(3) - (9)].l)) == List_Nbr((yyvsp[(7) - (9)].l))){
for(int i = 0; i < List_Nbr((yyvsp[(3) - (9)].l)); i++){
List_Read((yyvsp[(3) - (9)].l), i, &d);
List_Read((yyvsp[(7) - (9)].l), i, &d);
List_Nbr((yyvsp[(3) - (9)].l)), List_Nbr((yyvsp[(5) - (9)].l)), List_Nbr((yyvsp[(7) - (9)].l)));
}
List_Delete((yyvsp[(3) - (9)].l));
List_Delete((yyvsp[(5) - (9)].l));
List_Delete((yyvsp[(7) - (9)].l));
;}
break;
case 209:
#line 2575 "Gmsh.y"
{
;}
break;
case 210:
#line 2579 "Gmsh.y"
{
int num = (int)(yyvsp[(3) - (9)].d);
if(FindSurface(num)){
yymsg(GERROR, "Surface %d already exists", num);
}
else{
Surface *s = Create_Surface(num, MSH_SURF_DISCRETE);
Tree_Add(THEM->Surfaces, &s);
extr.mesh.Holes[num].first = (yyvsp[(8) - (9)].d);
for(int i = 0; i < List_Nbr((yyvsp[(6) - (9)].l)); i++){
List_Read((yyvsp[(6) - (9)].l), i, &d);
List_Delete((yyvsp[(6) - (9)].l));
;}
break;
case 211:
#line 2603 "Gmsh.y"
{
for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){
List_Read((yyvsp[(3) - (6)].l), i, &d);
c->Method = TRANSFINI;
c->ipar[0] = ((yyvsp[(5) - (6)].d)>2)?(int)(yyvsp[(5) - (6)].d):2;
c->ipar[1] = sign(d);
c->dpar[0] = 1.0;
List_Delete((yyvsp[(3) - (6)].l));
;}
break;
case 212:
#line 2621 "Gmsh.y"
{
for(int i = 0; i < List_Nbr((yyvsp[(3) - (9)].l)); i++){
List_Read((yyvsp[(3) - (9)].l), i, &d);
c->Method = TRANSFINI;
c->ipar[0] = ((yyvsp[(5) - (9)].d)>2)?(int)(yyvsp[(5) - (9)].d):2;
c->ipar[1] = sign(d); /* Progresion : code 1 ou -1 */
c->dpar[0] = fabs((yyvsp[(8) - (9)].d));
List_Delete((yyvsp[(3) - (9)].l));
;}
break;
case 213:
#line 2639 "Gmsh.y"
{
for(int i = 0; i < List_Nbr((yyvsp[(3) - (9)].l)); i++){
List_Read((yyvsp[(3) - (9)].l), i, &d);
c->Method = TRANSFINI;
c->ipar[0] = ((yyvsp[(5) - (9)].d)>2)?(int)(yyvsp[(5) - (9)].d):2;
c->ipar[1] = 2*sign(d); /* Bump : code 2 ou -2 */
c->dpar[0] = fabs((yyvsp[(8) - (9)].d));
List_Delete((yyvsp[(3) - (9)].l));
;}
break;
case 214:
#line 2657 "Gmsh.y"
{
Surface *s = FindSurface((int)(yyvsp[(4) - (8)].d));
yymsg(WARNING, "Unknown surface %d", (int)(yyvsp[(4) - (8)].d));
s->Method = TRANSFINI;
int k = List_Nbr((yyvsp[(7) - (8)].l));

Christophe Geuzaine
committed
yymsg(GERROR, "Wrong definition of Transfinite Surface %d: "
"%d points instead of 3 or 4" , (int)(yyvsp[(4) - (8)].d), k);
List_Read((yyvsp[(7) - (8)].l), i, &d);
List_Delete((yyvsp[(7) - (8)].l));
;}
break;
case 215:
#line 2686 "Gmsh.y"
{
Surface *s = FindSurface((int)(yyvsp[(4) - (9)].d));
yymsg(WARNING, "Unknown surface %d", (int)(yyvsp[(4) - (9)].d));
int k = List_Nbr((yyvsp[(7) - (9)].l));
if(k != 3 && k != 4){
yymsg(GERROR, "Wrong definition of Transfinite Surface %d: "
"%d points instead of 3 or 4" , (int)(yyvsp[(4) - (9)].d), k);
}
else{
List_Reset(s->TrsfPoints);
if (!strcmp((yyvsp[(8) - (9)].c), "Right"))
else if (!strcmp((yyvsp[(8) - (9)].c), "Left"))
s->Recombine_Dir = -1;
else
s->Recombine_Dir = 0;
for(int i = 0; i < k; i++){
double d;
List_Read((yyvsp[(7) - (9)].l), i, &d);
if(!v)
yymsg(WARNING, "Unknown point %d", j);
else
List_Add(s->TrsfPoints, &v);
}
}
}
List_Delete((yyvsp[(7) - (9)].l));
Free((yyvsp[(8) - (9)].c));
;}
break;
case 216:
#line 2721 "Gmsh.y"
{
yymsg(WARNING, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)");
List_Delete((yyvsp[(7) - (8)].l));
;}
break;
case 217:
#line 2726 "Gmsh.y"
{
Volume *v = FindVolume((int)(yyvsp[(4) - (8)].d));
yymsg(WARNING, "Unknown volume %d", (int)(yyvsp[(4) - (8)].d));
v->Method = TRANSFINI;
int k = List_Nbr((yyvsp[(7) - (8)].l));

Christophe Geuzaine
committed
yymsg(GERROR, "Wrong definition of Transfinite Volume %d: "
"%d points instead of 6 or 8" , (int)(yyvsp[(4) - (8)].d), k);
List_Read((yyvsp[(7) - (8)].l), i, &d);
List_Delete((yyvsp[(7) - (8)].l));
;}
break;
case 218:
#line 2753 "Gmsh.y"
{
for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){
List_Read((yyvsp[(3) - (6)].l), i, &d);
s->Recombine = 1;
s->RecombineAngle = ((yyvsp[(5) - (6)].d) > 0 && (yyvsp[(5) - (6)].d) < 90) ? (yyvsp[(5) - (6)].d) : 90;
List_Delete((yyvsp[(3) - (6)].l));
;}
break;
case 219:
#line 2767 "Gmsh.y"
{
for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){
List_Read((yyvsp[(3) - (4)].l), i, &d);
s->Recombine = 1;
}
List_Delete((yyvsp[(3) - (4)].l));
;}
break;
case 220:
{
Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d));
if(s)
setSurfaceEmbeddedPoints(s, (yyvsp[(3) - (10)].l));
;}
break;
case 221:
{
Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d));
if(s)
setSurfaceEmbeddedCurves(s, (yyvsp[(3) - (10)].l));
;}
break;
case 222:
{
;}
break;
case 223:
{
;}
break;
case 224:
{
ReplaceAllDuplicates();
;}
break;
case 225:
{ (yyval.d) = (yyvsp[(1) - (1)].d); ;}
break;
case 226:
{ (yyval.d) = (yyvsp[(2) - (3)].d); ;}
break;
case 227:
{ (yyval.d) = -(yyvsp[(2) - (2)].d); ;}
break;
case 228:
{ (yyval.d) = (yyvsp[(2) - (2)].d); ;}
break;
case 229:
{ (yyval.d) = !(yyvsp[(2) - (2)].d); ;}
break;
case 230:
{ (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;}
break;
case 231:
{ (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;}
break;
case 232:
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
{ (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;}
break;
case 233:
#line 2828 "Gmsh.y"
{
if(!(yyvsp[(3) - (3)].d))
yymsg(GERROR, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d));
else
(yyval.d) = (yyvsp[(1) - (3)].d) / (yyvsp[(3) - (3)].d);
;}
break;
case 234:
#line 2834 "Gmsh.y"
{ (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;}
break;
case 235:
#line 2835 "Gmsh.y"
{ (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;}
break;
case 236:
{ (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;}
break;
case 237:
{ (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;}
break;
case 238:
{ (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;}
break;
case 239:
{ (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;}
break;
case 240:
{ (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;}
break;
case 241:
{ (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;}
break;
case 242:
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
{ (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;}
break;
case 243:
#line 2843 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;}
break;
case 244:
#line 2844 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (5)].d)? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;}
break;
case 245:
#line 2845 "Gmsh.y"
{ (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;}
break;
case 246:
#line 2846 "Gmsh.y"
{ (yyval.d) = log((yyvsp[(3) - (4)].d)); ;}
break;
case 247:
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
{ (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;}
break;
case 248:
#line 2848 "Gmsh.y"
{ (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;}
break;
case 249:
#line 2849 "Gmsh.y"
{ (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;}
break;
case 250:
#line 2850 "Gmsh.y"
{ (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;}
break;
case 251:
#line 2851 "Gmsh.y"
{ (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;}
break;
case 252:
#line 2852 "Gmsh.y"
{ (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;}
break;
case 253:
#line 2853 "Gmsh.y"
{ (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;}
break;
case 254:
#line 2854 "Gmsh.y"
{ (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;}
break;
case 255:
#line 2855 "Gmsh.y"
{ (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;}
break;
case 256: