Standardize error/sorry messages.
This commit is contained in:
parent
8e21f0f363
commit
93f05306e7
93
parse.y
93
parse.y
|
|
@ -19,7 +19,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
*/
|
*/
|
||||||
#if !defined(WINNT)
|
#if !defined(WINNT)
|
||||||
#ident "$Id: parse.y,v 1.68 1999/09/29 18:36:04 steve Exp $"
|
#ident "$Id: parse.y,v 1.69 1999/09/29 21:16:32 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# include "parse_misc.h"
|
# include "parse_misc.h"
|
||||||
|
|
@ -207,7 +207,7 @@ case_item
|
||||||
$$ = tmp;
|
$$ = tmp;
|
||||||
}
|
}
|
||||||
| error ':' statement_opt
|
| error ':' statement_opt
|
||||||
{ yyerror(@1, "Incomprehensible case expression.");
|
{ yyerror(@1, "error: Incomprehensible case expression.");
|
||||||
yyerrok;
|
yyerrok;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
@ -241,11 +241,12 @@ defparam_assign
|
||||||
: identifier '=' expression
|
: identifier '=' expression
|
||||||
{ PExpr*tmp = $3;
|
{ PExpr*tmp = $3;
|
||||||
if (!pform_expression_is_constant(tmp)) {
|
if (!pform_expression_is_constant(tmp)) {
|
||||||
yyerror(@3, "parameter value must be constant.");
|
yyerror(@3, "error: parameter value "
|
||||||
|
"must be constant.");
|
||||||
delete tmp;
|
delete tmp;
|
||||||
tmp = 0;
|
tmp = 0;
|
||||||
}
|
}
|
||||||
yyerror(@1, "Sorry, defparam assignments not supported.");
|
yyerror(@1, "sorry: defparam assignments not supported.");
|
||||||
delete $1;
|
delete $1;
|
||||||
delete $3;
|
delete $3;
|
||||||
}
|
}
|
||||||
|
|
@ -254,7 +255,7 @@ defparam_assign
|
||||||
defparam_assign_list
|
defparam_assign_list
|
||||||
: defparam_assign
|
: defparam_assign
|
||||||
| range defparam_assign
|
| range defparam_assign
|
||||||
{ yyerror(@1, "Ranges in parameter definition "
|
{ yywarn(@1, "Ranges in parameter definition "
|
||||||
"are not supported.");
|
"are not supported.");
|
||||||
delete $1;
|
delete $1;
|
||||||
}
|
}
|
||||||
|
|
@ -281,7 +282,7 @@ delay_value
|
||||||
: NUMBER
|
: NUMBER
|
||||||
{ verinum*tmp = $1;
|
{ verinum*tmp = $1;
|
||||||
if (tmp == 0) {
|
if (tmp == 0) {
|
||||||
yyerror(@1, "XXXX internal error: delay.");
|
yyerror(@1, "internal error: delay.");
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
} else {
|
} else {
|
||||||
$$ = new PENumber(tmp);
|
$$ = new PENumber(tmp);
|
||||||
|
|
@ -324,7 +325,7 @@ description
|
||||||
|
|
||||||
event_control
|
event_control
|
||||||
: '@' IDENTIFIER
|
: '@' IDENTIFIER
|
||||||
{ yyerror(@1, "Sorry, event control not supported.");
|
{ yyerror(@1, "sorry: event control not supported.");
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
}
|
}
|
||||||
| '@' '(' event_expression ')'
|
| '@' '(' event_expression ')'
|
||||||
|
|
@ -335,7 +336,7 @@ event_control
|
||||||
$$ = tmp;
|
$$ = tmp;
|
||||||
}
|
}
|
||||||
| '@' '(' error ')'
|
| '@' '(' error ')'
|
||||||
{ yyerror(@1, "Malformed event control expression.");
|
{ yyerror(@1, "error: Malformed event control expression.");
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
@ -590,7 +591,7 @@ expr_primary
|
||||||
$$ = tmp;
|
$$ = tmp;
|
||||||
}
|
}
|
||||||
| REALTIME
|
| REALTIME
|
||||||
{ yyerror(@1, "Sorry, real constants not supported.");
|
{ yyerror(@1, "sorry: real constants not supported.");
|
||||||
delete $1;
|
delete $1;
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -647,7 +648,7 @@ expr_primary
|
||||||
| '(' expression ')'
|
| '(' expression ')'
|
||||||
{ $$ = $2; }
|
{ $$ = $2; }
|
||||||
| '(' expression ':' expression ':' expression ')'
|
| '(' expression ':' expression ':' expression ')'
|
||||||
{ yyerror(@2, "Sorry, (min:typ:max) not supported.");
|
{ yyerror(@2, "sorry: (min:typ:max) not supported.");
|
||||||
$$ = $4;
|
$$ = $4;
|
||||||
delete $2;
|
delete $2;
|
||||||
delete $6;
|
delete $6;
|
||||||
|
|
@ -662,7 +663,8 @@ expr_primary
|
||||||
| '{' expression '{' expression_list '}' '}'
|
| '{' expression '{' expression_list '}' '}'
|
||||||
{ PExpr*rep = $2;
|
{ PExpr*rep = $2;
|
||||||
if (!pform_expression_is_constant($2)) {
|
if (!pform_expression_is_constant($2)) {
|
||||||
yyerror(@2, "Repeat expression must be constant.");
|
yyerror(@2, "error: Repeat expression "
|
||||||
|
"must be constant.");
|
||||||
delete rep;
|
delete rep;
|
||||||
delete $2;
|
delete $2;
|
||||||
rep = 0;
|
rep = 0;
|
||||||
|
|
@ -680,7 +682,7 @@ func_body
|
||||||
: function_item_list statement
|
: function_item_list statement
|
||||||
{ $$ = new PFunction($1, $2); }
|
{ $$ = new PFunction($1, $2); }
|
||||||
| function_item_list
|
| function_item_list
|
||||||
{ yyerror(@1, "function body has no statement."); }
|
{ yyerror(@1, "error: function body has no statement."); }
|
||||||
;
|
;
|
||||||
|
|
||||||
function_item
|
function_item
|
||||||
|
|
@ -812,7 +814,7 @@ identifier
|
||||||
: IDENTIFIER
|
: IDENTIFIER
|
||||||
{ $$ = $1; }
|
{ $$ = $1; }
|
||||||
| HIDENTIFIER
|
| HIDENTIFIER
|
||||||
{ yyerror(@1, "Sorry, qualified identifiers not supported.");
|
{ yyerror(@1, "sorry: qualified identifiers not supported.");
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
@ -867,7 +869,7 @@ lavalue
|
||||||
{ PEIdent*tmp = new PEIdent($1);
|
{ PEIdent*tmp = new PEIdent($1);
|
||||||
PExpr*sel = $3;
|
PExpr*sel = $3;
|
||||||
if (! pform_expression_is_constant(sel)) {
|
if (! pform_expression_is_constant(sel)) {
|
||||||
yyerror(@2, "Bit select in lvalue must "
|
yyerror(@2, "eror: Bit select in lvalue must "
|
||||||
"contain a constant expression.");
|
"contain a constant expression.");
|
||||||
delete sel;
|
delete sel;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -991,7 +993,7 @@ module_item
|
||||||
delete $3;
|
delete $3;
|
||||||
}
|
}
|
||||||
| K_trireg charge_strength_opt range_opt delay_opt list_of_variables ';'
|
| K_trireg charge_strength_opt range_opt delay_opt list_of_variables ';'
|
||||||
{ yyerror(@1, "Sorry, trireg nets not supported.");
|
{ yyerror(@1, "sorry: trireg nets not supported.");
|
||||||
delete $3;
|
delete $3;
|
||||||
}
|
}
|
||||||
| port_type range_opt list_of_variables ';'
|
| port_type range_opt list_of_variables ';'
|
||||||
|
|
@ -1005,7 +1007,7 @@ module_item
|
||||||
| block_item_decl
|
| block_item_decl
|
||||||
| K_defparam defparam_assign_list ';'
|
| K_defparam defparam_assign_list ';'
|
||||||
| K_event list_of_variables ';'
|
| K_event list_of_variables ';'
|
||||||
{ yyerror(@1, "Sorry, named events not supported.");
|
{ yyerror(@1, "sorry: named events not supported.");
|
||||||
delete $2;
|
delete $2;
|
||||||
}
|
}
|
||||||
| K_parameter parameter_assign_list ';'
|
| K_parameter parameter_assign_list ';'
|
||||||
|
|
@ -1061,7 +1063,7 @@ module_item
|
||||||
delete $7;
|
delete $7;
|
||||||
}
|
}
|
||||||
| KK_attribute '(' error ')' ';'
|
| KK_attribute '(' error ')' ';'
|
||||||
{ yyerror(@1, "Misformed $attribute parameter list."); }
|
{ yyerror(@1, "error: Misformed $attribute parameter list."); }
|
||||||
;
|
;
|
||||||
|
|
||||||
module_item_list
|
module_item_list
|
||||||
|
|
@ -1121,7 +1123,8 @@ parameter_assign
|
||||||
: IDENTIFIER '=' expression
|
: IDENTIFIER '=' expression
|
||||||
{ PExpr*tmp = $3;
|
{ PExpr*tmp = $3;
|
||||||
if (!pform_expression_is_constant(tmp)) {
|
if (!pform_expression_is_constant(tmp)) {
|
||||||
yyerror(@3, "parameter value must be constant.");
|
yyerror(@3, "error: parameter value "
|
||||||
|
"must be constant.");
|
||||||
delete tmp;
|
delete tmp;
|
||||||
tmp = 0;
|
tmp = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -1133,7 +1136,7 @@ parameter_assign
|
||||||
parameter_assign_list
|
parameter_assign_list
|
||||||
: parameter_assign
|
: parameter_assign
|
||||||
| range parameter_assign
|
| range parameter_assign
|
||||||
{ yyerror(@1, "Ranges in parameter definition "
|
{ yywarn(@1, "Ranges in parameter definition "
|
||||||
"are not supported.");
|
"are not supported.");
|
||||||
delete $1;
|
delete $1;
|
||||||
}
|
}
|
||||||
|
|
@ -1198,11 +1201,11 @@ port_reference
|
||||||
wtmp->set_file(@1.text);
|
wtmp->set_file(@1.text);
|
||||||
wtmp->set_lineno(@1.first_line);
|
wtmp->set_lineno(@1.first_line);
|
||||||
if (!pform_expression_is_constant($3)) {
|
if (!pform_expression_is_constant($3)) {
|
||||||
yyerror(@3, "msb expression of port bit select "
|
yyerror(@3, "error: msb expression of port bit select "
|
||||||
"must be constant.");
|
"must be constant.");
|
||||||
}
|
}
|
||||||
if (!pform_expression_is_constant($5)) {
|
if (!pform_expression_is_constant($5)) {
|
||||||
yyerror(@5, "lsb expression of port bit select "
|
yyerror(@5, "error: lsb expression of port bit select "
|
||||||
"must be constant.");
|
"must be constant.");
|
||||||
}
|
}
|
||||||
wtmp->set_range($3, $5);
|
wtmp->set_range($3, $5);
|
||||||
|
|
@ -1213,7 +1216,7 @@ port_reference
|
||||||
$$ = ptmp;
|
$$ = ptmp;
|
||||||
}
|
}
|
||||||
| IDENTIFIER '[' error ']'
|
| IDENTIFIER '[' error ']'
|
||||||
{ yyerror(@1, "invalid port bit select");
|
{ yyerror(@1, "error: invalid port bit select");
|
||||||
Module::port_t*ptmp = new Module::port_t(1);
|
Module::port_t*ptmp = new Module::port_t(1);
|
||||||
PWire*wtmp = new PWire($1, NetNet::IMPLICIT,
|
PWire*wtmp = new PWire($1, NetNet::IMPLICIT,
|
||||||
NetNet::PIMPLICIT);
|
NetNet::PIMPLICIT);
|
||||||
|
|
@ -1250,7 +1253,7 @@ port_name
|
||||||
$$ = tmp;
|
$$ = tmp;
|
||||||
}
|
}
|
||||||
| PORTNAME '(' error ')'
|
| PORTNAME '(' error ')'
|
||||||
{ yyerror(@3, "invalid port connection expression.");
|
{ yyerror(@3, "error: invalid port connection expression.");
|
||||||
portname_t*tmp = new portname_t;
|
portname_t*tmp = new portname_t;
|
||||||
tmp->name = $1;
|
tmp->name = $1;
|
||||||
tmp->parm = 0;
|
tmp->parm = 0;
|
||||||
|
|
@ -1290,12 +1293,12 @@ range
|
||||||
: '[' expression ':' expression ']'
|
: '[' expression ':' expression ']'
|
||||||
{ svector<PExpr*>*tmp = new svector<PExpr*> (2);
|
{ svector<PExpr*>*tmp = new svector<PExpr*> (2);
|
||||||
if (!pform_expression_is_constant($2))
|
if (!pform_expression_is_constant($2))
|
||||||
yyerror(@2, "msb of range must be constant.");
|
yyerror(@2, "error: msb of range must be constant.");
|
||||||
|
|
||||||
(*tmp)[0] = $2;
|
(*tmp)[0] = $2;
|
||||||
|
|
||||||
if (!pform_expression_is_constant($4))
|
if (!pform_expression_is_constant($4))
|
||||||
yyerror(@4, "msb of range must be constant.");
|
yyerror(@4, "error: msb of range must be constant.");
|
||||||
|
|
||||||
(*tmp)[1] = $4;
|
(*tmp)[1] = $4;
|
||||||
|
|
||||||
|
|
@ -1328,16 +1331,16 @@ register_variable
|
||||||
}
|
}
|
||||||
| IDENTIFIER '=' expression
|
| IDENTIFIER '=' expression
|
||||||
{ pform_makewire(@1, $1, NetNet::REG);
|
{ pform_makewire(@1, $1, NetNet::REG);
|
||||||
yyerror(@2, "net declaration assignment to reg/integer not allowed.");
|
yyerror(@2, "error: net declaration assignment to reg/integer not allowed.");
|
||||||
delete $3;
|
delete $3;
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
}
|
}
|
||||||
| IDENTIFIER '[' expression ':' expression ']'
|
| IDENTIFIER '[' expression ':' expression ']'
|
||||||
{ pform_makewire(@1, $1, NetNet::REG);
|
{ pform_makewire(@1, $1, NetNet::REG);
|
||||||
if (! pform_expression_is_constant($3))
|
if (! pform_expression_is_constant($3))
|
||||||
yyerror(@3, "msb of register range must be constant.");
|
yyerror(@3, "error: msb of register range must be constant.");
|
||||||
if (! pform_expression_is_constant($5))
|
if (! pform_expression_is_constant($5))
|
||||||
yyerror(@3, "lsb of register range must be constant.");
|
yyerror(@3, "error: lsb of register range must be constant.");
|
||||||
pform_set_reg_idx($1, $3, $5);
|
pform_set_reg_idx($1, $3, $5);
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
}
|
}
|
||||||
|
|
@ -1361,8 +1364,7 @@ register_variable_list
|
||||||
specify_item
|
specify_item
|
||||||
: K_specparam specparam_list ';'
|
: K_specparam specparam_list ';'
|
||||||
| specify_simple_path '=' '(' expression_list ')' ';'
|
| specify_simple_path '=' '(' expression_list ')' ';'
|
||||||
{ /* yyerror(@1, "Sorry, specify path declarations not supported."); */
|
{ delete $4;
|
||||||
delete $4;
|
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
@ -1378,8 +1380,7 @@ specify_simple_path
|
||||||
|
|
||||||
specparam
|
specparam
|
||||||
: IDENTIFIER '=' expression
|
: IDENTIFIER '=' expression
|
||||||
{ /* yyerror(@1, "Sorry, specparam assignments not supported."); */
|
{ delete $1;
|
||||||
delete $1;
|
|
||||||
delete $3;
|
delete $3;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
@ -1393,7 +1394,7 @@ spec_polarity: '+' | '-' | ;
|
||||||
|
|
||||||
statement
|
statement
|
||||||
: K_assign lavalue '=' expression ';'
|
: K_assign lavalue '=' expression ';'
|
||||||
{ yyerror(@1, "Sorry, procedural continuous assign not supported.");
|
{ yyerror(@1, "sorry: procedural continuous assign not supported.");
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
}
|
}
|
||||||
| K_begin statement_list K_end
|
| K_begin statement_list K_end
|
||||||
|
|
@ -1430,16 +1431,16 @@ statement
|
||||||
| K_begin error K_end
|
| K_begin error K_end
|
||||||
{ yyerrok; }
|
{ yyerrok; }
|
||||||
| K_deassign lavalue';'
|
| K_deassign lavalue';'
|
||||||
{ yyerror(@1, "Sorry, deassign not supported.");
|
{ yyerror(@1, "sorry:, deassign not supported.");
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
}
|
}
|
||||||
| K_disable IDENTIFIER ';'
|
| K_disable IDENTIFIER ';'
|
||||||
{ yyerror(@1, "Sorry, disable statements not supported.");
|
{ yyerror(@1, "sorry: disable statements not supported.");
|
||||||
delete $2;
|
delete $2;
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
}
|
}
|
||||||
| K_force lavalue '=' expression ';'
|
| K_force lavalue '=' expression ';'
|
||||||
{ yyerror(@1, "Sorry, procedural force assign not supported.");
|
{ yyerror(@1, "sorry: procedural force assign not supported.");
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
}
|
}
|
||||||
| K_forever statement
|
| K_forever statement
|
||||||
|
|
@ -1480,7 +1481,7 @@ statement
|
||||||
$$ = tmp;
|
$$ = tmp;
|
||||||
}
|
}
|
||||||
| K_release lavalue ';'
|
| K_release lavalue ';'
|
||||||
{ yyerror(@1, "Sorry, release not supported.");
|
{ yyerror(@1, "sorry: release not supported.");
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
}
|
}
|
||||||
| K_repeat '(' expression ')' statement
|
| K_repeat '(' expression ')' statement
|
||||||
|
|
@ -1526,11 +1527,11 @@ statement
|
||||||
$$ = tmp;
|
$$ = tmp;
|
||||||
}
|
}
|
||||||
| K_if '(' error ')' statement_opt
|
| K_if '(' error ')' statement_opt
|
||||||
{ yyerror(@1, "Malformed conditional expression.");
|
{ yyerror(@1, "error: Malformed conditional expression.");
|
||||||
$$ = $5;
|
$$ = $5;
|
||||||
}
|
}
|
||||||
| K_if '(' error ')' statement_opt K_else statement_opt
|
| K_if '(' error ')' statement_opt K_else statement_opt
|
||||||
{ yyerror(@1, "Malformed conditional expression.");
|
{ yyerror(@1, "error: Malformed conditional expression.");
|
||||||
$$ = $5;
|
$$ = $5;
|
||||||
}
|
}
|
||||||
| K_for '(' lpvalue '=' expression ';' expression ';'
|
| K_for '(' lpvalue '=' expression ';' expression ';'
|
||||||
|
|
@ -1543,16 +1544,16 @@ statement
|
||||||
| K_for '(' lpvalue '=' expression ';' expression ';'
|
| K_for '(' lpvalue '=' expression ';' expression ';'
|
||||||
error ')' statement
|
error ')' statement
|
||||||
{ $$ = 0;
|
{ $$ = 0;
|
||||||
yyerror(@9, "Error in for loop step assigment.");
|
yyerror(@9, "error: Error in for loop step assigment.");
|
||||||
}
|
}
|
||||||
| K_for '(' lpvalue '=' expression ';' error ';'
|
| K_for '(' lpvalue '=' expression ';' error ';'
|
||||||
lpvalue '=' expression ')' statement
|
lpvalue '=' expression ')' statement
|
||||||
{ $$ = 0;
|
{ $$ = 0;
|
||||||
yyerror(@7, "Error in for loop condition expression.");
|
yyerror(@7, "error: Error in for loop condition expression.");
|
||||||
}
|
}
|
||||||
| K_for '(' error ')' statement
|
| K_for '(' error ')' statement
|
||||||
{ $$ = 0;
|
{ $$ = 0;
|
||||||
yyerror(@3, "Incomprehensible for loop.");
|
yyerror(@3, "error: Incomprehensible for loop.");
|
||||||
}
|
}
|
||||||
| K_while '(' expression ')' statement
|
| K_while '(' expression ')' statement
|
||||||
{ PWhile*tmp = new PWhile($3, $5);
|
{ PWhile*tmp = new PWhile($3, $5);
|
||||||
|
|
@ -1560,12 +1561,12 @@ statement
|
||||||
}
|
}
|
||||||
| K_while '(' error ')' statement
|
| K_while '(' error ')' statement
|
||||||
{ $$ = 0;
|
{ $$ = 0;
|
||||||
yyerror(@3, "Error in while loop condition.");
|
yyerror(@3, "error: Error in while loop condition.");
|
||||||
}
|
}
|
||||||
| delay statement_opt
|
| delay statement_opt
|
||||||
{ PExpr*del = (*$1)[0];
|
{ PExpr*del = (*$1)[0];
|
||||||
if ($1->count() != 1)
|
if ($1->count() != 1)
|
||||||
yyerror(@1, "Sorry, delay lists not supported here.");
|
yyerror(@1, "sorry: delay lists not supported here.");
|
||||||
PDelayStatement*tmp = new PDelayStatement(del, $2);
|
PDelayStatement*tmp = new PDelayStatement(del, $2);
|
||||||
tmp->set_file(@1.text);
|
tmp->set_file(@1.text);
|
||||||
tmp->set_lineno(@1.first_line);
|
tmp->set_lineno(@1.first_line);
|
||||||
|
|
@ -1574,7 +1575,7 @@ statement
|
||||||
| event_control statement_opt
|
| event_control statement_opt
|
||||||
{ PEventStatement*tmp = $1;
|
{ PEventStatement*tmp = $1;
|
||||||
if (tmp == 0) {
|
if (tmp == 0) {
|
||||||
yyerror(@1, "Invalid event control.");
|
yyerror(@1, "error: Invalid event control.");
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
} else {
|
} else {
|
||||||
tmp->set_statement($2);
|
tmp->set_statement($2);
|
||||||
|
|
@ -1680,7 +1681,7 @@ statement
|
||||||
$$ = tmp;
|
$$ = tmp;
|
||||||
}
|
}
|
||||||
| error ';'
|
| error ';'
|
||||||
{ yyerror(@1, "malformed statement");
|
{ yyerror(@1, "error: malformed statement");
|
||||||
yyerrok;
|
yyerrok;
|
||||||
$$ = new PNoop;
|
$$ = new PNoop;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue