Obsolete find_symbol and find_event from the Design class.

This commit is contained in:
steve 2003-09-20 01:05:35 +00:00
parent 693794552c
commit 1f0c274e82
3 changed files with 43 additions and 57 deletions

View File

@ -17,7 +17,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
*/ */
#ifdef HAVE_CVS_IDENT #ifdef HAVE_CVS_IDENT
#ident "$Id: elaborate.cc,v 1.288 2003/09/13 01:01:51 steve Exp $" #ident "$Id: elaborate.cc,v 1.289 2003/09/20 01:05:35 steve Exp $"
#endif #endif
# include "config.h" # include "config.h"
@ -1811,22 +1811,6 @@ NetProc* PEventStatement::elaborate_st(Design*des, NetScope*scope,
{ {
assert(scope); assert(scope);
/* Handle the special case of an event name as an identifier
in an expression. Make a named event reference. */
if (expr_.count() == 1) {
assert(expr_[0]->expr());
PEIdent*id = dynamic_cast<PEIdent*>(expr_[0]->expr());
NetEvent*ev;
if (id && (ev = des->find_event(scope, id->path()))) {
NetEvWait*pr = new NetEvWait(enet);
pr->add_event(ev);
pr->set_line(*this);
return pr;
}
}
/* Create a single NetEvent and NetEvWait. Then, create a /* Create a single NetEvent and NetEvWait. Then, create a
NetEvProbe for each conjunctive event in the event NetEvProbe for each conjunctive event in the event
list. The NetEvProbe objects all refer back to the NetEvent list. The NetEvProbe objects all refer back to the NetEvent
@ -1879,13 +1863,22 @@ NetProc* PEventStatement::elaborate_st(Design*des, NetScope*scope,
skip the rest of the expression handling. */ skip the rest of the expression handling. */
if (PEIdent*id = dynamic_cast<PEIdent*>(expr_[idx]->expr())) { if (PEIdent*id = dynamic_cast<PEIdent*>(expr_[idx]->expr())) {
NetEvent*tmp = des->find_event(scope, id->path()); NetNet* sig = 0;
if (tmp) { NetMemory* mem = 0;
wa->add_event(tmp); NetVariable* var = 0;
const NetExpr*par = 0;
NetEvent* eve = 0;
NetScope*found_in = symbol_search(des, scope, id->path(),
sig, mem, var, par, eve);
if (found_in && eve) {
wa->add_event(eve);
continue; continue;
} }
} }
/* So now we have a normal event expression. Elaborate /* So now we have a normal event expression. Elaborate
the sub-expression as a net and decide how to handle the sub-expression as a net and decide how to handle
the edge. */ the edge. */
@ -2361,15 +2354,30 @@ NetProc* PTrigger::elaborate(Design*des, NetScope*scope) const
{ {
assert(scope); assert(scope);
NetEvent*ev = des->find_event(scope, event_); NetNet* sig = 0;
if (ev == 0) { NetMemory* mem = 0;
NetVariable* var = 0;
const NetExpr*par = 0;
NetEvent* eve = 0;
NetScope*found_in = symbol_search(des, scope, event_,
sig, mem, var, par, eve);
if (found_in == 0) {
cerr << get_line() << ": error: event <" << event_ << ">" cerr << get_line() << ": error: event <" << event_ << ">"
<< " not found." << endl; << " not found." << endl;
des->errors += 1; des->errors += 1;
return 0; return 0;
} }
NetEvTrig*trig = new NetEvTrig(ev); if (eve == 0) {
cerr << get_line() << ": error: <" << event_ << ">"
<< " is not a named event." << endl;
des->errors += 1;
return 0;
}
NetEvTrig*trig = new NetEvTrig(eve);
trig->set_line(*this); trig->set_line(*this);
return trig; return trig;
} }
@ -2615,6 +2623,9 @@ Design* elaborate(list<const char*>roots)
/* /*
* $Log: elaborate.cc,v $ * $Log: elaborate.cc,v $
* Revision 1.289 2003/09/20 01:05:35 steve
* Obsolete find_symbol and find_event from the Design class.
*
* Revision 1.288 2003/09/13 01:01:51 steve * Revision 1.288 2003/09/13 01:01:51 steve
* Spelling fixes. * Spelling fixes.
* *

View File

@ -17,7 +17,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
*/ */
#ifdef HAVE_CVS_IDENT #ifdef HAVE_CVS_IDENT
#ident "$Id: net_design.cc,v 1.40 2003/09/19 03:50:12 steve Exp $" #ident "$Id: net_design.cc,v 1.41 2003/09/20 01:05:36 steve Exp $"
#endif #endif
# include "config.h" # include "config.h"
@ -540,29 +540,6 @@ NetScope* Design::find_task(const hname_t&key)
return 0; return 0;
} }
NetEvent* Design::find_event(NetScope*scope, const hname_t&p)
{
hname_t path = p;
assert(scope);
char*key = path.remove_tail_name();
if (path.peek_name(0))
scope = find_scope(scope, path);
while (scope) {
if (NetEvent*ev = scope->find_event(key)) {
delete key;
return ev;
}
if (scope->type() == NetScope::MODULE)
break;
scope = scope->parent();
}
delete key;
return 0;
}
void Design::add_node(NetNode*net) void Design::add_node(NetNode*net)
@ -640,6 +617,9 @@ void Design::delete_process(NetProcTop*top)
/* /*
* $Log: net_design.cc,v $ * $Log: net_design.cc,v $
* Revision 1.41 2003/09/20 01:05:36 steve
* Obsolete find_symbol and find_event from the Design class.
*
* Revision 1.40 2003/09/19 03:50:12 steve * Revision 1.40 2003/09/19 03:50:12 steve
* Remove find_memory method from Design class. * Remove find_memory method from Design class.
* *

View File

@ -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
*/ */
#ifdef HAVE_CVS_IDENT #ifdef HAVE_CVS_IDENT
#ident "$Id: netlist.h,v 1.301 2003/09/19 03:50:12 steve Exp $" #ident "$Id: netlist.h,v 1.302 2003/09/20 01:05:36 steve Exp $"
#endif #endif
/* /*
@ -1747,7 +1747,7 @@ class NetDisable : public NetProc {
* The NetEvWait class represents a thread wait for an event. When * The NetEvWait class represents a thread wait for an event. When
* this statement is executed, it starts waiting on the * this statement is executed, it starts waiting on the
* event. Conceptually, it puts itself on the event list for the * event. Conceptually, it puts itself on the event list for the
* referenced event. When the event is triggered, the wit ends its * referenced event. When the event is triggered, the wait ends its
* block and starts the associated statement. * block and starts the associated statement.
* *
* The NetEvTrig class represents trigger statements. Executing this * The NetEvTrig class represents trigger statements. Executing this
@ -3214,11 +3214,6 @@ class Design {
NetNet*find_signal(NetScope*scope, hname_t path); NetNet*find_signal(NetScope*scope, hname_t path);
/* This is a more general lookup that finds the named signal
or memory, whichever is first in the search path. */
void find_symbol(NetScope*,const string&key,
NetNet*&sig, NetMemory*&mem);
// Functions // Functions
NetFuncDef* find_function(NetScope*scope, const hname_t&key); NetFuncDef* find_function(NetScope*scope, const hname_t&key);
NetFuncDef* find_function(const hname_t&path); NetFuncDef* find_function(const hname_t&path);
@ -3227,9 +3222,6 @@ class Design {
NetScope* find_task(NetScope*scope, const hname_t&name); NetScope* find_task(NetScope*scope, const hname_t&name);
NetScope* find_task(const hname_t&key); NetScope* find_task(const hname_t&key);
// Events
NetEvent* find_event(NetScope*scope, const hname_t&path);
// NODES // NODES
void add_node(NetNode*); void add_node(NetNode*);
void del_node(NetNode*); void del_node(NetNode*);
@ -3316,6 +3308,9 @@ extern ostream& operator << (ostream&, NetNet::Type);
/* /*
* $Log: netlist.h,v $ * $Log: netlist.h,v $
* Revision 1.302 2003/09/20 01:05:36 steve
* Obsolete find_symbol and find_event from the Design class.
*
* Revision 1.301 2003/09/19 03:50:12 steve * Revision 1.301 2003/09/19 03:50:12 steve
* Remove find_memory method from Design class. * Remove find_memory method from Design class.
* *