Newer
Older
char tmpstring[1024];
int i = PrintListOfDouble(yyvsp[-4].c, yyvsp[-2].l, tmpstring);

Christophe Geuzaine
committed
yymsg(GERROR, "Too few arguments in Printf");
else if(i > 0)
yymsg(GERROR, "%d extra argument%s in Printf", i, (i>1)?"s":"");
if(!strcmp(yyvsp[-5].c, "View")) EndView(View, 1, yyname, yyvsp[-4].c);
if(!strcmp(yyvsp[-7].c, "View")) EndView(View, 1, yyname, yyvsp[-6].c);
List_Add(View->SP, &yyvsp[-5].d); List_Add(View->SP, &yyvsp[-3].d);
List_Add(View->VP, &yyvsp[-5].d); List_Add(View->VP, &yyvsp[-3].d);
List_Add(View->VP, &yyvsp[-1].d);
if((List_Nbr(View->VP) - ntmp) % 3)
yymsg(GERROR, "Wrong number of values for vector point "
"(%d is not a multiple of 3)", List_Nbr(View->VP) - ntmp);
List_Add(View->TP, &yyvsp[-5].d); List_Add(View->TP, &yyvsp[-3].d);
List_Add(View->TP, &yyvsp[-1].d);
if((List_Nbr(View->TP) - ntmp) % 9)
yymsg(GERROR, "Wrong number of values for tensor point "
"(%d is not a multiple of 9)", List_Nbr(View->TP) - ntmp);
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);
if((List_Nbr(View->SL) - ntmp) % 2)
yymsg(GERROR, "Wrong number of values for scalar line "
"(%d is not a multiple of 2)", List_Nbr(View->SL) - ntmp);
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);
if((List_Nbr(View->VL) - ntmp) % 6)
yymsg(GERROR, "Wrong number of values for vector line "
"(%d is not a multiple of 6)", List_Nbr(View->VL) - ntmp);
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);
if((List_Nbr(View->TL) - ntmp) % 18)
yymsg(GERROR, "Wrong number of values for tensor line "
"(%d is not a multiple of 18)", List_Nbr(View->TL) - ntmp);
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);
if((List_Nbr(View->ST) - ntmp) % 3)
yymsg(GERROR, "Wrong number of values for scalar triangle "
"(%d is not a multiple of 3)", List_Nbr(View->ST) - ntmp);
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);
if((List_Nbr(View->VT) - ntmp) % 9)
yymsg(GERROR, "Wrong number of values for vector triangle "
"(%d is not a multiple of 9)", List_Nbr(View->VT) - ntmp);
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);
if((List_Nbr(View->TT) - ntmp) % 27)
yymsg(GERROR, "Wrong number of values for tensor triangle "
"(%d is not a multiple of 27)", List_Nbr(View->TT) - ntmp);

Christophe Geuzaine
committed
List_Add(View->SQ, &yyvsp[-23].d); List_Add(View->SQ, &yyvsp[-17].d);
List_Add(View->SQ, &yyvsp[-11].d); List_Add(View->SQ, &yyvsp[-5].d);
List_Add(View->SQ, &yyvsp[-21].d); List_Add(View->SQ, &yyvsp[-15].d);
List_Add(View->SQ, &yyvsp[-9].d); List_Add(View->SQ, &yyvsp[-3].d);
List_Add(View->SQ, &yyvsp[-19].d); List_Add(View->SQ, &yyvsp[-13].d);
List_Add(View->SQ, &yyvsp[-7].d); List_Add(View->SQ, &yyvsp[-1].d);
if((List_Nbr(View->SQ) - ntmp) % 4)
yymsg(GERROR, "Wrong number of values for scalar quadrangle "
"(%d is not a multiple of 4)", List_Nbr(View->SQ) - ntmp);

