Newer
Older
yyval.s.Num = (int)yyvsp[-4].d;
;
break;}
{
TranslateShapes (yyvsp[-3].v[0],yyvsp[-3].v[1],yyvsp[-3].v[2],yyvsp[-1].l,1);
yyval.l = yyvsp[-1].l;
;
break;}
{
RotateShapes(yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].d,yyvsp[-1].l);
yyval.l = yyvsp[-1].l;
;
break;}
{
SymmetryShapes(yyvsp[-3].v[0],yyvsp[-3].v[1],yyvsp[-3].v[2],yyvsp[-3].v[3],yyvsp[-1].l,1);
yyval.l = yyvsp[-1].l;
;
break;}
{
DilatShapes(yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].d,yyvsp[-1].l,1);
yyval.l = yyvsp[-1].l;
;
break;}
{ yyval.l = yyvsp[0].l; ;
break;}
{ yyval.l = yyvsp[0].l; ;
break;}
{ yyval.l = yyvsp[0].l; ;
break;}
{
yyval.l = List_Create(3,3,sizeof(Shape));
;
break;}
{
List_Add(yyval.l,&yyvsp[0].s);
yyval.l = yyvsp[-1].l;
;
break;}
{
yyval.l = List_Create(3,3,sizeof(Shape));
for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
List_Read (yyvsp[-1].l,i,&TheShape);
CopyShape(TheShape.Type,TheShape.Num,&j);
TheShape.Num = j;
List_Add(yyval.l,&TheShape);
}
;
break;}
{
for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
List_Read (yyvsp[-1].l,i,&TheShape);
DeleteShape(TheShape.Type,TheShape.Num);
}
;
break;}
{
yyinTab[RecursionLevel++] = yyin;
strcpy(tmpstring, ThePathForIncludes);
if((yyin = fopen(strcat(tmpstring,yyvsp[-1].c),"r"))){
strcpy(yynameTab[RecursionLevel-1],yyname);
yylinenoTab[RecursionLevel-1]=yylineno;
yylineno=1;
strcpy(yyname,yyvsp[-1].c);
while(!feof(yyin)){
yyparse();
}
fclose(yyin);
yyin = yyinTab[--RecursionLevel];
strcpy(yyname,yynameTab[RecursionLevel]);
yylineno = yylinenoTab[RecursionLevel];
}
else{
vyyerror("Unknown File '%s'", yyvsp[-1].c) ;
yyin = yyinTab[--RecursionLevel];
}
;
break;}
{
Curve *pc, *prc;
Extrude_ProtudePoint(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,&pc,&prc,NULL);
;
break;}
{
Curve *pc, *prc;
Extrude_ProtudePoint(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,
&pc,&prc,NULL);
;
break;}
{
Extrude_ProtudeCurve(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,NULL);
;
break;}
{
Extrude_ProtudeCurve(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,NULL);
;
break;}
{
Extrude_ProtudeSurface(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,0,NULL);
;
break;}
{
Extrude_ProtudeSurface(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,0,NULL);
;
break;}
{
int vol = NEWREG();
Extrude_ProtudeSurface(1,(int)yyvsp[-7].d,yyvsp[-5].v[0],yyvsp[-5].v[1],yyvsp[-5].v[2],0.,0.,0.,0.,vol,&extr);
;
break;}
{
int vol = NEWREG();
Extrude_ProtudeSurface(0,(int)yyvsp[-11].d,yyvsp[-9].v[0],yyvsp[-9].v[1],yyvsp[-9].v[2],yyvsp[-7].v[0],yyvsp[-7].v[1],yyvsp[-7].v[2],yyvsp[-5].d,vol,&extr);
;
break;}
{
;
break;}
{
;
break;}
{
double d;
int j;
extr.mesh.NbLayer = List_Nbr(yyvsp[-6].l);
extr.mesh.ExtrudeMesh = true;
for(int i=0;i<List_Nbr(yyvsp[-6].l);i++){
List_Read(yyvsp[-6].l,i,&d);
j = (int)d;
extr.mesh.NbElmLayer[i] = j;
List_Read(yyvsp[-4].l,i,&d);
j = (int)d;
extr.mesh.ZonLayer[i] = j;
List_Read(yyvsp[-2].l,i,&d);
extr.mesh.hLayer[i] = d;
}
;
break;}
{
extr.mesh.Recombine = true;
;
break;}
{
Curve *c;
for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
List_Read(yyvsp[-3].l,i,&d);
j = (int)fabs(d);
c = FindCurve(j,THEM);
if(!c)
vyyerror("Unkown Curve %d", j);
else{
c->Method = TRANSFINI;
c->ipar[0] = (int)yyvsp[-1].d;
c->ipar[1] = sign(d);
c->dpar[0] = 1.0;
}
}
;
break;}
{
Curve *c;
for(i=0;i<List_Nbr(yyvsp[-6].l);i++){
List_Read(yyvsp[-6].l,i,&d);
j = (int)fabs(d);
c = FindCurve(j,THEM);
if(!c)
vyyerror("Unkown Curve %d", j);
else{
c->Method = TRANSFINI;
c->ipar[0] = (int)yyvsp[-4].d;
c->ipar[1] = sign(d); /* Progresion : code 1 ou -1 */
c->dpar[0] = fabs(yyvsp[-1].d);
}
}
;
break;}
{
Curve *c;
for(i=0;i<List_Nbr(yyvsp[-6].l);i++){
List_Read(yyvsp[-6].l,i,&d);
j = (int)fabs(d);
c = FindCurve(j,THEM);
if(!c)
vyyerror("Unkown Curve %d", j);
else{
c->Method = TRANSFINI;
c->ipar[0] = (int)yyvsp[-4].d;
c->ipar[1] = 2*sign(d); /* Bump : code 2 ou -2 */
}
}
;
break;}
{
Surface *s = FindSurface((int)yyvsp[-4].d,THEM);
if(!s)
vyyerror("Unkown Surface %d", (int)yyvsp[-4].d);
else{
s->Method = TRANSFINI;
k = List_Nbr(yyvsp[-1].l);
if(k!=3 && k!=4){
vyyerror("Wrong Definition of Transfinite Surface %d: "
"%d Points Instead of 3 or 4" , yyvsp[-4].d, k) ;
}
else{
for(i=0;i<k;i++){
List_Read(yyvsp[-1].l,i,&d);
j = (int)fabs(d);
s->ipar[i] = j;
}
}
}
;
break;}
{
Surface *s = FindSurface((int)yyvsp[-4].d,THEM);
if(!s)
vyyerror("Unkown Surface %d", (int)yyvsp[-4].d);
else{
s->Method = ELLIPTIC;
k = List_Nbr(yyvsp[-1].l);
if(k != 4)
vyyerror("Wrong Definition of Elliptic Surface %d: "
"%d Points Instead of 4" , yyvsp[-4].d, k) ;
else{
for(i=0;i<k;i++){
List_Read(yyvsp[-1].l,i,&d);
j = (int)fabs(d);
s->ipar[i] = j;
}
}
}
;
break;}
{
Volume *v = FindVolume((int)yyvsp[-4].d,THEM);
if(!v)
vyyerror("Unkown Volume %d", (int)yyvsp[-4].d);
else{
v->Method = TRANSFINI;
k = List_Nbr(yyvsp[-1].l);
if(k!=6 && k!=8)
vyyerror("Wrong Definition of Transfinite Volume %d: "
"%d Points Instead of 6 or 8" , yyvsp[-4].d, k) ;
else{
for(i=0;i<k;i++){
List_Read(yyvsp[-1].l,i,&d);
j = (int)fabs(d);
v->ipar[i] = j;
}
}
}
;
break;}
{
Surface *s;
for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
List_Read(yyvsp[-3].l,i,&d);
j = (int)d;
s = FindSurface(j,THEM);
if(!s){
/* Allow generic lists, even if the surfaces don't exist
vyyerror("Unkown Surface %d", j); */
}
else{
s->Recombine = 1;
s->RecombineAngle = yyvsp[-1].d;
}
}
;
break;}
{
Surface *s;
for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
List_Read(yyvsp[-1].l,i,&d);
j = (int)d;
s = FindSurface(j,THEM);
if(!s){
/* Allow generic lists, even if the surfaces don't exist
vyyerror("Unkown Surface %d", j); */
}
else{
s->Recombine = 1;
s->RecombineAngle = 30.;
}
}
;
break;}
{
Coherence_PS();
;
break;}
case 199:
#line 1328 "Gmsh.y"
{
if(!Set_StringOption(yyvsp[-3].c, GeneralOptions_String, yyvsp[-1].c))
vyyerror("Unknown General Option (String) '%s'", yyvsp[-3].c);
case 200:
#line 1333 "Gmsh.y"
{
if(!Set_NumberOption(yyvsp[-3].c, GeneralOptions_Number, yyvsp[-1].d))
vyyerror("Unknown General Option (Number) '%s'", yyvsp[-3].c);
;
break;}
case 201:
#line 1338 "Gmsh.y"
{ if(!Set_ArrayOption(yyvsp[-3].c, GeneralOptions_Array, yyvsp[-1].v))
vyyerror("Unknown General Option (Array) '%s'", yyvsp[-3].c);
;
break;}
break;}
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
{
if(!Set_StringOption(yyvsp[-3].c, GeometryOptions_String, yyvsp[-1].c))
vyyerror("Unknown Geometry Option (String) '%s'", yyvsp[-3].c);
;
break;}
case 207:
#line 1358 "Gmsh.y"
{
if(!Set_NumberOption(yyvsp[-3].c, GeometryOptions_Number, yyvsp[-1].d))
vyyerror("Unknown Geometry Option (Number) '%s'", yyvsp[-3].c);
;
break;}
case 208:
#line 1363 "Gmsh.y"
{
if(!Set_ArrayOption(yyvsp[-3].c, GeometryOptions_Array, yyvsp[-1].v))
vyyerror("Unknown Geometry Option (Array) '%s'", yyvsp[-3].c);
;
break;}
case 209:
#line 1368 "Gmsh.y"
{ ColorField = GeometryOptions_Color; ;
break;}
case 213:
#line 1379 "Gmsh.y"
{
if(!Set_StringOption(yyvsp[-3].c, MeshOptions_String, yyvsp[-1].c))
vyyerror("Unknown Mesh Option (String) '%s'", yyvsp[-3].c);
;
break;}
case 214:
#line 1384 "Gmsh.y"
{
if(!Set_NumberOption(yyvsp[-3].c, MeshOptions_Number, yyvsp[-1].d))
vyyerror("Unknown Mesh Option (Number) '%s'", yyvsp[-3].c);
;
break;}
case 215:
#line 1389 "Gmsh.y"
{
if(!Set_ArrayOption(yyvsp[-3].c, MeshOptions_Array, yyvsp[-1].v))
vyyerror("Unknown Mesh Option (Array) '%s'", yyvsp[-3].c);
;
break;}
case 216:
#line 1394 "Gmsh.y"
{ ColorField = MeshOptions_Color; ;
break;}
case 220:
#line 1405 "Gmsh.y"
{
if(!Set_StringOption(yyvsp[-3].c, PostProcessingOptions_String, yyvsp[-1].c))
vyyerror("Unknown PostProcessing Option (String) '%s'", yyvsp[-3].c);
;
break;}
case 221:
#line 1410 "Gmsh.y"
{
if(!Set_NumberOption(yyvsp[-3].c, PostProcessingOptions_Number, yyvsp[-1].d))
vyyerror("Unknown PostProcessing Option (Number) '%s'", yyvsp[-3].c);
;
break;}
case 222:
#line 1415 "Gmsh.y"
{
if(!Set_ArrayOption(yyvsp[-3].c, PostProcessingOptions_Array, yyvsp[-1].v))
vyyerror("Unknown PostProcessing (Array) Option '%s'", yyvsp[-3].c);
;
break;}
case 223:
#line 1420 "Gmsh.y"
{ ColorField = PostProcessingOptions_Color; ;
break;}
case 227:
#line 1431 "Gmsh.y"
{
if(!Set_StringOption(yyvsp[-3].c, PrintOptions_String, yyvsp[-1].c))
vyyerror("Unknown Print Option (String) '%s'", yyvsp[-3].c);
;
break;}
case 228:
#line 1436 "Gmsh.y"
{
if(!Set_NumberOption(yyvsp[-3].c, PrintOptions_Number, yyvsp[-1].d))
vyyerror("Unknown Print Option (Number) '%s'", yyvsp[-3].c);
;
break;}
case 229:
#line 1441 "Gmsh.y"
{
if(!Set_ArrayOption(yyvsp[-3].c, PrintOptions_Array, yyvsp[-1].v))
vyyerror("Unknown Print Option (Array) '%s'", yyvsp[-3].c);
;
break;}
case 230:
#line 1446 "Gmsh.y"
{ ColorField = PrintOptions_Color; ;
break;}
case 234:
#line 1457 "Gmsh.y"
{
i = Get_ColorForString(ColorString, -1, yyvsp[-1].c, &flag);
if(flag) vyyerror("Unknown Color '%s'", yyvsp[-1].c);
if(!Set_ColorOption(yyvsp[-3].c, ColorField, i))
vyyerror("Unknown Color Field '%s'", yyvsp[-3].c);
;
break;}
{
i = Get_ColorForString(ColorString, (int)yyvsp[-2].d, yyvsp[-4].c, &flag);
if(flag) vyyerror("Unknown Color '%s'", yyvsp[-4].c);
if(!Set_ColorOption(yyvsp[-7].c, ColorField, i))
vyyerror("Unknown Color Field '%s'", yyvsp[-7].c);
;
break;}
{
if(!Set_ColorOption(yyvsp[-3].c, ColorField,
PACK_COLOR((int)yyvsp[-1].v[0], (int)yyvsp[-1].v[1], (int)yyvsp[-1].v[2], (int)yyvsp[-1].v[3])))
vyyerror("Unknown Color Field '%s'", yyvsp[-3].c);
;
break;}
{
yyval.v[0]=yyvsp[-7].d;
yyval.v[1]=yyvsp[-5].d;
yyval.v[2]=yyvsp[-3].d;
yyval.v[3]=yyvsp[-1].d;
;
break;}
{
yyval.v[0]=yyvsp[-5].d;
yyval.v[1]=yyvsp[-3].d;
yyval.v[2]=yyvsp[-1].d;
yyval.v[3]=255.;
;
break;}
break;}
{yyval.i = -1;;
break;}
{yyval.i = -1;;
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
break;}
{ yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d); ;
break;}
break;}
{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
break;}
{
TheSymbol.Name = yyvsp[0].c ;
if (!List_Query(Symbol_L, &TheSymbol, CompareSymbols)) {
vyyerror("Unknown variable '%s'", yyvsp[0].c) ; yyval.d = 0. ;
}
else yyval.d = TheSymbol.val ;
Free(yyvsp[0].c);
;
break;}
{
ListOfDouble2_L = List_Create(2,1,sizeof(double)) ;
for(d=yyvsp[-2].d ; (yyvsp[-2].d<yyvsp[0].d)?(d<=yyvsp[0].d):(d>=yyvsp[0].d) ; (yyvsp[-2].d<yyvsp[0].d)?(d+=1.):(d-=1.))
List_Add(ListOfDouble2_L, &d) ;
;
break;}
{
ListOfDouble2_L = List_Create(2,1,sizeof(double)) ;
if(!yyvsp[-2].d || (yyvsp[-5].d<yyvsp[0].d && yyvsp[-2].d<0) || (yyvsp[-5].d>yyvsp[0].d && yyvsp[-2].d>0)){
vyyerror("Wrong Increment in '%g :[%g] %g'", yyvsp[-5].d, yyvsp[-2].d, yyvsp[0].d) ;
List_Add(ListOfDouble2_L, &(yyvsp[-5].d)) ;
}
else
for(d=yyvsp[-5].d ; (yyvsp[-2].d>0)?(d<=yyvsp[0].d):(d>=yyvsp[0].d) ; d+=yyvsp[-2].d)
List_Add(ListOfDouble2_L, &d) ;
;
break;}
{
yyval.v[0]=yyvsp[-9].d;
yyval.v[1]=yyvsp[-7].d;
yyval.v[2]=yyvsp[-5].d;
yyval.v[3]=yyvsp[-3].d;
yyval.v[4]=yyvsp[-1].d;
;
break;}
{
yyval.v[0]=yyvsp[-7].d;
yyval.v[1]=yyvsp[-5].d;
yyval.v[2]=yyvsp[-3].d;
yyval.v[3]=yyvsp[-1].d;
yyval.v[4]=1.0;
;
break;}
{
yyval.v[0]=yyvsp[-5].d;
yyval.v[1]=yyvsp[-3].d;
yyval.v[2]=yyvsp[-1].d;
yyval.v[3]=0.0;
yyval.v[4]=1.0;
;
break;}
{
yyval.v[0]=yyvsp[-5].d;
yyval.v[1]=yyvsp[-3].d;
yyval.v[2]=yyvsp[-1].d;
yyval.v[3]=0.0;
yyval.v[4]=1.0;
;
break;}
{
;
break;}
{
;
break;}
{
;
break;}
{
yyval.l=ListOfListOfDouble_L;
;
break;}
{
;
break;}
{
List_Add(ListOfListOfDouble_L, &(yyvsp[0].l)) ;
;
break;}
{
;
break;}
{
ListOfDouble_L = List_Create(2,1,sizeof(double)) ;
List_Add(ListOfDouble_L, &(yyvsp[0].d)) ;
yyval.l=ListOfDouble_L;
;
break;}
{
yyval.l=ListOfDouble_L;
;
break;}
{
ListOfDouble_L = List_Create(2,1,sizeof(double)) ;
List_Add(ListOfDouble_L, &(yyvsp[0].d)) ;
;
break;}
{
ListOfDouble_L = List_Create(2,1,sizeof(double)) ;
for(i=0 ; i<List_Nbr(ListOfDouble2_L) ; i++){
List_Read(ListOfDouble2_L, i, &d) ;
List_Add(ListOfDouble_L, &d) ;
}
List_Delete(ListOfDouble2_L);
;
break;}
{
List_Add(ListOfDouble_L, &(yyvsp[0].d)) ;
;
break;}
{
for(i=0 ; i<List_Nbr(ListOfDouble2_L) ; i++){
List_Read(ListOfDouble2_L, i, &d) ;
List_Add(ListOfDouble_L, &d) ;
}
List_Delete(ListOfDouble2_L);
;
break;}
}
/* the action file gets copied in in place of this dollarsign */
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
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
yyvsp -= yylen;
yyssp -= yylen;
#ifdef YYLSP_NEEDED
yylsp -= yylen;
#endif
#if YYDEBUG != 0
if (yydebug)
{
short *ssp1 = yyss - 1;
fprintf (stderr, "state stack now");
while (ssp1 != yyssp)
fprintf (stderr, " %d", *++ssp1);
fprintf (stderr, "\n");
}
#endif
*++yyvsp = yyval;
#ifdef YYLSP_NEEDED
yylsp++;
if (yylen == 0)
{
yylsp->first_line = yylloc.first_line;
yylsp->first_column = yylloc.first_column;
yylsp->last_line = (yylsp-1)->last_line;
yylsp->last_column = (yylsp-1)->last_column;
yylsp->text = 0;
}
else
{
yylsp->last_line = (yylsp+yylen-1)->last_line;
yylsp->last_column = (yylsp+yylen-1)->last_column;
}
#endif
/* Now "shift" the result of the reduction.
Determine what state that goes to,
based on the state we popped back to
and the rule number reduced by. */
yyn = yyr1[yyn];
yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yytable[yystate];
else
yystate = yydefgoto[yyn - YYNTBASE];
goto yynewstate;
yyerrlab: /* here on detecting error */
if (! yyerrstatus)
/* If not already recovering from an error, report this error. */
{
++yynerrs;
#ifdef YYERROR_VERBOSE
yyn = yypact[yystate];
if (yyn > YYFLAG && yyn < YYLAST)
{
int size = 0;
char *msg;
int x, count;
count = 0;
/* Start X at -yyn if nec to avoid negative indexes in yycheck. */
for (x = (yyn < 0 ? -yyn : 0);
x < (sizeof(yytname) / sizeof(char *)); x++)
if (yycheck[x + yyn] == x)
size += strlen(yytname[x]) + 15, count++;
msg = (char *) malloc(size + 15);
if (msg != 0)
{
strcpy(msg, "parse error");
if (count < 5)
{
count = 0;
for (x = (yyn < 0 ? -yyn : 0);
x < (sizeof(yytname) / sizeof(char *)); x++)
if (yycheck[x + yyn] == x)
{
strcat(msg, count == 0 ? ", expecting `" : " or `");
strcat(msg, yytname[x]);
strcat(msg, "'");
count++;
}
}
yyerror(msg);
free(msg);
}
else
yyerror ("parse error; also virtual memory exceeded");
}
else
#endif /* YYERROR_VERBOSE */
yyerror("parse error");
}
goto yyerrlab1;
yyerrlab1: /* here on error raised explicitly by an action */
if (yyerrstatus == 3)
{
/* if just tried and failed to reuse lookahead token after an error, discard it. */
/* return failure if at end of input */
if (yychar == YYEOF)
YYABORT;
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
#endif
yychar = YYEMPTY;
}
/* Else will try to reuse lookahead token
after shifting the error token. */
yyerrstatus = 3; /* Each real token shifted decrements this */
goto yyerrhandle;
yyerrdefault: /* current state does not do anything special for the error token. */
#if 0
/* This is wrong; only states that explicitly want error tokens
should shift them. */
yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
if (yyn) goto yydefault;
#endif
yyerrpop: /* pop the current state because it cannot handle the error token */
if (yyssp == yyss) YYABORT;
yyvsp--;
yystate = *--yyssp;
#ifdef YYLSP_NEEDED
yylsp--;
#endif
#if YYDEBUG != 0
if (yydebug)
{
short *ssp1 = yyss - 1;
fprintf (stderr, "Error: state stack now");
while (ssp1 != yyssp)