Newer
Older

Christophe Geuzaine
committed
{ List_Delete((yyvsp[(1) - (1)].l)); return 1; ;}
break;
case 15:

Christophe Geuzaine
committed

Christophe Geuzaine
committed

Christophe Geuzaine
committed

Christophe Geuzaine
committed

Christophe Geuzaine
committed

Christophe Geuzaine
committed
{ return 1; ;}
break;
case 21:

Christophe Geuzaine
committed

Christophe Geuzaine
committed
{ return 1; ;}
break;
case 23:

Christophe Geuzaine
committed
(yyval.c) = (char*)"w";

Christophe Geuzaine
committed
(yyval.c) = (char*)"a";

Christophe Geuzaine
committed
Msg::Direct((yyvsp[(3) - (5)].c));

Christophe Geuzaine
committed
std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(6) - (7)].c));
FILE *fp = fopen(tmp.c_str(), (yyvsp[(5) - (7)].c));
yymsg(0, "Unable to open file '%s'", tmp.c_str());
fprintf(fp, "%s\n", (yyvsp[(3) - (7)].c));
fclose(fp);
Free((yyvsp[(3) - (7)].c));
Free((yyvsp[(6) - (7)].c));
;}
break;

Christophe Geuzaine
committed
int i = PrintListOfDouble((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].l), tmpstring);
yymsg(0, "Too few arguments in Printf");
yymsg(0, "%d extra argument%s in Printf", i, (i > 1) ? "s" : "");
Msg::Direct(tmpstring);
Free((yyvsp[(3) - (7)].c));
List_Delete((yyvsp[(5) - (7)].l));
;}
break;

Christophe Geuzaine
committed
int i = PrintListOfDouble((yyvsp[(3) - (9)].c), (yyvsp[(5) - (9)].l), tmpstring);
yymsg(0, "Too few arguments in Printf");
yymsg(0, "%d extra argument%s in Printf", i, (i > 1) ? "s" : "");
std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(8) - (9)].c));
FILE *fp = fopen(tmp.c_str(), (yyvsp[(7) - (9)].c));
if(!fp){
yymsg(0, "Unable to open file '%s'", tmp.c_str());
}
else{
fprintf(fp, "%s\n", tmpstring);
fclose(fp);
}
Free((yyvsp[(3) - (9)].c));
Free((yyvsp[(8) - (9)].c));
List_Delete((yyvsp[(5) - (9)].l));
;}
break;

Christophe Geuzaine
committed
if(!strcmp((yyvsp[(1) - (6)].c), "View") && ViewData->finalize()){
ViewData->setName((yyvsp[(2) - (6)].c));
ViewData->setFileName(gmsh_yyname);
ViewData->setFileIndex(gmsh_yyviewindex++);
new PView(ViewData);

Christophe Geuzaine
committed
#endif
Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(2) - (6)].c));
;}
break;

Christophe Geuzaine
committed
int index = (int)(yyvsp[(4) - (6)].d);
if(index >= 0 && index < (int)PView::list.size())
new PView(PView::list[index], false);

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed
int index = (int)(yyvsp[(4) - (6)].d);
if(index >= 0 && index < (int)PView::list.size())
new PView(PView::list[index], true);

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed

Christophe Geuzaine
committed
ViewData = new PViewDataList();

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed
{ ViewCoord.push_back((yyvsp[(1) - (1)].d)); ;}

Christophe Geuzaine
committed
{ ViewCoord.push_back((yyvsp[(3) - (3)].d)); ;}

Christophe Geuzaine
committed
{ if(ViewValueList) ViewValueList->push_back((yyvsp[(1) - (1)].d)); ;}

Christophe Geuzaine
committed
{ if(ViewValueList) ViewValueList->push_back((yyvsp[(3) - (3)].d)); ;}
break;

Christophe Geuzaine
committed

Christophe Geuzaine
committed
if(!strncmp((yyvsp[(1) - (1)].c), "SP", 2)){
ViewValueList = &ViewData->SP; ViewNumList = &ViewData->NbSP;

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "VP", 2)){
ViewValueList = &ViewData->VP; ViewNumList = &ViewData->NbVP;

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "TP", 2)){
ViewValueList = &ViewData->TP; ViewNumList = &ViewData->NbTP;

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "SL", 2)){
ViewValueList = &ViewData->SL; ViewNumList = &ViewData->NbSL;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_LIN);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "VL", 2)){
ViewValueList = &ViewData->VL; ViewNumList = &ViewData->NbVL;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_LIN);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "TL", 2)){
ViewValueList = &ViewData->TL; ViewNumList = &ViewData->NbTL;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_LIN);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "ST", 2)){
ViewValueList = &ViewData->ST; ViewNumList = &ViewData->NbST;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_TRI);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "VT", 2)){
ViewValueList = &ViewData->VT; ViewNumList = &ViewData->NbVT;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_TRI);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "TT", 2)){
ViewValueList = &ViewData->TT; ViewNumList = &ViewData->NbTT;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_TRI);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "SQ", 2)){
ViewValueList = &ViewData->SQ; ViewNumList = &ViewData->NbSQ;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_QUA);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "VQ", 2)){
ViewValueList = &ViewData->VQ; ViewNumList = &ViewData->NbVQ;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_QUA);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "TQ", 2)){
ViewValueList = &ViewData->TQ; ViewNumList = &ViewData->NbTQ;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_QUA);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "SS", 2)){
ViewValueList = &ViewData->SS; ViewNumList = &ViewData->NbSS;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_TET);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "VS", 2)){
ViewValueList = &ViewData->VS; ViewNumList = &ViewData->NbVS;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_TET);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "TS", 2)){
ViewValueList = &ViewData->TS; ViewNumList = &ViewData->NbTS;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_TET);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "SH", 2)){
ViewValueList = &ViewData->SH; ViewNumList = &ViewData->NbSH;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_HEX);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "VH", 2)){
ViewValueList = &ViewData->VH; ViewNumList = &ViewData->NbVH;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_HEX);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "TH", 2)){
ViewValueList = &ViewData->TH; ViewNumList = &ViewData->NbTH;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_HEX);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "SI", 2)){
ViewValueList = &ViewData->SI; ViewNumList = &ViewData->NbSI;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_PRI);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "VI", 2)){
ViewValueList = &ViewData->VI; ViewNumList = &ViewData->NbVI;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_PRI);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "TI", 2)){
ViewValueList = &ViewData->TI; ViewNumList = &ViewData->NbTI;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_PRI);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "SY", 2)){
ViewValueList = &ViewData->SY; ViewNumList = &ViewData->NbSY;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_PYR);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "VY", 2)){
ViewValueList = &ViewData->VY; ViewNumList = &ViewData->NbVY;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_PYR);