Christophe Geuzaine
committed
List_Add(View->VQ, &yyvsp[-23].d); List_Add(View->VQ, &yyvsp[-17].d);
List_Add(View->VQ, &yyvsp[-11].d); List_Add(View->VQ, &yyvsp[-5].d);
List_Add(View->VQ, &yyvsp[-21].d); List_Add(View->VQ, &yyvsp[-15].d);
List_Add(View->VQ, &yyvsp[-9].d); List_Add(View->VQ, &yyvsp[-3].d);
List_Add(View->VQ, &yyvsp[-19].d); List_Add(View->VQ, &yyvsp[-13].d);
List_Add(View->VQ, &yyvsp[-7].d); List_Add(View->VQ, &yyvsp[-1].d);
if((List_Nbr(View->VQ) - ntmp) % 12)
yymsg(GERROR, "Wrong number of values for vector quadrangle "
"(%d is not a multiple of 12)", List_Nbr(View->VQ) - ntmp);

Christophe Geuzaine
committed
List_Add(View->TQ, &yyvsp[-23].d); List_Add(View->TQ, &yyvsp[-17].d);
List_Add(View->TQ, &yyvsp[-11].d); List_Add(View->TQ, &yyvsp[-5].d);
List_Add(View->TQ, &yyvsp[-21].d); List_Add(View->TQ, &yyvsp[-15].d);
List_Add(View->TQ, &yyvsp[-9].d); List_Add(View->TQ, &yyvsp[-3].d);
List_Add(View->TQ, &yyvsp[-19].d); List_Add(View->TQ, &yyvsp[-13].d);
List_Add(View->TQ, &yyvsp[-7].d); List_Add(View->TQ, &yyvsp[-1].d);
if((List_Nbr(View->TQ) - ntmp) % 36)
yymsg(GERROR, "Wrong number of values for tensor quadrangle "
"(%d is not a multiple of 36)", List_Nbr(View->TQ) - ntmp);
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);
if((List_Nbr(View->SS) - ntmp) % 4)
yymsg(GERROR, "Wrong number of values for scalar tetrahedron "
"(%d is not a multiple of 4)", List_Nbr(View->SS) - ntmp);
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);
if((List_Nbr(View->VS) - ntmp) % 12)
yymsg(GERROR, "Wrong number of values for vector tetrahedron "
"(%d is not a multiple of 12)", List_Nbr(View->VS) - ntmp);
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);
if((List_Nbr(View->TS) - ntmp) % 36)
yymsg(GERROR, "Wrong number of values for tensor tetrahedron "
"(%d is not a multiple of 36)", List_Nbr(View->TS) - ntmp);

Christophe Geuzaine
committed
List_Add(View->SH, &yyvsp[-47].d); List_Add(View->SH, &yyvsp[-41].d);
List_Add(View->SH, &yyvsp[-35].d); List_Add(View->SH, &yyvsp[-29].d);
List_Add(View->SH, &yyvsp[-23].d); List_Add(View->SH, &yyvsp[-17].d);
List_Add(View->SH, &yyvsp[-11].d); List_Add(View->SH, &yyvsp[-5].d);
List_Add(View->SH, &yyvsp[-45].d); List_Add(View->SH, &yyvsp[-39].d);
List_Add(View->SH, &yyvsp[-33].d); List_Add(View->SH, &yyvsp[-27].d);
List_Add(View->SH, &yyvsp[-21].d); List_Add(View->SH, &yyvsp[-15].d);
List_Add(View->SH, &yyvsp[-9].d); List_Add(View->SH, &yyvsp[-3].d);
List_Add(View->SH, &yyvsp[-43].d); List_Add(View->SH, &yyvsp[-37].d);
List_Add(View->SH, &yyvsp[-31].d); List_Add(View->SH, &yyvsp[-25].d);
List_Add(View->SH, &yyvsp[-19].d); List_Add(View->SH, &yyvsp[-13].d);
List_Add(View->SH, &yyvsp[-7].d); List_Add(View->SH, &yyvsp[-1].d);
if((List_Nbr(View->SH) - ntmp) % 8)
yymsg(GERROR, "Wrong number of values for scalar hexahedron "
"(%d is not a multiple of 8)", List_Nbr(View->SH) - ntmp);

