Newer
Older
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
goto yybackup;
yybackup:
/* Do appropriate processing given the current state. */
/* Read a lookahead token if we need one and don't already have one. */
/* yyresume: */
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
if (yyn == YYFLAG)
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */
/* yychar is either YYEMPTY or YYEOF
or a valid token in external form. */
if (yychar == YYEMPTY)
{
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Reading a token: ");
#endif
yychar = YYLEX;
}
/* Convert token to internal form (in yychar1) for indexing tables with */
if (yychar <= 0) /* This means end of input. */
{
yychar1 = 0;
yychar = YYEOF; /* Don't call YYLEX any more */
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Now at end of input.\n");
#endif
}
else
{
yychar1 = YYTRANSLATE(yychar);
#if YYDEBUG != 0
if (yydebug)
{
fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
/* Give the individual parser a way to print the precise meaning
of a token, for further debugging info. */
#ifdef YYPRINT
YYPRINT (stderr, yychar, yylval);
#endif
fprintf (stderr, ")\n");
}
#endif
}
yyn += yychar1;
if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
goto yydefault;
yyn = yytable[yyn];
/* yyn is what to do for this token type in this state.
Negative => reduce, -yyn is rule number.
Positive => shift, yyn is new state.
New state is final state => don't bother to shift,
just return success.
0, or most negative number => error. */
if (yyn < 0)
{
if (yyn == YYFLAG)
goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
else if (yyn == 0)
goto yyerrlab;
if (yyn == YYFINAL)
YYACCEPT;
/* Shift the lookahead token. */
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
#endif
/* Discard the token being shifted unless it is eof. */
if (yychar != YYEOF)
yychar = YYEMPTY;
*++yyvsp = yylval;
#ifdef YYLSP_NEEDED
*++yylsp = yylloc;
#endif
/* count tokens shifted since error; after three, turn off error status. */
if (yyerrstatus) yyerrstatus--;
yystate = yyn;
goto yynewstate;
/* Do the default action for the current state. */
yydefault:
yyn = yydefact[yystate];
if (yyn == 0)
goto yyerrlab;
/* Do a reduction. yyn is the number of a rule to reduce with. */
yyreduce:
yylen = yyr2[yyn];
if (yylen > 0)
yyval = yyvsp[1-yylen]; /* implement default value of the action */
#if YYDEBUG != 0
if (yydebug)
{
int i;
fprintf (stderr, "Reducing via rule %d (line %d), ",
yyn, yyrline[yyn]);
/* Print the symbols being reduced, and their result. */
for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
fprintf (stderr, "%s ", yytname[yyrhs[i]]);
fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
}
#endif
switch (yyn) {
case 4:
#line 156 "Gmsh.y"
#line 164 "Gmsh.y"
{ yyval.d = yyvsp[0].d; ;
break;}
case 6:
#line 165 "Gmsh.y"
{ yyval.d = -yyvsp[0].d; ;
break;}
case 7:
#line 170 "Gmsh.y"
{
STL_Surf = Create_Surface(1,MSH_SURF_STL,1);
STL_Surf->STL = new STL_Data;
return 1;
;
break;}
#line 184 "Gmsh.y"
{
STL_Surf->STL->Add_Facet( yyvsp[-12].d, yyvsp[-11].d, yyvsp[-10].d,
yyvsp[-8].d, yyvsp[-7].d, yyvsp[-6].d,
yyvsp[-4].d, yyvsp[-3].d, yyvsp[-2].d);
return 1;
;
break;}
#line 191 "Gmsh.y"
{
Tree_Add(THEM->Surfaces, &STL_Surf);
return 1;
;
break;}
#line 208 "Gmsh.y"
{ return 1; ;
break;}
#line 209 "Gmsh.y"
{ return 1; ;
break;}
#line 210 "Gmsh.y"
{ return 1; ;
break;}
#line 215 "Gmsh.y"
{
Msg(PARSER_INFO,"Step Iso-10303-21 file format");
Create_Step_Solid_BRep();
;
break;}
#line 220 "Gmsh.y"
{
Msg(PARSER_INFO,"Step Iso-10303-21 file format read");
Resolve_BREP ();
;
break;}
#line 231 "Gmsh.y"
{
;
break;}
#line 234 "Gmsh.y"
{
;
break;}
#line 238 "Gmsh.y"
{
;
break;}
#line 244 "Gmsh.y"
{
Add_Cartesian_Point((int)yyvsp[-8].d,yyvsp[-4].c,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2]);
;
break;}
#line 250 "Gmsh.y"
{
Add_BSpline_Curve_With_Knots ((int)yyvsp[-22].d, yyvsp[-18].c, (int) yyvsp[-16].d, yyvsp[-14].l, yyvsp[-6].l, yyvsp[-4].l, 0., 1.);
;
break;}
#line 257 "Gmsh.y"
{
Add_BSpline_Surface_With_Knots ((int)yyvsp[-30].d, yyvsp[-26].c, (int) yyvsp[-24].d, (int) yyvsp[-22].d, yyvsp[-20].l, yyvsp[-10].l,
yyvsp[-8].l, yyvsp[-6].l, yyvsp[-4].l, 0., 1., 0., 1. );
;
break;}
#line 263 "Gmsh.y"
{
Add_Edge_Curve ((int)yyvsp[-14].d, yyvsp[-10].c , (int)yyvsp[-8].d , (int)yyvsp[-6].d, (int)yyvsp[-4].d);
;
break;}
#line 267 "Gmsh.y"
{
Add_Face_Outer_Bound((int)yyvsp[-10].d,yyvsp[-6].c,(int)yyvsp[-4].d,yyvsp[-2].i,1);
;
break;}
#line 271 "Gmsh.y"
{
/* La je dois voir la norme ! Face_Bound : trou externe a la surface ! */
Add_Face_Outer_Bound((int)yyvsp[-10].d,yyvsp[-6].c,(int)yyvsp[-4].d,yyvsp[-2].i,0);
;
break;}
case 29:
#line 278 "Gmsh.y"
{
Add_Oriented_Edge((int)yyvsp[-14].d,yyvsp[-10].c,(int)yyvsp[-4].d,yyvsp[-2].i);
;
break;}
case 30:
#line 282 "Gmsh.y"
{
Add_Edge_Loop((int)yyvsp[-8].d,yyvsp[-4].c,yyvsp[-2].l);
;
break;}
case 31:
#line 287 "Gmsh.y"
{
Add_Advanced_Face((int)yyvsp[-12].d,yyvsp[-8].c,yyvsp[-6].l,(int)yyvsp[-4].d,yyvsp[-2].i);
;
break;}
case 32:
#line 291 "Gmsh.y"
{
Add_Vertex_Point((int)yyvsp[-8].d,yyvsp[-4].c,(int)yyvsp[-2].d);
;
break;}
case 33:
#line 295 "Gmsh.y"
{
;
break;}
case 34:
#line 299 "Gmsh.y"
{
Add_Axis2_Placement3D ( (int)yyvsp[-12].d, (int)yyvsp[-4].d, (int)yyvsp[-2].d, (int)yyvsp[-6].d);
;
break;}
case 35:
#line 303 "Gmsh.y"
{
Add_Direction((int)yyvsp[-8].d , yyvsp[-4].c, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2]);
;
break;}
case 36:
#line 307 "Gmsh.y"
{
Add_Plane((int)yyvsp[-8].d,yyvsp[-4].c,(int)yyvsp[-2].d);
;
break;}
case 37:
#line 311 "Gmsh.y"
{
Add_Line ((int)yyvsp[-10].d, yyvsp[-6].c , (int) yyvsp[-4].d, (int)yyvsp[-2].d);
;
break;}
case 38:
#line 315 "Gmsh.y"
{
Add_Closed_Shell((int)yyvsp[-8].d, yyvsp[-4].c , yyvsp[-2].l);
;
break;}
case 39:
#line 321 "Gmsh.y"
{
;
break;}
case 40:
#line 324 "Gmsh.y"
{
;
break;}
case 41:
#line 327 "Gmsh.y"
{
Add_Cylinder ((int)yyvsp[-10].d, yyvsp[-6].c , (int)yyvsp[-4].d, yyvsp[-2].d);
;
break;}
case 42:
#line 331 "Gmsh.y"
{
Add_Cone ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d,yyvsp[-2].d);
;
break;}
case 43:
#line 335 "Gmsh.y"
{
Add_Torus ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d,yyvsp[-2].d);
;
break;}
case 44:
#line 339 "Gmsh.y"
{
Add_Circle((int) yyvsp[-10].d, yyvsp[-6].c, (int) yyvsp[-4].d, yyvsp[-2].d);
;
break;}
case 45:
#line 343 "Gmsh.y"
{
Add_Ellipsis((int) yyvsp[-12].d, yyvsp[-8].c, (int) yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d);
;
break;}
case 46:
#line 348 "Gmsh.y"
{
;
break;}
case 47:
#line 351 "Gmsh.y"
{
;
break;}
case 48:
#line 355 "Gmsh.y"
{
;
break;}
case 49:
#line 358 "Gmsh.y"
{
;
break;}
case 50:
#line 362 "Gmsh.y"
{
;
break;}
case 51:
#line 365 "Gmsh.y"
break;}
case 52:
#line 368 "Gmsh.y"
{
;
break;}
case 53:
#line 378 "Gmsh.y"
break;}
#line 381 "Gmsh.y"
break;}
#line 387 "Gmsh.y"
{ return 1; ;
break;}
#line 388 "Gmsh.y"
{ return 1; ;
break;}
#line 389 "Gmsh.y"
{ return 1; ;
break;}
#line 390 "Gmsh.y"
{ return 1; ;
break;}
#line 391 "Gmsh.y"
{ return 1; ;
break;}
#line 392 "Gmsh.y"
{ return 1; ;
break;}
#line 393 "Gmsh.y"
{ return 1; ;
break;}
#line 394 "Gmsh.y"
break;}
#line 395 "Gmsh.y"
break;}
#line 396 "Gmsh.y"
{ return 1; ;
break;}
#line 397 "Gmsh.y"
#line 398 "Gmsh.y"
#line 403 "Gmsh.y"