Christophe Geuzaine
committed
else if(!strncmp((yyvsp[(1) - (1)].c), "TY", 2)){
ViewValueList = &ViewData->TY; ViewNumList = &ViewData->NbTY;

Jean-François Remacle
committed
if(strlen((yyvsp[(1) - (1)].c)) > 2) ViewData->setOrder2(TYPE_PYR);
yymsg(0, "Unknown element type '%s'", (yyvsp[(1) - (1)].c));
ViewValueList = 0; ViewNumList = 0;

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed
for(int i = 0; i < 3; i++)
for(unsigned int j = 0; j < ViewCoord.size() / 3; j++)
ViewValueList->push_back(ViewCoord[3 * j + i]);

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed

Christophe Geuzaine
committed
for(int i = 0; i < (int)strlen((yyvsp[(1) - (1)].c)) + 1; i++) ViewData->T2C.push_back((yyvsp[(1) - (1)].c)[i]);

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed

Christophe Geuzaine
committed
for(int i = 0; i < (int)strlen((yyvsp[(3) - (3)].c)) + 1; i++) ViewData->T2C.push_back((yyvsp[(3) - (3)].c)[i]);

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed

Christophe Geuzaine
committed
ViewData->T2D.push_back((yyvsp[(3) - (8)].d));
ViewData->T2D.push_back((yyvsp[(5) - (8)].d));
ViewData->T2D.push_back((yyvsp[(7) - (8)].d));
ViewData->T2D.push_back(ViewData->T2C.size());

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed

Christophe Geuzaine
committed
for(int i = 0; i < (int)strlen((yyvsp[(1) - (1)].c)) + 1; i++) ViewData->T3C.push_back((yyvsp[(1) - (1)].c)[i]);

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed

Christophe Geuzaine
committed
for(int i = 0; i < (int)strlen((yyvsp[(3) - (3)].c)) + 1; i++) ViewData->T3C.push_back((yyvsp[(3) - (3)].c)[i]);

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed

Christophe Geuzaine
committed
ViewData->T3D.push_back((yyvsp[(3) - (10)].d)); ViewData->T3D.push_back((yyvsp[(5) - (10)].d));
ViewData->T3D.push_back((yyvsp[(7) - (10)].d)); ViewData->T3D.push_back((yyvsp[(9) - (10)].d));
ViewData->T3D.push_back(ViewData->T3C.size());

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed
(ViewData->NbSL || ViewData->NbVL) ? TYPE_LIN :
(ViewData->NbST || ViewData->NbVT) ? TYPE_TRI :
(ViewData->NbSQ || ViewData->NbVQ) ? TYPE_QUA :
(ViewData->NbSS || ViewData->NbVS) ? TYPE_TET :
(ViewData->NbSY || ViewData->NbVY) ? TYPE_PYR :
(ViewData->NbSI || ViewData->NbVI) ? TYPE_PRI :
(ViewData->NbSH || ViewData->NbVH) ? TYPE_HEX :
0;
ViewData->setInterpolationMatrices(type, ListOfListOfDouble2Matrix((yyvsp[(3) - (8)].l)),
ListOfListOfDouble2Matrix((yyvsp[(6) - (8)].l)));

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed
(ViewData->NbSL || ViewData->NbVL) ? TYPE_LIN :
(ViewData->NbST || ViewData->NbVT) ? TYPE_TRI :
(ViewData->NbSQ || ViewData->NbVQ) ? TYPE_QUA :
(ViewData->NbSS || ViewData->NbVS) ? TYPE_TET :
(ViewData->NbSH || ViewData->NbVH) ? TYPE_HEX :
0;
ViewData->setInterpolationMatrices(type, ListOfListOfDouble2Matrix((yyvsp[(3) - (14)].l)),
ListOfListOfDouble2Matrix((yyvsp[(6) - (14)].l)),
ListOfListOfDouble2Matrix((yyvsp[(9) - (14)].l)),
ListOfListOfDouble2Matrix((yyvsp[(12) - (14)].l)));

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed

Christophe Geuzaine
committed
ViewValueList = &ViewData->Time;

Christophe Geuzaine
committed
#endif

Christophe Geuzaine
committed

Christophe Geuzaine
committed

Christophe Geuzaine
committed

Christophe Geuzaine
committed

Christophe Geuzaine
committed

Christophe Geuzaine
committed

Christophe Geuzaine
committed

Christophe Geuzaine
committed
{ (yyval.i) = -1; ;}
break;

Christophe Geuzaine
committed
{
if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){
if(!(yyvsp[(2) - (4)].i))
gmsh_yysymbols[(yyvsp[(1) - (4)].c)].push_back((yyvsp[(3) - (4)].d));
else
yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (4)].c));

Christophe Geuzaine
committed
if(gmsh_yysymbols[(yyvsp[(1) - (4)].c)].empty()){
if((yyvsp[(2) - (4)].i)) yymsg(0, "Uninitialized variable '%s'", (yyvsp[(1) - (4)].c));
gmsh_yysymbols[(yyvsp[(1) - (4)].c)].resize(1, 0.);
}
switch((yyvsp[(2) - (4)].i)){
case 0 : gmsh_yysymbols[(yyvsp[(1) - (4)].c)][0] = (yyvsp[(3) - (4)].d); break;
case 1 : gmsh_yysymbols[(yyvsp[(1) - (4)].c)][0] += (yyvsp[(3) - (4)].d); break;
case 2 : gmsh_yysymbols[(yyvsp[(1) - (4)].c)][0] -= (yyvsp[(3) - (4)].d); break;
case 3 : gmsh_yysymbols[(yyvsp[(1) - (4)].c)][0] *= (yyvsp[(3) - (4)].d); break;
case 4 :
if((yyvsp[(3) - (4)].d)) gmsh_yysymbols[(yyvsp[(1) - (4)].c)][0] /= (yyvsp[(3) - (4)].d);
else yymsg(0, "Division by zero in '%s /= %g'", (yyvsp[(1) - (4)].c), (yyvsp[(3) - (4)].d));
break;
}
Free((yyvsp[(1) - (4)].c));