Christophe Geuzaine
committed
List_Add(View->VH, &yyvsp[-47].d); List_Add(View->VH, &yyvsp[-41].d);
List_Add(View->VH, &yyvsp[-35].d); List_Add(View->VH, &yyvsp[-29].d);
List_Add(View->VH, &yyvsp[-23].d); List_Add(View->VH, &yyvsp[-17].d);
List_Add(View->VH, &yyvsp[-11].d); List_Add(View->VH, &yyvsp[-5].d);
List_Add(View->VH, &yyvsp[-45].d); List_Add(View->VH, &yyvsp[-39].d);
List_Add(View->VH, &yyvsp[-33].d); List_Add(View->VH, &yyvsp[-27].d);
List_Add(View->VH, &yyvsp[-21].d); List_Add(View->VH, &yyvsp[-15].d);
List_Add(View->VH, &yyvsp[-9].d); List_Add(View->VH, &yyvsp[-3].d);
List_Add(View->VH, &yyvsp[-43].d); List_Add(View->VH, &yyvsp[-37].d);
List_Add(View->VH, &yyvsp[-31].d); List_Add(View->VH, &yyvsp[-25].d);
List_Add(View->VH, &yyvsp[-19].d); List_Add(View->VH, &yyvsp[-13].d);
List_Add(View->VH, &yyvsp[-7].d); List_Add(View->VH, &yyvsp[-1].d);
if((List_Nbr(View->VH) - ntmp) % 24)
yymsg(GERROR, "Wrong number of values for vector hexahedron "
"(%d is not a multiple of 24)", List_Nbr(View->VH) - ntmp);

Christophe Geuzaine
committed
List_Add(View->TH, &yyvsp[-47].d); List_Add(View->TH, &yyvsp[-41].d);
List_Add(View->TH, &yyvsp[-35].d); List_Add(View->TH, &yyvsp[-29].d);
List_Add(View->TH, &yyvsp[-23].d); List_Add(View->TH, &yyvsp[-17].d);
List_Add(View->TH, &yyvsp[-11].d); List_Add(View->TH, &yyvsp[-5].d);
List_Add(View->TH, &yyvsp[-45].d); List_Add(View->TH, &yyvsp[-39].d);
List_Add(View->TH, &yyvsp[-33].d); List_Add(View->TH, &yyvsp[-27].d);
List_Add(View->TH, &yyvsp[-21].d); List_Add(View->TH, &yyvsp[-15].d);
List_Add(View->TH, &yyvsp[-9].d); List_Add(View->TH, &yyvsp[-3].d);
List_Add(View->TH, &yyvsp[-43].d); List_Add(View->TH, &yyvsp[-37].d);
List_Add(View->TH, &yyvsp[-31].d); List_Add(View->TH, &yyvsp[-25].d);
List_Add(View->TH, &yyvsp[-19].d); List_Add(View->TH, &yyvsp[-13].d);
List_Add(View->TH, &yyvsp[-7].d); List_Add(View->TH, &yyvsp[-1].d);
if((List_Nbr(View->TH) - ntmp) % 72)
yymsg(GERROR, "Wrong number of values for tensor hexahedron "
"(%d is not a multiple of 72)", List_Nbr(View->TH) - ntmp);

Christophe Geuzaine
committed
List_Add(View->SI, &yyvsp[-35].d); List_Add(View->SI, &yyvsp[-29].d);
List_Add(View->SI, &yyvsp[-23].d); List_Add(View->SI, &yyvsp[-17].d);
List_Add(View->SI, &yyvsp[-11].d); List_Add(View->SI, &yyvsp[-5].d);
List_Add(View->SI, &yyvsp[-33].d); List_Add(View->SI, &yyvsp[-27].d);
List_Add(View->SI, &yyvsp[-21].d); List_Add(View->SI, &yyvsp[-15].d);
List_Add(View->SI, &yyvsp[-9].d); List_Add(View->SI, &yyvsp[-3].d);
List_Add(View->SI, &yyvsp[-31].d); List_Add(View->SI, &yyvsp[-25].d);
List_Add(View->SI, &yyvsp[-19].d); List_Add(View->SI, &yyvsp[-13].d);
List_Add(View->SI, &yyvsp[-7].d); List_Add(View->SI, &yyvsp[-1].d);
if((List_Nbr(View->SI) - ntmp) % 6)
yymsg(GERROR, "Wrong number of values for scalar prism "
"(%d is not a multiple of 6)", List_Nbr(View->SI) - ntmp);

