support the NetWhile statement.

This commit is contained in:
steve 2001-04-01 06:52:27 +00:00
parent 56a4236576
commit a2da2d59df
4 changed files with 25 additions and 7 deletions

View File

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT) && !defined(macintosh)
#ident "$Id: ivl_target.h,v 1.42 2001/04/01 04:38:17 steve Exp $"
#ident "$Id: ivl_target.h,v 1.43 2001/04/01 06:52:27 steve Exp $"
#endif
#ifdef __cplusplus
@ -677,7 +677,7 @@ extern unsigned ivl_stmt_case_count(ivl_statement_t net);
extern ivl_expr_t ivl_stmt_case_expr(ivl_statement_t net, unsigned i);
/* IVL_ST_CASE */
extern ivl_statement_t ivl_stmt_case_stmt(ivl_statement_t net, unsigned i);
/* IVL_ST_CONDIT, IVL_ST_CASE */
/* IVL_ST_CONDIT, IVL_ST_CASE IVL_ST_WHILE */
extern ivl_expr_t ivl_stmt_cond_expr(ivl_statement_t net);
/* IVL_ST_CONDIT */
extern ivl_statement_t ivl_stmt_cond_false(ivl_statement_t net);
@ -722,6 +722,9 @@ _END_DECL
/*
* $Log: ivl_target.h,v $
* Revision 1.43 2001/04/01 06:52:27 steve
* support the NetWhile statement.
*
* Revision 1.42 2001/04/01 04:38:17 steve
* dead cruft.
*

View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT) && !defined(macintosh)
#ident "$Id: t-dll-api.cc,v 1.29 2001/04/01 01:48:21 steve Exp $"
#ident "$Id: t-dll-api.cc,v 1.30 2001/04/01 06:52:27 steve Exp $"
#endif
# include "t-dll.h"
@ -655,6 +655,9 @@ extern "C" ivl_expr_t ivl_stmt_cond_expr(ivl_statement_t net)
case IVL_ST_CASEZ:
return net->u_.case_.cond;
case IVL_ST_WHILE:
return net->u_.while_.cond_;
default:
assert(0);
return 0;
@ -802,6 +805,9 @@ extern "C" ivl_statement_t ivl_stmt_sub_stmt(ivl_statement_t net)
/*
* $Log: t-dll-api.cc,v $
* Revision 1.30 2001/04/01 06:52:27 steve
* support the NetWhile statement.
*
* Revision 1.29 2001/04/01 01:48:21 steve
* Redesign event information to support arbitrary edge combining.
*

View File

@ -18,7 +18,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT) && !defined(macintosh)
#ident "$Id: t-dll-proc.cc,v 1.18 2001/04/01 01:48:21 steve Exp $"
#ident "$Id: t-dll-proc.cc,v 1.19 2001/04/01 06:52:28 steve Exp $"
#endif
# include "target.h"
@ -421,7 +421,10 @@ void dll_target::proc_while(const NetWhile*net)
stmt_cur_->u_.while_.stmt_ = (struct ivl_statement_s*)
calloc(1, sizeof(struct ivl_statement_s));
/* XXXX Nothing about the expression? */
assert(expr_ == 0);
net->expr()->expr_scan(this);
stmt_cur_->u_.while_.cond_ = expr_;
expr_ = 0;
/* Now generate the statement of the while loop. We know it is
a single statement, and we know that the
@ -435,6 +438,9 @@ void dll_target::proc_while(const NetWhile*net)
/*
* $Log: t-dll-proc.cc,v $
* Revision 1.19 2001/04/01 06:52:28 steve
* support the NetWhile statement.
*
* Revision 1.18 2001/04/01 01:48:21 steve
* Redesign event information to support arbitrary edge combining.
*

View File

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined(WINNT) && !defined(macintosh)
#ident "$Id: t-dll.h,v 1.29 2001/04/01 01:48:21 steve Exp $"
#ident "$Id: t-dll.h,v 1.30 2001/04/01 06:52:28 steve Exp $"
#endif
# include "target.h"
@ -386,7 +386,7 @@ struct ivl_statement_s {
} wait_;
struct { /* IVL_ST_WHILE */
int cond_; /* XXXX */
ivl_expr_t cond_;
ivl_statement_t stmt_;
} while_;
} u_;
@ -394,6 +394,9 @@ struct ivl_statement_s {
/*
* $Log: t-dll.h,v $
* Revision 1.30 2001/04/01 06:52:28 steve
* support the NetWhile statement.
*
* Revision 1.29 2001/04/01 01:48:21 steve
* Redesign event information to support arbitrary edge combining.
*