Newer
Older
if (yyfree_stacks)
{
free (yyss);
free (yyvs);
#ifdef YYLSP_NEEDED
free (yyls);
#endif
}
return 2;
}
yystacksize *= 2;
if (yystacksize > YYMAXDEPTH)
yystacksize = YYMAXDEPTH;
#ifndef YYSTACK_USE_ALLOCA
yyfree_stacks = 1;
#endif
yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
__yy_memcpy ((char *)yyss, (char *)yyss1,
size * (unsigned int) sizeof (*yyssp));
yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
__yy_memcpy ((char *)yyvs, (char *)yyvs1,
size * (unsigned int) sizeof (*yyvsp));
#ifdef YYLSP_NEEDED
yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
__yy_memcpy ((char *)yyls, (char *)yyls1,
size * (unsigned int) sizeof (*yylsp));
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
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
#endif
#endif /* no yyoverflow */
yyssp = yyss + size - 1;
yyvsp = yyvs + size - 1;
#ifdef YYLSP_NEEDED
yylsp = yyls + size - 1;
#endif
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Stack size increased to %d\n", yystacksize);
#endif
if (yyssp >= yyss + yystacksize - 1)
YYABORT;
}
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Entering state %d\n", yystate);
#endif
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:
{ yyval.d = yyvsp[0].d; ;
break;}
case 6:
{ yyval.d = -yyvsp[0].d; ;
break;}
case 7:
{
STL_Surf = Create_Surface(1,MSH_SURF_STL,1);
STL_Surf->STL = new STL_Data;
return 1;
;
break;}
{
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;}
{
Tree_Add(THEM->Surfaces, &STL_Surf);
return 1;
;
break;}
{ return 1; ;
break;}
{ return 1; ;
break;}
{ return 1; ;
break;}
{
Msg(PARSER_INFO,"Step Iso-10303-21 file format");
Create_Step_Solid_BRep();
;
break;}
{
Msg(PARSER_INFO,"Step Iso-10303-21 file format read");
Resolve_BREP ();
;
break;}
{
;
break;}
{
;
break;}
{
;
break;}
{
Add_Cartesian_Point((int)yyvsp[-8].d,yyvsp[-4].c,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2]);
;
break;}
{
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;}
{
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;}
{
Add_Edge_Curve ((int)yyvsp[-14].d, yyvsp[-10].c , (int)yyvsp[-8].d , (int)yyvsp[-6].d, (int)yyvsp[-4].d);
;
break;}
{
Add_Face_Outer_Bound((int)yyvsp[-10].d,yyvsp[-6].c,(int)yyvsp[-4].d,yyvsp[-2].i,1);
;
break;}
{
/* 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:
{
Add_Oriented_Edge((int)yyvsp[-14].d,yyvsp[-10].c,(int)yyvsp[-4].d,yyvsp[-2].i);
;
break;}
case 30:
{
Add_Edge_Loop((int)yyvsp[-8].d,yyvsp[-4].c,yyvsp[-2].l);
;
break;}
case 31:
{
Add_Advanced_Face((int)yyvsp[-12].d,yyvsp[-8].c,yyvsp[-6].l,(int)yyvsp[-4].d,yyvsp[-2].i);
;
break;}
case 32:
{
Add_Vertex_Point((int)yyvsp[-8].d,yyvsp[-4].c,(int)yyvsp[-2].d);
;
break;}
case 33:
{
;
break;}
case 34:
{
Add_Axis2_Placement3D ( (int)yyvsp[-12].d, (int)yyvsp[-4].d, (int)yyvsp[-2].d, (int)yyvsp[-6].d);
;
break;}
case 35:
{
Add_Direction((int)yyvsp[-8].d , yyvsp[-4].c, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2]);
;
break;}
case 36:
{
Add_Plane((int)yyvsp[-8].d,yyvsp[-4].c,(int)yyvsp[-2].d);
;
break;}
case 37:
{
Add_Line ((int)yyvsp[-10].d, yyvsp[-6].c , (int) yyvsp[-4].d, (int)yyvsp[-2].d);
;
break;}
case 38:
{
Add_Closed_Shell((int)yyvsp[-8].d, yyvsp[-4].c , yyvsp[-2].l);
;
break;}
case 39:
{
;
break;}
case 40:
{
;
break;}
case 41:
{
Add_Cylinder ((int)yyvsp[-10].d, yyvsp[-6].c , (int)yyvsp[-4].d, yyvsp[-2].d);
;
break;}
case 42:
{
Add_Cone ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d,yyvsp[-2].d);
;
break;}
case 43:
{
Add_Torus ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d,yyvsp[-2].d);
;
break;}
case 44:
{
Add_Circle((int) yyvsp[-10].d, yyvsp[-6].c, (int) yyvsp[-4].d, yyvsp[-2].d);
;
break;}
case 45:
{
Add_Ellipsis((int) yyvsp[-12].d, yyvsp[-8].c, (int) yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d);
;
break;}
case 46:
{
;
break;}
case 47:
{
;
break;}
case 48:
{
;
break;}
case 49:
{
;
break;}
case 50:
{
;
break;}
case 51:
break;}
case 52:
{
;
break;}
case 53:
break;}
break;}
{ return 1; ;
break;}
{ return 1; ;
break;}
{ return 1; ;
break;}
{ return 1; ;
break;}
{ return 1; ;
break;}
{ return 1; ;
break;}
{ return 1; ;
break;}
break;}
break;}
{ return 1; ;
break;}

Christophe Geuzaine
committed
Msg(DIRECT, yyvsp[-2].c);
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);
{
if(!strcmp(yyvsp[-5].c, "View")) EndView(View, 1, yyname, yyvsp[-4].c);
;
break;}
{
if(!strcmp(yyvsp[-7].c, "View")) EndView(View, 1, yyname, yyvsp[-6].c);
;
break;}
{
;
break;}
{ List_Add(View->SP, &yyvsp[0].d) ; ;
{ List_Add(View->SP, &yyvsp[0].d) ; ;
break;}
List_Add(View->SP, &yyvsp[-5].d); List_Add(View->SP, &yyvsp[-3].d);
List_Add(View->SP, &yyvsp[-1].d);
;
break;}
{
;
break;}
{ List_Add(View->VP, &yyvsp[0].d) ; ;
{ List_Add(View->VP, &yyvsp[0].d) ; ;
List_Add(View->VP, &yyvsp[-5].d); List_Add(View->VP, &yyvsp[-3].d);
List_Add(View->VP, &yyvsp[-1].d);
{
;
break;}
{ List_Add(View->TP, &yyvsp[0].d) ; ;
{ List_Add(View->TP, &yyvsp[0].d) ; ;
List_Add(View->TP, &yyvsp[-5].d); List_Add(View->TP, &yyvsp[-3].d);
List_Add(View->TP, &yyvsp[-1].d);
{
;
break;}
{ List_Add(View->SL, &yyvsp[0].d) ; ;
{ List_Add(View->SL, &yyvsp[0].d) ; ;
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);
{
;
break;}
{ List_Add(View->VL, &yyvsp[0].d) ; ;
{ List_Add(View->VL, &yyvsp[0].d) ; ;
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);
{
;
break;}
{ List_Add(View->TL, &yyvsp[0].d) ; ;
{ List_Add(View->TL, &yyvsp[0].d) ; ;
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);
{
;
break;}
{ List_Add(View->ST, &yyvsp[0].d) ; ;
{ List_Add(View->ST, &yyvsp[0].d) ; ;
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);
{
;
break;}
{ List_Add(View->VT, &yyvsp[0].d) ; ;
{ List_Add(View->VT, &yyvsp[0].d) ; ;
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);
{
;
break;}
{ List_Add(View->TT, &yyvsp[0].d) ; ;
{ List_Add(View->TT, &yyvsp[0].d) ; ;
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);
{
;
break;}
{ List_Add(View->SS, &yyvsp[0].d) ; ;
{ List_Add(View->SS, &yyvsp[0].d) ; ;
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);
{ List_Add(View->VS, &yyvsp[0].d) ; ;
{ List_Add(View->VS, &yyvsp[0].d) ; ;
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);
{ List_Add(View->TS, &yyvsp[0].d) ; ;
{ List_Add(View->TS, &yyvsp[0].d) ; ;
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);
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
case 134:
#line 744 "Gmsh.y"
{
for(i=0; i<(int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]) ;
Free(yyvsp[0].c);
;
break;}
case 135:
#line 749 "Gmsh.y"
{
for(i=0; i<(int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]) ;
Free(yyvsp[0].c);
;
break;}
case 136:
#line 757 "Gmsh.y"
{
List_Add(View->T2D, &yyvsp[-5].d); List_Add(View->T2D, &yyvsp[-3].d);
List_Add(View->T2D, &yyvsp[-1].d);
d = List_Nbr(View->T2C);
List_Add(View->T2D, &d);
;
break;}
case 137:
#line 764 "Gmsh.y"
{
View->NbT2++ ;
;
break;}
case 138:
#line 771 "Gmsh.y"
{
for(i=0; i<(int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]) ;
Free(yyvsp[0].c);
;
break;}
case 139:
#line 776 "Gmsh.y"
{
for(i=0; i<(int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]) ;
Free(yyvsp[0].c);
;
break;}
case 140:
#line 784 "Gmsh.y"
{
List_Add(View->T3D, &yyvsp[-7].d); List_Add(View->T3D, &yyvsp[-5].d);
List_Add(View->T3D, &yyvsp[-3].d); List_Add(View->T3D, &yyvsp[-1].d);
d = List_Nbr(View->T3C);
List_Add(View->T3D, &d);
;
break;}
case 141:
#line 791 "Gmsh.y"
{
View->NbT3++ ;
;
break;}
case 142:
#line 802 "Gmsh.y"

Christophe Geuzaine
committed
{ yyval.i = 0 ; ;
break;}

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

Christophe Geuzaine
committed
{ yyval.i = 2 ; ;
break;}

Christophe Geuzaine
committed
{ yyval.i = 3 ; ;
break;}

Christophe Geuzaine
committed
{ yyval.i = 4 ; ;
break;}

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

Christophe Geuzaine
committed
{ yyval.i = -1 ; ;
break;}
{
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;}
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
}
{
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 ;