Christophe Geuzaine
committed
List_Add(View->VI, &yyvsp[-35].d); List_Add(View->VI, &yyvsp[-29].d);
List_Add(View->VI, &yyvsp[-23].d); List_Add(View->VI, &yyvsp[-17].d);
List_Add(View->VI, &yyvsp[-11].d); List_Add(View->VI, &yyvsp[-5].d);
List_Add(View->VI, &yyvsp[-33].d); List_Add(View->VI, &yyvsp[-27].d);
List_Add(View->VI, &yyvsp[-21].d); List_Add(View->VI, &yyvsp[-15].d);
List_Add(View->VI, &yyvsp[-9].d); List_Add(View->VI, &yyvsp[-3].d);
List_Add(View->VI, &yyvsp[-31].d); List_Add(View->VI, &yyvsp[-25].d);
List_Add(View->VI, &yyvsp[-19].d); List_Add(View->VI, &yyvsp[-13].d);
List_Add(View->VI, &yyvsp[-7].d); List_Add(View->VI, &yyvsp[-1].d);
if((List_Nbr(View->VI) - ntmp) % 18)
yymsg(GERROR, "Wrong number of values for vector prism "
"(%d is not a multiple of 18)", List_Nbr(View->VI) - ntmp);

Christophe Geuzaine
committed
List_Add(View->TI, &yyvsp[-35].d); List_Add(View->TI, &yyvsp[-29].d);
List_Add(View->TI, &yyvsp[-23].d); List_Add(View->TI, &yyvsp[-17].d);
List_Add(View->TI, &yyvsp[-11].d); List_Add(View->TI, &yyvsp[-5].d);
List_Add(View->TI, &yyvsp[-33].d); List_Add(View->TI, &yyvsp[-27].d);
List_Add(View->TI, &yyvsp[-21].d); List_Add(View->TI, &yyvsp[-15].d);
List_Add(View->TI, &yyvsp[-9].d); List_Add(View->TI, &yyvsp[-3].d);
List_Add(View->TI, &yyvsp[-31].d); List_Add(View->TI, &yyvsp[-25].d);
List_Add(View->TI, &yyvsp[-19].d); List_Add(View->TI, &yyvsp[-13].d);
List_Add(View->TI, &yyvsp[-7].d); List_Add(View->TI, &yyvsp[-1].d);
if((List_Nbr(View->TI) - ntmp) % 54)
yymsg(GERROR, "Wrong number of values for tensor prism "
"(%d is not a multiple of 54)", List_Nbr(View->TI) - ntmp);

Christophe Geuzaine
committed
List_Add(View->SY, &yyvsp[-29].d); List_Add(View->SY, &yyvsp[-23].d);
List_Add(View->SY, &yyvsp[-17].d); List_Add(View->SY, &yyvsp[-11].d);
List_Add(View->SY, &yyvsp[-5].d);
List_Add(View->SY, &yyvsp[-27].d); List_Add(View->SY, &yyvsp[-21].d);
List_Add(View->SY, &yyvsp[-15].d); List_Add(View->SY, &yyvsp[-9].d);
List_Add(View->SY, &yyvsp[-3].d);
List_Add(View->SY, &yyvsp[-25].d); List_Add(View->SY, &yyvsp[-19].d);
List_Add(View->SY, &yyvsp[-13].d); List_Add(View->SY, &yyvsp[-7].d);
List_Add(View->SY, &yyvsp[-1].d);
if((List_Nbr(View->SY) - ntmp) % 5)
yymsg(GERROR, "Wrong number of values for scalar pyramid "
"(%d is not a multiple of 5)", List_Nbr(View->SY) - ntmp);

Christophe Geuzaine
committed
List_Add(View->VY, &yyvsp[-29].d); List_Add(View->VY, &yyvsp[-23].d);
List_Add(View->VY, &yyvsp[-17].d); List_Add(View->VY, &yyvsp[-11].d);
List_Add(View->VY, &yyvsp[-5].d);
List_Add(View->VY, &yyvsp[-27].d); List_Add(View->VY, &yyvsp[-21].d);
List_Add(View->VY, &yyvsp[-15].d); List_Add(View->VY, &yyvsp[-9].d);
List_Add(View->VY, &yyvsp[-3].d);
List_Add(View->VY, &yyvsp[-25].d); List_Add(View->VY, &yyvsp[-19].d);
List_Add(View->VY, &yyvsp[-13].d); List_Add(View->VY, &yyvsp[-7].d);
List_Add(View->VY, &yyvsp[-1].d);
if((List_Nbr(View->VY) - ntmp) % 15)
yymsg(GERROR, "Wrong number of values for vector pyramid "
"(%d is not a multiple of 15)", List_Nbr(View->VY) - ntmp);

