mirror of
https://github.com/golang/go
synced 2024-11-18 21:44:45 -07:00
handle negative numeric constants in import.
(fixes bugs/bug106) package bug0 export const A = -1 package bug1 import "bug0" R=ken DELTA=21 (19 added, 0 deleted, 2 changed) OCL=15901 CL=15968
This commit is contained in:
parent
ac05579345
commit
c3d841f5d4
@ -56,6 +56,8 @@
|
||||
%type <type> structtype interfacetype convtype
|
||||
%type <type> Achantype Bchantype
|
||||
|
||||
%type <val> hidden_constant
|
||||
|
||||
%left LOROR
|
||||
%left LANDAND
|
||||
%left LCOMM
|
||||
@ -1555,11 +1557,11 @@ hidden_import:
|
||||
}
|
||||
|
||||
/* constants */
|
||||
| LCONST hidden_importsym LLITERAL
|
||||
| LCONST hidden_importsym hidden_constant
|
||||
{
|
||||
doimportc1($2, &$3);
|
||||
}
|
||||
| LCONST hidden_importsym hidden_importsym LLITERAL
|
||||
| LCONST hidden_importsym hidden_importsym hidden_constant
|
||||
{
|
||||
doimportc2($2, $3, &$4);
|
||||
}
|
||||
@ -1616,6 +1618,23 @@ hidden_import:
|
||||
doimport9($2, $3);
|
||||
}
|
||||
|
||||
hidden_constant:
|
||||
LLITERAL
|
||||
| '-' LLITERAL
|
||||
{
|
||||
$$ = $2;
|
||||
switch($$.ctype){
|
||||
case CTINT:
|
||||
mpnegfix($$.u.xval);
|
||||
break;
|
||||
case CTFLT:
|
||||
mpnegflt($$.u.fval);
|
||||
break;
|
||||
default:
|
||||
yyerror("bad negated constant");
|
||||
}
|
||||
}
|
||||
|
||||
isym:
|
||||
sym1 '.' sym2
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user