Christophe Geuzaine
committed
int index = (int)(yyvsp[(3) - (7)].d);
if(!gmsh_yysymbols.count((yyvsp[(1) - (7)].c))){
if(!(yyvsp[(5) - (7)].i)){
gmsh_yysymbols[(yyvsp[(1) - (7)].c)].resize(index + 1, 0.);
gmsh_yysymbols[(yyvsp[(1) - (7)].c)][index] = (yyvsp[(6) - (7)].d);
}
else
yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (7)].c));
if((int)gmsh_yysymbols[(yyvsp[(1) - (7)].c)].size() < index + 1)
gmsh_yysymbols[(yyvsp[(1) - (7)].c)].resize(index + 1, 0.);
switch((yyvsp[(5) - (7)].i)){
case 0 : gmsh_yysymbols[(yyvsp[(1) - (7)].c)][index] = (yyvsp[(6) - (7)].d); break;
case 1 : gmsh_yysymbols[(yyvsp[(1) - (7)].c)][index] += (yyvsp[(6) - (7)].d); break;
case 2 : gmsh_yysymbols[(yyvsp[(1) - (7)].c)][index] -= (yyvsp[(6) - (7)].d); break;
case 3 : gmsh_yysymbols[(yyvsp[(1) - (7)].c)][index] *= (yyvsp[(6) - (7)].d); break;
case 4 :
if((yyvsp[(6) - (7)].d)) gmsh_yysymbols[(yyvsp[(1) - (7)].c)][index] /= (yyvsp[(6) - (7)].d);
else yymsg(0, "Division by zero in '%s[%d] /= %g'", (yyvsp[(1) - (7)].c), index, (yyvsp[(6) - (7)].d));
break;
}
Free((yyvsp[(1) - (7)].c));

Christophe Geuzaine
committed
{
if(List_Nbr((yyvsp[(4) - (9)].l)) != List_Nbr((yyvsp[(8) - (9)].l))){
yymsg(0, "Incompatible array dimensions in affectation");
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
if(!gmsh_yysymbols.count((yyvsp[(1) - (9)].c))){
if(!(yyvsp[(7) - (9)].i)){
for(int i = 0; i < List_Nbr((yyvsp[(4) - (9)].l)); i++){
int index = (int)(*(double*)List_Pointer((yyvsp[(4) - (9)].l), i));
gmsh_yysymbols[(yyvsp[(1) - (9)].c)].resize(index + 1, 0.);
gmsh_yysymbols[(yyvsp[(1) - (9)].c)][index] = *(double*)List_Pointer((yyvsp[(8) - (9)].l), i);
}
}
else
yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (9)].c));
}
else{
for(int i = 0; i < List_Nbr((yyvsp[(4) - (9)].l)); i++){
int index = (int)(*(double*)List_Pointer((yyvsp[(4) - (9)].l), i));
double d = *(double*)List_Pointer((yyvsp[(8) - (9)].l), i);
if((int)gmsh_yysymbols[(yyvsp[(1) - (9)].c)].size() < index + 1)
gmsh_yysymbols[(yyvsp[(1) - (9)].c)].resize(index + 1, 0.);
switch((yyvsp[(7) - (9)].i)){
case 0 : gmsh_yysymbols[(yyvsp[(1) - (9)].c)][index] = d; break;
case 1 : gmsh_yysymbols[(yyvsp[(1) - (9)].c)][index] += d; break;
case 2 : gmsh_yysymbols[(yyvsp[(1) - (9)].c)][index] -= d; break;
case 3 : gmsh_yysymbols[(yyvsp[(1) - (9)].c)][index] *= d; break;
case 4 :
if((yyvsp[(8) - (9)].l)) gmsh_yysymbols[(yyvsp[(1) - (9)].c)][index] /= d;
else yymsg(0, "Division by zero in '%s[%d] /= %g'", (yyvsp[(1) - (9)].c), index, d);
break;
}
}
}
Free((yyvsp[(1) - (9)].c));
List_Delete((yyvsp[(4) - (9)].l));
List_Delete((yyvsp[(8) - (9)].l));
;}
break;

Christophe Geuzaine
committed
if(gmsh_yysymbols.count((yyvsp[(1) - (6)].c)))
gmsh_yysymbols[(yyvsp[(1) - (6)].c)].clear();
gmsh_yysymbols[(yyvsp[(1) - (6)].c)] = std::vector<double>();
for(int i = 0; i < List_Nbr((yyvsp[(5) - (6)].l)); i++)
gmsh_yysymbols[(yyvsp[(1) - (6)].c)].push_back(*(double*)List_Pointer((yyvsp[(5) - (6)].l), i));
Free((yyvsp[(1) - (6)].c));

