102 |
`------------------------------------------------------------------*/ |
`------------------------------------------------------------------*/ |
103 |
|
|
104 |
void |
void |
105 |
symbol_type_set (symbol_t *symbol, char *type_name) |
symbol_type_set (symbol_t *symbol, location_t location, char *type_name) |
106 |
{ |
{ |
107 |
if (type_name) |
if (type_name) |
108 |
{ |
{ |
109 |
if (symbol->type_name) |
if (symbol->type_name) |
110 |
complain (_("type redeclaration for %s"), symbol->tag); |
complain_at (location, |
111 |
|
_("type redeclaration for %s"), symbol->tag); |
112 |
symbol->type_name = type_name; |
symbol->type_name = type_name; |
113 |
} |
} |
114 |
} |
} |
120 |
`------------------------------------------------------------------*/ |
`------------------------------------------------------------------*/ |
121 |
|
|
122 |
void |
void |
123 |
symbol_precedence_set (symbol_t *symbol, |
symbol_precedence_set (symbol_t *symbol, location_t location, |
124 |
int prec, associativity assoc) |
int prec, associativity assoc) |
125 |
{ |
{ |
126 |
if (assoc != undef_assoc) |
if (assoc != undef_assoc) |
127 |
{ |
{ |
128 |
if (symbol->prec != 0) |
if (symbol->prec != 0) |
129 |
complain (_("redefining precedence of %s"), symbol->tag); |
complain_at (location, |
130 |
|
_("redefining precedence of %s"), symbol->tag); |
131 |
symbol->prec = prec; |
symbol->prec = prec; |
132 |
symbol->assoc = assoc; |
symbol->assoc = assoc; |
133 |
} |
} |