Skip to content

Commit

Permalink
Fix shift/reduce warnings and ?:. (dhn@qedinc.com)
Browse files Browse the repository at this point in the history
  • Loading branch information
steve committed Sep 29, 1999
1 parent 93f0530 commit 5ee7cfb
Showing 1 changed file with 21 additions and 11 deletions.
32 changes: 21 additions & 11 deletions parse.y
Expand Up @@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT)
#ident "$Id: parse.y,v 1.69 1999/09/29 21:16:32 steve Exp $"
#ident "$Id: parse.y,v 1.70 1999/09/29 22:56:31 steve Exp $"
#endif

# include "parse_misc.h"
Expand Down Expand Up @@ -139,12 +139,13 @@ extern void lex_end_table();
%type <task> task_body
%type <function> func_body
%type <exprs> range_or_type_opt
%type <event_expr> event_expression_list
%type <event_expr> event_expression
%type <event_statement> event_control
%type <statement> statement statement_opt
%type <statement_list> statement_list

%left '?' ':'
%right '?' ':'
%left K_LOR
%left K_LAND
%left '|'
Expand All @@ -157,6 +158,10 @@ extern void lex_end_table();
%left '*' '/' '%'
%left UNARY_PREC

/* to resolve dangling else ambiguity: */
%nonassoc less_than_K_else
%nonassoc K_else

%%

source_file
Expand Down Expand Up @@ -328,7 +333,7 @@ event_control
{ yyerror(@1, "sorry: event control not supported.");
$$ = 0;
}
| '@' '(' event_expression ')'
| '@' '(' event_expression_list ')'
{ PEventStatement*tmp = new PEventStatement(*$3);
tmp->set_file(@1.text);
tmp->set_lineno(@1.first_line);
Expand All @@ -341,6 +346,17 @@ event_control
}
;

event_expression_list
: event_expression
{ $$ = $1; }
| event_expression_list K_or event_expression
{ svector<PEEvent*>*tmp = new svector<PEEvent*>(*$1, *$3);
delete $1;
delete $3;
$$ = tmp;
}
;

event_expression
: K_posedge expression
{ PEEvent*tmp = new PEEvent(NetNEvent::POSEDGE, $2);
Expand All @@ -366,12 +382,6 @@ event_expression
(*tl)[0] = tmp;
$$ = tl;
}
| event_expression K_or event_expression
{ svector<PEEvent*>*tmp = new svector<PEEvent*>(*$1, *$3);
delete $1;
delete $3;
$$ = tmp;
}
;

expression
Expand Down Expand Up @@ -1514,7 +1524,7 @@ statement
{ yyerrok; }
| K_casez '(' expression ')' error K_endcase
{ yyerrok; }
| K_if '(' expression ')' statement_opt
| K_if '(' expression ')' statement_opt %prec less_than_K_else
{ PCondit*tmp = new PCondit($3, $5, 0);
tmp->set_file(@1.text);
tmp->set_lineno(@1.first_line);
Expand All @@ -1526,7 +1536,7 @@ statement
tmp->set_lineno(@1.first_line);
$$ = tmp;
}
| K_if '(' error ')' statement_opt
| K_if '(' error ')' statement_opt %prec less_than_K_else
{ yyerror(@1, "error: Malformed conditional expression.");
$$ = $5;
}
Expand Down

0 comments on commit 5ee7cfb

Please sign in to comment.