Christophe Geuzaine
committed
Msg(DIRECT, yyvsp[-2].c);
#line 407 "Gmsh.y"
for(i = 0 ; i<List_Nbr(yyvsp[-2].l) ; i++){
if(!i){
str = strtok(yyvsp[-4].c, "%");

Christophe Geuzaine
committed
strcpy(tmpstring, str);
}
str = strtok(NULL, "%");
if(str){

Christophe Geuzaine
committed
strcpy(tmpstring2, "%");
strcat(tmpstring2, str);
sprintf(tmpstring3, tmpstring2, *(double*)List_Pointer(yyvsp[-2].l,i));

Christophe Geuzaine
committed
strcat(tmpstring, tmpstring3);

Christophe Geuzaine
committed
Msg(DIRECT, tmpstring);
#line 437 "Gmsh.y"
{
if(!strcmp(yyvsp[-5].c, "View")) EndView(View, 1, yyname, yyvsp[-4].c);
;
break;}
#line 441 "Gmsh.y"
{
if(!strcmp(yyvsp[-7].c, "View")) EndView(View, 1, yyname, yyvsp[-6].c);
;
break;}
#line 448 "Gmsh.y"
{
;
break;}
#line 467 "Gmsh.y"
{ List_Add(View->SP, &yyvsp[0].d) ; ;
#line 469 "Gmsh.y"
{ List_Add(View->SP, &yyvsp[0].d) ; ;
break;}
#line 474 "Gmsh.y"
List_Add(View->SP, &yyvsp[-5].d); List_Add(View->SP, &yyvsp[-3].d);
List_Add(View->SP, &yyvsp[-1].d);
;
break;}
#line 479 "Gmsh.y"
{
;
break;}
#line 486 "Gmsh.y"
{ List_Add(View->VP, &yyvsp[0].d) ; ;
#line 488 "Gmsh.y"
{ List_Add(View->VP, &yyvsp[0].d) ; ;
#line 493 "Gmsh.y"
List_Add(View->VP, &yyvsp[-5].d); List_Add(View->VP, &yyvsp[-3].d);
List_Add(View->VP, &yyvsp[-1].d);
#line 498 "Gmsh.y"
{
;
break;}
#line 505 "Gmsh.y"
{ List_Add(View->TP, &yyvsp[0].d) ; ;
#line 507 "Gmsh.y"
{ List_Add(View->TP, &yyvsp[0].d) ; ;
#line 512 "Gmsh.y"
List_Add(View->TP, &yyvsp[-5].d); List_Add(View->TP, &yyvsp[-3].d);
List_Add(View->TP, &yyvsp[-1].d);
#line 517 "Gmsh.y"
{
;
break;}
#line 524 "Gmsh.y"
{ List_Add(View->SL, &yyvsp[0].d) ; ;
#line 526 "Gmsh.y"
{ List_Add(View->SL, &yyvsp[0].d) ; ;
#line 532 "Gmsh.y"
List_Add(View->SL, &yyvsp[-11].d); List_Add(View->SL, &yyvsp[-5].d);
List_Add(View->SL, &yyvsp[-9].d); List_Add(View->SL, &yyvsp[-3].d);
List_Add(View->SL, &yyvsp[-7].d); List_Add(View->SL, &yyvsp[-1].d);
#line 538 "Gmsh.y"
{
;
break;}
#line 545 "Gmsh.y"
{ List_Add(View->VL, &yyvsp[0].d) ; ;
#line 547 "Gmsh.y"
{ List_Add(View->VL, &yyvsp[0].d) ; ;
#line 553 "Gmsh.y"
List_Add(View->VL, &yyvsp[-11].d); List_Add(View->VL, &yyvsp[-5].d);
List_Add(View->VL, &yyvsp[-9].d); List_Add(View->VL, &yyvsp[-3].d);
List_Add(View->VL, &yyvsp[-7].d); List_Add(View->VL, &yyvsp[-1].d);
#line 559 "Gmsh.y"
{
;
break;}
#line 566 "Gmsh.y"
{ List_Add(View->TL, &yyvsp[0].d) ; ;
#line 568 "Gmsh.y"
{ List_Add(View->TL, &yyvsp[0].d) ; ;
#line 574 "Gmsh.y"
List_Add(View->TL, &yyvsp[-11].d); List_Add(View->TL, &yyvsp[-5].d);
List_Add(View->TL, &yyvsp[-9].d); List_Add(View->TL, &yyvsp[-3].d);
List_Add(View->TL, &yyvsp[-7].d); List_Add(View->TL, &yyvsp[-1].d);
#line 580 "Gmsh.y"
{
;
break;}
#line 587 "Gmsh.y"
{ List_Add(View->ST, &yyvsp[0].d) ; ;
#line 589 "Gmsh.y"
{ List_Add(View->ST, &yyvsp[0].d) ; ;
#line 596 "Gmsh.y"
List_Add(View->ST, &yyvsp[-17].d); List_Add(View->ST, &yyvsp[-11].d);
List_Add(View->ST, &yyvsp[-5].d);
List_Add(View->ST, &yyvsp[-15].d); List_Add(View->ST, &yyvsp[-9].d);
List_Add(View->ST, &yyvsp[-3].d);
List_Add(View->ST, &yyvsp[-13].d); List_Add(View->ST, &yyvsp[-7].d);
List_Add(View->ST, &yyvsp[-1].d);
#line 605 "Gmsh.y"
{
;
break;}
#line 612 "Gmsh.y"
{ List_Add(View->VT, &yyvsp[0].d) ; ;
#line 614 "Gmsh.y"
{ List_Add(View->VT, &yyvsp[0].d) ; ;
#line 621 "Gmsh.y"
List_Add(View->VT, &yyvsp[-17].d); List_Add(View->VT, &yyvsp[-11].d);
List_Add(View->VT, &yyvsp[-5].d);
List_Add(View->VT, &yyvsp[-15].d); List_Add(View->VT, &yyvsp[-9].d);
List_Add(View->VT, &yyvsp[-3].d);
List_Add(View->VT, &yyvsp[-13].d); List_Add(View->VT, &yyvsp[-7].d);
List_Add(View->VT, &yyvsp[-1].d);
#line 630 "Gmsh.y"
{
;
break;}
#line 637 "Gmsh.y"
{ List_Add(View->TT, &yyvsp[0].d) ; ;
#line 639 "Gmsh.y"
{ List_Add(View->TT, &yyvsp[0].d) ; ;
#line 646 "Gmsh.y"
List_Add(View->TT, &yyvsp[-17].d); List_Add(View->TT, &yyvsp[-11].d);
List_Add(View->TT, &yyvsp[-5].d);
List_Add(View->TT, &yyvsp[-15].d); List_Add(View->TT, &yyvsp[-9].d);
List_Add(View->TT, &yyvsp[-3].d);
List_Add(View->TT, &yyvsp[-13].d); List_Add(View->TT, &yyvsp[-7].d);
List_Add(View->TT, &yyvsp[-1].d);
#line 655 "Gmsh.y"
{
;
break;}
#line 662 "Gmsh.y"
{ List_Add(View->SS, &yyvsp[0].d) ; ;
#line 664 "Gmsh.y"
{ List_Add(View->SS, &yyvsp[0].d) ; ;
#line 672 "Gmsh.y"
List_Add(View->SS, &yyvsp[-23].d); List_Add(View->SS, &yyvsp[-17].d);
List_Add(View->SS, &yyvsp[-11].d); List_Add(View->SS, &yyvsp[-5].d);
List_Add(View->SS, &yyvsp[-21].d); List_Add(View->SS, &yyvsp[-15].d);
List_Add(View->SS, &yyvsp[-9].d); List_Add(View->SS, &yyvsp[-3].d);
List_Add(View->SS, &yyvsp[-19].d); List_Add(View->SS, &yyvsp[-13].d);
List_Add(View->SS, &yyvsp[-7].d); List_Add(View->SS, &yyvsp[-1].d);
#line 681 "Gmsh.y"
#line 688 "Gmsh.y"
{ List_Add(View->VS, &yyvsp[0].d) ; ;
#line 690 "Gmsh.y"
{ List_Add(View->VS, &yyvsp[0].d) ; ;
#line 698 "Gmsh.y"
List_Add(View->VS, &yyvsp[-23].d); List_Add(View->VS, &yyvsp[-17].d);
List_Add(View->VS, &yyvsp[-11].d); List_Add(View->VS, &yyvsp[-5].d);
List_Add(View->VS, &yyvsp[-21].d); List_Add(View->VS, &yyvsp[-15].d);
List_Add(View->VS, &yyvsp[-9].d); List_Add(View->VS, &yyvsp[-3].d);
List_Add(View->VS, &yyvsp[-19].d); List_Add(View->VS, &yyvsp[-13].d);
List_Add(View->VS, &yyvsp[-7].d); List_Add(View->VS, &yyvsp[-1].d);
#line 707 "Gmsh.y"
#line 714 "Gmsh.y"
{ List_Add(View->TS, &yyvsp[0].d) ; ;
#line 716 "Gmsh.y"
{ List_Add(View->TS, &yyvsp[0].d) ; ;
#line 724 "Gmsh.y"
List_Add(View->TS, &yyvsp[-23].d); List_Add(View->TS, &yyvsp[-17].d);
List_Add(View->TS, &yyvsp[-11].d); List_Add(View->TS, &yyvsp[-5].d);
List_Add(View->TS, &yyvsp[-21].d); List_Add(View->TS, &yyvsp[-15].d);
List_Add(View->TS, &yyvsp[-9].d); List_Add(View->TS, &yyvsp[-3].d);
List_Add(View->TS, &yyvsp[-19].d); List_Add(View->TS, &yyvsp[-13].d);
List_Add(View->TS, &yyvsp[-7].d); List_Add(View->TS, &yyvsp[-1].d);
#line 733 "Gmsh.y"
#line 745 "Gmsh.y"

Christophe Geuzaine
committed
{ yyval.i = 0 ; ;
break;}
#line 746 "Gmsh.y"

Christophe Geuzaine
committed
{ yyval.i = 1 ; ;
break;}
#line 747 "Gmsh.y"

Christophe Geuzaine
committed
{ yyval.i = 2 ; ;
break;}
#line 748 "Gmsh.y"

Christophe Geuzaine
committed
{ yyval.i = 3 ; ;
break;}
#line 749 "Gmsh.y"

Christophe Geuzaine
committed
{ yyval.i = 4 ; ;
break;}
#line 752 "Gmsh.y"

Christophe Geuzaine
committed
{ yyval.i = 1 ; ;
break;}
#line 753 "Gmsh.y"

Christophe Geuzaine
committed
{ yyval.i = -1 ; ;
break;}
#line 760 "Gmsh.y"
{
TheSymbol.Name = yyvsp[-3].c;
if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))){
TheSymbol.val = List_Create(1,1,sizeof(double));

Christophe Geuzaine
committed
if(!yyvsp[-2].i){
List_Put(TheSymbol.val, 0, &yyvsp[-1].d);
List_Add(Symbol_L, &TheSymbol);
}
else

Christophe Geuzaine
committed
pd = (double*)List_Pointer_Fast(pSymbol->val, 0) ;
switch(yyvsp[-2].i){
case 0 : *pd = yyvsp[-1].d; break ;
case 1 : *pd += yyvsp[-1].d ; break ;
case 2 : *pd -= yyvsp[-1].d ; break ;
case 3 : *pd *= yyvsp[-1].d ; break ;
case 4 :
if(yyvsp[-1].d) *pd /= yyvsp[-1].d ;
else vyyerror("Division by zero in '%s /= %g'", yyvsp[-3].c, yyvsp[-1].d);

Christophe Geuzaine
committed
break;
}
;
break;}
#line 787 "Gmsh.y"
TheSymbol.Name = yyvsp[-6].c;
if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))){
TheSymbol.val = List_Create(5,5,sizeof(double));

Christophe Geuzaine
committed
if(!yyvsp[-2].i){
List_Put(TheSymbol.val, (int)yyvsp[-4].d, &yyvsp[-1].d);
List_Add(Symbol_L, &TheSymbol);
}
else

Christophe Geuzaine
committed
if((pd = (double*)List_Pointer_Test(pSymbol->val, (int)yyvsp[-4].d))){
switch(yyvsp[-2].i){
case 0 : *pd = yyvsp[-1].d; break ;
case 1 : *pd += yyvsp[-1].d ; break ;
case 2 : *pd -= yyvsp[-1].d ; break ;
case 3 : *pd *= yyvsp[-1].d ; break ;
case 4 :
if(yyvsp[-1].d) *pd /= yyvsp[-1].d ;
else vyyerror("Division by zero in '%s[%d] /= %g'", yyvsp[-6].c, (int)yyvsp[-4].d, yyvsp[-1].d);

Christophe Geuzaine
committed
break;
}
}
else{
if(!yyvsp[-2].i)
List_Put(pSymbol->val, (int)yyvsp[-4].d, &yyvsp[-1].d);
else
vyyerror("Uninitialized variable '%s[%d]'", yyvsp[-6].c, (int)yyvsp[-4].d) ;

Christophe Geuzaine
committed
}
#line 821 "Gmsh.y"
{
if(List_Nbr(yyvsp[-5].l) != List_Nbr(yyvsp[-1].l))
vyyerror("Incompatible array dimensions in affectation");
else{
TheSymbol.Name = yyvsp[-8].c;
if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))){
TheSymbol.val = List_Create(5,5,sizeof(double));
if(!yyvsp[-2].i){
for(i=0 ; i<List_Nbr(yyvsp[-5].l) ; i++){
List_Put(TheSymbol.val, (int)(*(double*)List_Pointer(yyvsp[-5].l,i)),
(double*)List_Pointer(yyvsp[-1].l,i));
}
}
else{
for(i=0 ; i<List_Nbr(yyvsp[-5].l) ; i++){
j = (int)(*(double*)List_Pointer(yyvsp[-5].l,i)) ;
d = *(double*)List_Pointer(yyvsp[-1].l,i) ;
if((pd = (double*)List_Pointer_Test(pSymbol->val, j))){
switch(yyvsp[-2].i){
case 0 : *pd = d; break ;
case 1 : *pd += d ; break ;
case 2 : *pd -= d ; break ;
case 3 : *pd *= d ; break ;
case 4 :
if(yyvsp[-1].l) *pd /= d ;
else vyyerror("Division by zero in '%s[%d] /= %g'", yyvsp[-8].c, j, d);
break;
}
}
else{
if(!yyvsp[-2].i)
List_Put(pSymbol->val, j, &d);
else
vyyerror("Uninitialized variable '%s[%d]'", yyvsp[-8].c, j) ;
}
}
}
}
List_Delete(yyvsp[-5].l);
List_Delete(yyvsp[-1].l);
;
break;}
#line 868 "Gmsh.y"
{
TheSymbol.Name = yyvsp[-5].c;
if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))){
TheSymbol.val = List_Create(5,5,sizeof(double));
List_Copy(yyvsp[-1].l,TheSymbol.val);
List_Add(Symbol_L, &TheSymbol);
}
else{
List_Reset(pSymbol->val);
List_Copy(yyvsp[-1].l, pSymbol->val);
}
#line 883 "Gmsh.y"

Christophe Geuzaine
committed
TheSymbol.Name = yyvsp[-2].c;
if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))

Christophe Geuzaine
committed
*(double*)List_Pointer_Fast(pSymbol->val, 0) += yyvsp[-1].i;
#line 892 "Gmsh.y"
if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
else{
if((pd = (double*)List_Pointer_Test(pSymbol->val, (int)yyvsp[-3].d)))

Christophe Geuzaine
committed
*pd += yyvsp[-1].i ;
vyyerror("Uninitialized variable '%s[%d]'", yyvsp[-5].c, (int)yyvsp[-3].d) ;
#line 907 "Gmsh.y"

Christophe Geuzaine
committed
{
if(!(pStrCat = Get_StringOptionCategory(yyvsp[-5].c)))

Christophe Geuzaine
committed
if(!(pStrOpt = (char *(*) (int, int, char *))Get_StringOption(yyvsp[-3].c, pStrCat)))
vyyerror("Unknown string option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c);

Christophe Geuzaine
committed
pStrOpt(0,GMSH_SET|GMSH_GUI,yyvsp[-1].c) ;
#line 919 "Gmsh.y"

Christophe Geuzaine
committed
{
if(!(pStrCat = Get_StringOptionCategory(yyvsp[-8].c)))

Christophe Geuzaine
committed
if(!(pStrOpt = (char *(*) (int, int, char *))Get_StringOption(yyvsp[-3].c, pStrCat)))
vyyerror("Unknown string option '%s[%d].%s'", yyvsp[-8].c, (int)yyvsp[-6].d, yyvsp[-3].c);

Christophe Geuzaine
committed
pStrOpt((int)yyvsp[-6].d,GMSH_SET|GMSH_GUI,yyvsp[-1].c) ;
#line 933 "Gmsh.y"

Christophe Geuzaine
committed
if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
vyyerror("Unknown numeric option class '%s'", yyvsp[-5].c);

Christophe Geuzaine
committed
if(!(pNumOpt = (double (*) (int, int, double))Get_NumberOption(yyvsp[-3].c, pNumCat)))
vyyerror("Unknown numeric option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c);

Christophe Geuzaine
committed
switch(yyvsp[-2].i){
case 0 : d = yyvsp[-1].d ; break ;
case 1 : d = pNumOpt(0,GMSH_GET,0) + yyvsp[-1].d ; break ;
case 2 : d = pNumOpt(0,GMSH_GET,0) - yyvsp[-1].d ; break ;
case 3 : d = pNumOpt(0,GMSH_GET,0) * yyvsp[-1].d ; break ;
case 4 :
if(yyvsp[-1].d) d = pNumOpt(0,GMSH_GET,0) / yyvsp[-1].d ;
else vyyerror("Division by zero in '%s.%s /= %g'", yyvsp[-5].c, yyvsp[-3].c, yyvsp[-1].d);