diff --git a/ivl_target.h b/ivl_target.h index e47b04331..58576c2e3 100644 --- a/ivl_target.h +++ b/ivl_target.h @@ -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. * diff --git a/t-dll-api.cc b/t-dll-api.cc index 79ffec910..3fe6fba0a 100644 --- a/t-dll-api.cc +++ b/t-dll-api.cc @@ -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. * diff --git a/t-dll-proc.cc b/t-dll-proc.cc index ce9d1939a..b399f96dc 100644 --- a/t-dll-proc.cc +++ b/t-dll-proc.cc @@ -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. * diff --git a/t-dll.h b/t-dll.h index 80d44570d..51e4d2b4c 100644 --- a/t-dll.h +++ b/t-dll.h @@ -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. *