Christophe Geuzaine
committed
List_Add(View->TY, &yyvsp[-29].d); List_Add(View->TY, &yyvsp[-23].d);
List_Add(View->TY, &yyvsp[-17].d); List_Add(View->TY, &yyvsp[-11].d);
List_Add(View->TY, &yyvsp[-5].d);
List_Add(View->TY, &yyvsp[-27].d); List_Add(View->TY, &yyvsp[-21].d);
List_Add(View->TY, &yyvsp[-15].d); List_Add(View->TY, &yyvsp[-9].d);
List_Add(View->TY, &yyvsp[-3].d);
List_Add(View->TY, &yyvsp[-25].d); List_Add(View->TY, &yyvsp[-19].d);
List_Add(View->TY, &yyvsp[-13].d); List_Add(View->TY, &yyvsp[-7].d);
List_Add(View->TY, &yyvsp[-1].d);
if((List_Nbr(View->TY) - ntmp) % 45)
yymsg(GERROR, "Wrong number of values for tensor pyramid "
"(%d is not a multiple of 45)", List_Nbr(View->TY) - ntmp);
for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]);
for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]);
List_Add(View->T2D, &yyvsp[-5].d); List_Add(View->T2D, &yyvsp[-3].d);
List_Add(View->T2D, &yyvsp[-1].d);
for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]);
for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]);
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);
TheSymbol.Name = yyvsp[-3].c;
if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))){
TheSymbol.val = List_Create(1, 1, sizeof(double));

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

Christophe Geuzaine
committed
}
else

Christophe Geuzaine
committed
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;

Christophe Geuzaine
committed
case 4 :

Christophe Geuzaine
committed
else yymsg(GERROR, "Division by zero in '%s /= %g'", yyvsp[-3].c, yyvsp[-1].d);

Christophe Geuzaine
committed
break;
}
if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))){
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);

Christophe Geuzaine
committed
}
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;

Christophe Geuzaine
committed
case 4 :

Christophe Geuzaine
committed
else yymsg(GERROR, "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
yymsg(GERROR, "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))

Christophe Geuzaine
committed
yymsg(GERROR, "Incompatible array dimensions in affectation");
if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))){
TheSymbol.val = List_Create(5, 5, sizeof(double));
List_Put(TheSymbol.val, (int)(*(double*)List_Pointer(yyvsp[-5].l, i)),
(double*)List_Pointer(yyvsp[-1].l, i));
for(int i = 0; i < List_Nbr(yyvsp[-5].l); i++){
int j = (int)(*(double*)List_Pointer(yyvsp[-5].l, i));
double d = *(double*)List_Pointer(yyvsp[-1].l, i);
double *pd;
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;

Christophe Geuzaine
committed
else yymsg(GERROR, "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
yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-8].c, j);
}
}
}
}
List_Delete(yyvsp[-5].l);
List_Delete(yyvsp[-1].l);
TheSymbol.Name = yyvsp[-5].c;
if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))){
TheSymbol.val = List_Create(5, 5, sizeof(double));
List_Copy(yyvsp[-1].l, TheSymbol.val);
}
else{
List_Reset(pSymbol->val);
List_Copy(yyvsp[-1].l, pSymbol->val);
}

Christophe Geuzaine
committed
TheSymbol.Name = yyvsp[-2].c;

Christophe Geuzaine
committed
*(double*)List_Pointer_Fast(pSymbol->val, 0) += yyvsp[-1].i;
Symbol TheSymbol;
TheSymbol.Name = yyvsp[-5].c;
Symbol *pSymbol;
if((pd = (double*)List_Pointer_Test(pSymbol->val, (int)yyvsp[-3].d)))
yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-5].c, (int)yyvsp[-3].d);