Christophe Geuzaine
committed
for(int i = 0; i < List_Nbr((yyvsp[(5) - (6)].l)); i++)
gmsh_yysymbols[(yyvsp[(1) - (6)].c)].push_back(*(double*)List_Pointer((yyvsp[(5) - (6)].l), i));
Free((yyvsp[(1) - (6)].c));

Christophe Geuzaine
committed
{
// remove from the list
for(int i = 0; i < List_Nbr((yyvsp[(5) - (6)].l)); i++)
gmsh_yysymbols[(yyvsp[(1) - (6)].c)].erase(std::find(gmsh_yysymbols[(yyvsp[(1) - (6)].c)].begin(),
gmsh_yysymbols[(yyvsp[(1) - (6)].c)].end(),
*(double*)List_Pointer((yyvsp[(5) - (6)].l), i)));
Free((yyvsp[(1) - (6)].c));
List_Delete((yyvsp[(5) - (6)].l));
;}
break;
if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c)))
yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (3)].c));

Christophe Geuzaine
committed
else{
if(gmsh_yysymbols[(yyvsp[(1) - (3)].c)].empty())
yymsg(0, "Uninitialized variable '%s'", (yyvsp[(1) - (3)].c));
else
gmsh_yysymbols[(yyvsp[(1) - (3)].c)][0] += (yyvsp[(2) - (3)].i);
}

Christophe Geuzaine
committed
if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c)))
yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (6)].c));
int index = (int)(yyvsp[(3) - (6)].d);
if((int)gmsh_yysymbols[(yyvsp[(1) - (6)].c)].size() < index + 1)
gmsh_yysymbols[(yyvsp[(1) - (6)].c)].resize(index + 1, 0.);
gmsh_yysymbols[(yyvsp[(1) - (6)].c)][index] += (yyvsp[(5) - (6)].i);

Christophe Geuzaine
committed
gmsh_yystringsymbols[(yyvsp[(1) - (4)].c)] = std::string((yyvsp[(3) - (4)].c));
Free((yyvsp[(1) - (4)].c));
Free((yyvsp[(3) - (4)].c));

Christophe Geuzaine
committed
std::string tmp((yyvsp[(5) - (6)].c));
StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), tmp);
Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(3) - (6)].c)); Free((yyvsp[(5) - (6)].c))

Christophe Geuzaine
committed
std::string tmp((yyvsp[(8) - (9)].c));
StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), tmp);
Free((yyvsp[(1) - (9)].c)); Free((yyvsp[(6) - (9)].c)); Free((yyvsp[(8) - (9)].c))

Christophe Geuzaine
committed
{
double d = 0.;
if(NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), d)){
switch((yyvsp[(4) - (6)].i)){
case 0 : d = (yyvsp[(5) - (6)].d); break;
case 1 : d += (yyvsp[(5) - (6)].d); break;
case 2 : d -= (yyvsp[(5) - (6)].d); break;
case 3 : d *= (yyvsp[(5) - (6)].d); break;
case 4 :
if((yyvsp[(5) - (6)].d)) d /= (yyvsp[(5) - (6)].d);
else yymsg(0, "Division by zero in '%s.%s /= %g'", (yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d));
break;
}
NumberOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), d);
Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(3) - (6)].c));
;}
break;

Christophe Geuzaine
committed
{
double d = 0.;
if(NumberOption(GMSH_GET, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), d)){
switch((yyvsp[(7) - (9)].i)){
case 0 : d = (yyvsp[(8) - (9)].d); break;
case 1 : d += (yyvsp[(8) - (9)].d); break;
case 2 : d -= (yyvsp[(8) - (9)].d); break;
case 3 : d *= (yyvsp[(8) - (9)].d); break;
case 4 :
if((yyvsp[(8) - (9)].d)) d /= (yyvsp[(8) - (9)].d);
else yymsg(0, "Division by zero in '%s[%d].%s /= %g'", (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), (yyvsp[(8) - (9)].d));
break;
}
NumberOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), d);
Free((yyvsp[(1) - (9)].c)); Free((yyvsp[(6) - (9)].c));
;}
break;

