mirror of
https://github.com/golang/go
synced 2024-11-26 23:31:24 -07:00
cmd/gc: merge casep and casee labels
The code inside the casee and casep labels can perfectly be merged since they essentially do the same. The character to be stored where cp points is just the character contained by the c variable. R=golang-dev, dave, rsc CC=golang-dev https://golang.org/cl/6845112
This commit is contained in:
parent
3c6c88319e
commit
0dd0e1ad0c
@ -1296,13 +1296,13 @@ tnum:
|
||||
if(cp == lexbuf+2)
|
||||
yyerror("malformed hex constant");
|
||||
if(c == 'p')
|
||||
goto casep;
|
||||
goto caseep;
|
||||
goto ncu;
|
||||
}
|
||||
}
|
||||
|
||||
if(c == 'p') // 0p begins floating point zero
|
||||
goto casep;
|
||||
goto caseep;
|
||||
|
||||
c1 = 0;
|
||||
for(;;) {
|
||||
@ -1320,7 +1320,7 @@ tnum:
|
||||
if(c == '.')
|
||||
goto casedot;
|
||||
if(c == 'e' || c == 'E')
|
||||
goto casee;
|
||||
goto caseep;
|
||||
if(c == 'i')
|
||||
goto casei;
|
||||
if(c1)
|
||||
@ -1330,10 +1330,8 @@ tnum:
|
||||
dc:
|
||||
if(c == '.')
|
||||
goto casedot;
|
||||
if(c == 'e' || c == 'E')
|
||||
goto casee;
|
||||
if(c == 'p' || c == 'P')
|
||||
goto casep;
|
||||
if(c == 'e' || c == 'E' || c == 'p' || c == 'P')
|
||||
goto caseep;
|
||||
if(c == 'i')
|
||||
goto casei;
|
||||
|
||||
@ -1369,30 +1367,9 @@ casedot:
|
||||
if(c != 'e' && c != 'E')
|
||||
goto caseout;
|
||||
|
||||
casee:
|
||||
*cp++ = 'e';
|
||||
c = getc();
|
||||
if(c == '+' || c == '-') {
|
||||
caseep:
|
||||
*cp++ = c;
|
||||
c = getc();
|
||||
}
|
||||
if(!yy_isdigit(c))
|
||||
yyerror("malformed fp constant exponent");
|
||||
while(yy_isdigit(c)) {
|
||||
if(cp+10 >= ep) {
|
||||
yyerror("identifier too long");
|
||||
errorexit();
|
||||
}
|
||||
*cp++ = c;
|
||||
c = getc();
|
||||
}
|
||||
if(c == 'i')
|
||||
goto casei;
|
||||
goto caseout;
|
||||
|
||||
casep:
|
||||
*cp++ = 'p';
|
||||
c = getc();
|
||||
if(c == '+' || c == '-') {
|
||||
*cp++ = c;
|
||||
c = getc();
|
||||
|
Loading…
Reference in New Issue
Block a user