Christophe Geuzaine
committed
double d = 0.;
if(NumberOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(3) - (5)].c), d)){
d += (yyvsp[(4) - (5)].i);
NumberOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (5)].c), 0, (yyvsp[(3) - (5)].c), d);
Free((yyvsp[(1) - (5)].c)); Free((yyvsp[(3) - (5)].c));
;}
break;

Christophe Geuzaine
committed
double d = 0.;
if(NumberOption(GMSH_GET, (yyvsp[(1) - (8)].c), (int)(yyvsp[(3) - (8)].d), (yyvsp[(6) - (8)].c), d)){
d += (yyvsp[(7) - (8)].i);
NumberOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (8)].c), (int)(yyvsp[(3) - (8)].d), (yyvsp[(6) - (8)].c), d);
Free((yyvsp[(1) - (8)].c)); Free((yyvsp[(6) - (8)].c));
;}
break;

Christophe Geuzaine
committed
ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (8)].c), 0, (yyvsp[(5) - (8)].c), (yyvsp[(7) - (8)].u));
Free((yyvsp[(1) - (8)].c)); Free((yyvsp[(5) - (8)].c));
;}
break;

Christophe Geuzaine
committed
ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (11)].c), (int)(yyvsp[(3) - (11)].d), (yyvsp[(8) - (11)].c), (yyvsp[(10) - (11)].u));
Free((yyvsp[(1) - (11)].c)); Free((yyvsp[(8) - (11)].c));
;}
break;

Christophe Geuzaine
committed
GmshColorTable *ct = GetColorTable(0);
yymsg(0, "View[%d] does not exist", 0);
ct->size = List_Nbr((yyvsp[(5) - (6)].l));
if(ct->size > COLORTABLE_NBMAX_COLOR)
yymsg(0, "Too many (%d>%d) colors in View[%d].ColorTable",
ct->size, COLORTABLE_NBMAX_COLOR, 0);
else
for(int i = 0; i < ct->size; i++) List_Read((yyvsp[(5) - (6)].l), i, &ct->table[i]);
if(ct->size == 1){
ct->size = 2;
ct->table[1] = ct->table[0];
}
Free((yyvsp[(1) - (6)].c));
List_Delete((yyvsp[(5) - (6)].l));
;}
break;

Christophe Geuzaine
committed
GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (9)].d));

Christophe Geuzaine
committed
if(!ct)
yymsg(0, "View[%d] does not exist", (int)(yyvsp[(3) - (9)].d));
ct->size = List_Nbr((yyvsp[(8) - (9)].l));
if(ct->size > COLORTABLE_NBMAX_COLOR)
yymsg(0, "Too many (%d>%d) colors in View[%d].ColorTable",
ct->size, COLORTABLE_NBMAX_COLOR, (int)(yyvsp[(3) - (9)].d));
else
for(int i = 0; i < ct->size; i++) List_Read((yyvsp[(8) - (9)].l), i, &ct->table[i]);
if(ct->size == 1){
ct->size = 2;
ct->table[1] = ct->table[0];
}
}
Free((yyvsp[(1) - (9)].c));
List_Delete((yyvsp[(8) - (9)].l));
;}
break;

Christophe Geuzaine
committed
if(!strcmp((yyvsp[(1) - (5)].c),"Background"))
GModel::current()->getFields()->background_field = (int)(yyvsp[(4) - (5)].d);
yymsg(0, "Unknown command %s Field", (yyvsp[(1) - (5)].c));

Christophe Geuzaine
committed
if(!GModel::current()->getFields()->newField((int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c)))
yymsg(0, "Cannot create field %i of type '%s'", (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c));

Christophe Geuzaine
committed
Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d));
if(field){
FieldOption *option = field->options[(yyvsp[(6) - (9)].c)];
if(option){
try { option->numericalValue((yyvsp[(8) - (9)].d)); }
catch(...){
yymsg(0, "Cannot assign a numerical value to option '%s' "
"in field %i of type '%s'", (yyvsp[(6) - (9)].c), (int)(yyvsp[(3) - (9)].d), field->getName());
}
}
else
yymsg(0, "Unknown option '%s' in field %i of type '%s'",
(yyvsp[(6) - (9)].c), (int)(yyvsp[(3) - (9)].d), field->getName());
yymsg(0, "No field with id %i", (int)(yyvsp[(3) - (9)].d));