More identifier lists use perm_strings.
This commit is contained in:
parent
55ba131997
commit
e7fa56981a
9
Module.h
9
Module.h
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: Module.h,v 1.35 2004/02/20 18:53:33 steve Exp $"
|
||||
#ident "$Id: Module.h,v 1.36 2004/05/25 19:21:06 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include <list>
|
||||
|
|
@ -84,7 +84,7 @@ class Module : public LineInfo {
|
|||
/* specparams are simpler then other params, in that they have
|
||||
no type information. They are merely constant
|
||||
expressions. */
|
||||
map<string,PExpr*>specparams;
|
||||
map<perm_string,PExpr*>specparams;
|
||||
|
||||
/* The module also has defparam assignments which don't create
|
||||
new parameters within the module, but may be used to set
|
||||
|
|
@ -105,7 +105,7 @@ class Module : public LineInfo {
|
|||
svector<port_t*> ports;
|
||||
|
||||
/* Keep a table of named events declared in the module. */
|
||||
map<string,PEvent*>events;
|
||||
map<perm_string,PEvent*>events;
|
||||
|
||||
/* Keep a table of datum variables declared in the module. */
|
||||
map<hname_t,PData*>datum;
|
||||
|
|
@ -166,6 +166,9 @@ class Module : public LineInfo {
|
|||
|
||||
/*
|
||||
* $Log: Module.h,v $
|
||||
* Revision 1.36 2004/05/25 19:21:06 steve
|
||||
* More identifier lists use perm_strings.
|
||||
*
|
||||
* Revision 1.35 2004/02/20 18:53:33 steve
|
||||
* Addtrbute keys are perm_strings.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: elab_scope.cc,v 1.30 2004/02/20 06:22:56 steve Exp $"
|
||||
#ident "$Id: elab_scope.cc,v 1.31 2004/05/25 19:21:06 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -226,7 +226,7 @@ bool Module::elaborate_scope(Design*des, NetScope*scope) const
|
|||
// elaboration, so do it now. This allows for normal
|
||||
// elaboration to reference these events.
|
||||
|
||||
for (map<string,PEvent*>::const_iterator et = events.begin()
|
||||
for (map<perm_string,PEvent*>::const_iterator et = events.begin()
|
||||
; et != events.end() ; et ++ ) {
|
||||
|
||||
(*et).second->elaborate_scope(des, scope);
|
||||
|
|
@ -549,6 +549,9 @@ void PWhile::elaborate_scope(Design*des, NetScope*scope) const
|
|||
|
||||
/*
|
||||
* $Log: elab_scope.cc,v $
|
||||
* Revision 1.31 2004/05/25 19:21:06 steve
|
||||
* More identifier lists use perm_strings.
|
||||
*
|
||||
* Revision 1.30 2004/02/20 06:22:56 steve
|
||||
* parameter keys are per_strings.
|
||||
*
|
||||
|
|
|
|||
49
parse.y
49
parse.y
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: parse.y,v 1.194 2004/05/25 03:42:44 steve Exp $"
|
||||
#ident "$Id: parse.y,v 1.195 2004/05/25 19:21:06 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -77,7 +77,6 @@ const static struct str_pair_t str_strength = { PGate::STRONG, PGate::STRONG };
|
|||
/* text items are C strings allocated by the lexor using
|
||||
strdup. They can be put into lists with the texts type. */
|
||||
char*text;
|
||||
list<char*>*texts;
|
||||
list<perm_string>*perm_strings;
|
||||
|
||||
hname_t*hier;
|
||||
|
|
@ -169,7 +168,7 @@ const static struct str_pair_t str_strength = { PGate::STRONG, PGate::STRONG };
|
|||
|
||||
%type <hier> identifier
|
||||
%type <text> register_variable
|
||||
%type <texts> register_variable_list list_of_identifiers
|
||||
%type <perm_strings> register_variable_list list_of_identifiers
|
||||
|
||||
%type <net_decl_assign> net_decl_assign net_decl_assigns
|
||||
|
||||
|
|
@ -215,7 +214,7 @@ const static struct str_pair_t str_strength = { PGate::STRONG, PGate::STRONG };
|
|||
%type <range_delay> range_delay
|
||||
|
||||
%type <letter> spec_polarity
|
||||
%type <texts> specify_path_identifiers
|
||||
%type <perm_strings> specify_path_identifiers
|
||||
|
||||
%token K_TAND
|
||||
%right '?' ':'
|
||||
|
|
@ -1171,14 +1170,16 @@ identifier
|
|||
non-hierarchical names separated by ',' characters. */
|
||||
list_of_identifiers
|
||||
: IDENTIFIER
|
||||
{ list<char*>*tmp = new list<char*>;
|
||||
tmp->push_back($1);
|
||||
{ list<perm_string>*tmp = new list<perm_string>;
|
||||
tmp->push_back(lex_strings.make($1));
|
||||
$$ = tmp;
|
||||
delete[]$1;
|
||||
}
|
||||
| list_of_identifiers ',' IDENTIFIER
|
||||
{ list<char*>*tmp = $1;
|
||||
tmp->push_back($3);
|
||||
{ list<perm_string>*tmp = $1;
|
||||
tmp->push_back(lex_strings.make($3));
|
||||
$$ = tmp;
|
||||
delete[]$3;
|
||||
}
|
||||
;
|
||||
|
||||
|
|
@ -2197,14 +2198,16 @@ register_variable
|
|||
|
||||
register_variable_list
|
||||
: register_variable
|
||||
{ list<char*>*tmp = new list<char*>;
|
||||
tmp->push_back($1);
|
||||
{ list<perm_string>*tmp = new list<perm_string>;
|
||||
tmp->push_back(lex_strings.make($1));
|
||||
$$ = tmp;
|
||||
delete[]$1;
|
||||
}
|
||||
| register_variable_list ',' register_variable
|
||||
{ list<char*>*tmp = $1;
|
||||
tmp->push_back($3);
|
||||
{ list<perm_string>*tmp = $1;
|
||||
tmp->push_back(lex_strings.make($3));
|
||||
$$ = tmp;
|
||||
delete[]$3;
|
||||
}
|
||||
;
|
||||
|
||||
|
|
@ -2314,24 +2317,28 @@ specify_simple_path
|
|||
|
||||
specify_path_identifiers
|
||||
: IDENTIFIER
|
||||
{ list<char*>*tmp = new list<char*>;
|
||||
tmp->push_back($1);
|
||||
{ list<perm_string>*tmp = new list<perm_string>;
|
||||
tmp->push_back(lex_strings.make($1));
|
||||
$$ = tmp;
|
||||
delete[]$1;
|
||||
}
|
||||
| IDENTIFIER '[' expr_primary ']'
|
||||
{ list<char*>*tmp = new list<char*>;
|
||||
tmp->push_back($1);
|
||||
{ list<perm_string>*tmp = new list<perm_string>;
|
||||
tmp->push_back(lex_strings.make($1));
|
||||
$$ = tmp;
|
||||
delete[]$1;
|
||||
}
|
||||
| specify_path_identifiers ',' IDENTIFIER
|
||||
{ list<char*>*tmp = $1;
|
||||
tmp->push_back($3);
|
||||
{ list<perm_string>*tmp = $1;
|
||||
tmp->push_back(lex_strings.make($3));
|
||||
$$ = tmp;
|
||||
delete[]$3;
|
||||
}
|
||||
| specify_path_identifiers ',' IDENTIFIER '[' expr_primary ']'
|
||||
{ list<char*>*tmp = $1;
|
||||
tmp->push_back($3);
|
||||
{ list<perm_string>*tmp = $1;
|
||||
tmp->push_back(lex_strings.make($3));
|
||||
$$ = tmp;
|
||||
delete[]$3;
|
||||
}
|
||||
;
|
||||
|
||||
|
|
@ -2344,7 +2351,7 @@ specparam
|
|||
delete tmp;
|
||||
tmp = 0;
|
||||
} else {
|
||||
pform_set_specparam($1, tmp);
|
||||
pform_set_specparam(lex_strings.make($1), tmp);
|
||||
}
|
||||
delete $1;
|
||||
}
|
||||
|
|
|
|||
88
pform.cc
88
pform.cc
|
|
@ -17,7 +17,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: pform.cc,v 1.124 2004/03/08 00:10:30 steve Exp $"
|
||||
#ident "$Id: pform.cc,v 1.125 2004/05/25 19:21:07 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -668,7 +668,7 @@ void pform_make_udp(perm_string name, bool synchronous_flag,
|
|||
* only called by the parser within the scope of the net declaration,
|
||||
* and the name that I receive only has the tail component.
|
||||
*/
|
||||
static void pform_set_net_range(const char*name,
|
||||
static void pform_set_net_range(const char* name,
|
||||
const svector<PExpr*>*range,
|
||||
bool signed_flag)
|
||||
{
|
||||
|
|
@ -693,18 +693,17 @@ static void pform_set_net_range(const char*name,
|
|||
cur->set_signed(signed_flag);
|
||||
}
|
||||
|
||||
void pform_set_net_range(list<char*>*names,
|
||||
void pform_set_net_range(list<perm_string>*names,
|
||||
svector<PExpr*>*range,
|
||||
bool signed_flag)
|
||||
{
|
||||
assert((range == 0) || (range->count() == 2));
|
||||
|
||||
for (list<char*>::iterator cur = names->begin()
|
||||
for (list<perm_string>::iterator cur = names->begin()
|
||||
; cur != names->end()
|
||||
; cur ++ ) {
|
||||
char*txt = *cur;
|
||||
perm_string txt = *cur;
|
||||
pform_set_net_range(txt, range, signed_flag);
|
||||
free(txt);
|
||||
}
|
||||
|
||||
delete names;
|
||||
|
|
@ -716,27 +715,26 @@ void pform_set_net_range(list<char*>*names,
|
|||
* This is invoked to make a named event. This is the declaration of
|
||||
* the event, and not necessarily the use of it.
|
||||
*/
|
||||
static void pform_make_event(const char*name, const char*fn, unsigned ln)
|
||||
static void pform_make_event(perm_string name, const char*fn, unsigned ln)
|
||||
{
|
||||
PEvent*event = new PEvent(lex_strings.make(name));
|
||||
PEvent*event = new PEvent(name);
|
||||
event->set_file(fn);
|
||||
event->set_lineno(ln);
|
||||
pform_cur_module->events[name] = event;
|
||||
}
|
||||
|
||||
void pform_make_events(list<char*>*names, const char*fn, unsigned ln)
|
||||
void pform_make_events(list<perm_string>*names, const char*fn, unsigned ln)
|
||||
{
|
||||
list<char*>::iterator cur;
|
||||
list<perm_string>::iterator cur;
|
||||
for (cur = names->begin() ; cur != names->end() ; cur++) {
|
||||
char*txt = *cur;
|
||||
perm_string txt = *cur;
|
||||
pform_make_event(txt, fn, ln);
|
||||
free(txt);
|
||||
}
|
||||
|
||||
delete names;
|
||||
}
|
||||
|
||||
static void pform_make_datum(const char*name, const char*fn, unsigned ln)
|
||||
static void pform_make_datum(perm_string name, const char*fn, unsigned ln)
|
||||
{
|
||||
hname_t hname = hier_name(name);
|
||||
PData*datum = new PData(hname);
|
||||
|
|
@ -745,13 +743,12 @@ static void pform_make_datum(const char*name, const char*fn, unsigned ln)
|
|||
pform_cur_module->datum[hname] = datum;
|
||||
}
|
||||
|
||||
void pform_make_reals(list<char*>*names, const char*fn, unsigned ln)
|
||||
void pform_make_reals(list<perm_string>*names, const char*fn, unsigned ln)
|
||||
{
|
||||
list<char*>::iterator cur;
|
||||
list<perm_string>::iterator cur;
|
||||
for (cur = names->begin() ; cur != names->end() ; cur++) {
|
||||
char*txt = *cur;
|
||||
perm_string txt = *cur;
|
||||
pform_make_datum(txt, fn, ln);
|
||||
free(txt);
|
||||
}
|
||||
|
||||
delete names;
|
||||
|
|
@ -1131,18 +1128,17 @@ void pform_makewire(const vlltype&li, const char*nm,
|
|||
void pform_makewire(const vlltype&li,
|
||||
svector<PExpr*>*range,
|
||||
bool signed_flag,
|
||||
list<char*>*names,
|
||||
list<perm_string>*names,
|
||||
NetNet::Type type,
|
||||
NetNet::PortType pt,
|
||||
svector<named_pexpr_t*>*attr)
|
||||
{
|
||||
for (list<char*>::iterator cur = names->begin()
|
||||
for (list<perm_string>::iterator cur = names->begin()
|
||||
; cur != names->end()
|
||||
; cur ++ ) {
|
||||
char*txt = *cur;
|
||||
perm_string txt = *cur;
|
||||
pform_makewire(li, txt, type, pt, attr);
|
||||
pform_set_net_range(txt, range, signed_flag);
|
||||
free(txt);
|
||||
}
|
||||
|
||||
delete names;
|
||||
|
|
@ -1182,7 +1178,7 @@ void pform_makewire(const vlltype&li,
|
|||
}
|
||||
}
|
||||
|
||||
void pform_set_port_type(const char*nm, NetNet::PortType pt,
|
||||
void pform_set_port_type(perm_string nm, NetNet::PortType pt,
|
||||
const char*file, unsigned lineno)
|
||||
{
|
||||
hname_t name = hier_name(nm);
|
||||
|
|
@ -1259,16 +1255,16 @@ void pform_set_port_type(const char*nm, NetNet::PortType pt,
|
|||
svector<PWire*>*pform_make_task_ports(NetNet::PortType pt,
|
||||
bool signed_flag,
|
||||
svector<PExpr*>*range,
|
||||
list<char*>*names,
|
||||
list<perm_string>*names,
|
||||
const char* file,
|
||||
unsigned lineno)
|
||||
{
|
||||
assert(names);
|
||||
svector<PWire*>*res = new svector<PWire*>(0);
|
||||
for (list<char*>::iterator cur = names->begin()
|
||||
for (list<perm_string>::iterator cur = names->begin()
|
||||
; cur != names->end() ; cur ++ ) {
|
||||
|
||||
char*txt = *cur;
|
||||
perm_string txt = *cur;
|
||||
hname_t name = hier_name(txt);
|
||||
|
||||
/* Look for a preexisting wire. If it exists, set the
|
||||
|
|
@ -1291,7 +1287,6 @@ svector<PWire*>*pform_make_task_ports(NetNet::PortType pt,
|
|||
|
||||
svector<PWire*>*tmp = new svector<PWire*>(*res, curw);
|
||||
|
||||
free(txt);
|
||||
delete res;
|
||||
res = tmp;
|
||||
}
|
||||
|
|
@ -1424,7 +1419,7 @@ void pform_set_localparam(perm_string name, PExpr*expr)
|
|||
pform_cur_module->localparams[name].signed_flag = false;
|
||||
}
|
||||
|
||||
void pform_set_specparam(const string&name, PExpr*expr)
|
||||
void pform_set_specparam(perm_string name, PExpr*expr)
|
||||
{
|
||||
assert(expr);
|
||||
pform_cur_module->specparams[name] = expr;
|
||||
|
|
@ -1439,27 +1434,26 @@ void pform_set_defparam(const hname_t&name, PExpr*expr)
|
|||
/*
|
||||
* XXXX Not implemented yet.
|
||||
*/
|
||||
extern void pform_make_specify_path(list<char*>*src, char pol,
|
||||
bool full_flag, list<char*>*dst)
|
||||
extern void pform_make_specify_path(list<perm_string>*src, char pol,
|
||||
bool full_flag, list<perm_string>*dst)
|
||||
{
|
||||
delete src;
|
||||
delete dst;
|
||||
}
|
||||
|
||||
void pform_set_port_type(const struct vlltype&li,
|
||||
list<char*>*names,
|
||||
list<perm_string>*names,
|
||||
svector<PExpr*>*range,
|
||||
bool signed_flag,
|
||||
NetNet::PortType pt)
|
||||
{
|
||||
for (list<char*>::iterator cur = names->begin()
|
||||
for (list<perm_string>::iterator cur = names->begin()
|
||||
; cur != names->end()
|
||||
; cur ++ ) {
|
||||
char*txt = *cur;
|
||||
perm_string txt = *cur;
|
||||
pform_set_port_type(txt, pt, li.text, li.first_line);
|
||||
if (range)
|
||||
pform_set_net_range(txt, range, signed_flag);
|
||||
free(txt);
|
||||
}
|
||||
|
||||
delete names;
|
||||
|
|
@ -1487,14 +1481,13 @@ static void pform_set_reg_integer(const char*nm)
|
|||
cur->set_signed(true);
|
||||
}
|
||||
|
||||
void pform_set_reg_integer(list<char*>*names)
|
||||
void pform_set_reg_integer(list<perm_string>*names)
|
||||
{
|
||||
for (list<char*>::iterator cur = names->begin()
|
||||
for (list<perm_string>::iterator cur = names->begin()
|
||||
; cur != names->end()
|
||||
; cur ++ ) {
|
||||
char*txt = *cur;
|
||||
perm_string txt = *cur;
|
||||
pform_set_reg_integer(txt);
|
||||
free(txt);
|
||||
}
|
||||
delete names;
|
||||
}
|
||||
|
|
@ -1516,31 +1509,31 @@ static void pform_set_reg_time(const char*nm)
|
|||
new PENumber(new verinum(0UL, INTEGER_WIDTH)));
|
||||
}
|
||||
|
||||
void pform_set_reg_time(list<char*>*names)
|
||||
void pform_set_reg_time(list<perm_string>*names)
|
||||
{
|
||||
for (list<char*>::iterator cur = names->begin()
|
||||
for (list<perm_string>::iterator cur = names->begin()
|
||||
; cur != names->end()
|
||||
; cur ++ ) {
|
||||
char*txt = *cur;
|
||||
perm_string txt = *cur;
|
||||
pform_set_reg_time(txt);
|
||||
free(txt);
|
||||
}
|
||||
delete names;
|
||||
}
|
||||
|
||||
svector<PWire*>* pform_make_udp_input_ports(list<char*>*names)
|
||||
svector<PWire*>* pform_make_udp_input_ports(list<perm_string>*names)
|
||||
{
|
||||
svector<PWire*>*out = new svector<PWire*>(names->size());
|
||||
|
||||
unsigned idx = 0;
|
||||
for (list<char*>::iterator cur = names->begin()
|
||||
for (list<perm_string>::iterator cur = names->begin()
|
||||
; cur != names->end()
|
||||
; cur ++ ) {
|
||||
char*txt = *cur;
|
||||
PWire*pp = new PWire(txt, NetNet::IMPLICIT, NetNet::PINPUT);
|
||||
perm_string txt = *cur;
|
||||
PWire*pp = new PWire(hname_t(txt),
|
||||
NetNet::IMPLICIT,
|
||||
NetNet::PINPUT);
|
||||
(*out)[idx] = pp;
|
||||
idx += 1;
|
||||
free(txt);
|
||||
}
|
||||
|
||||
delete names;
|
||||
|
|
@ -1605,6 +1598,9 @@ int pform_parse(const char*path, FILE*file)
|
|||
|
||||
/*
|
||||
* $Log: pform.cc,v $
|
||||
* Revision 1.125 2004/05/25 19:21:07 steve
|
||||
* More identifier lists use perm_strings.
|
||||
*
|
||||
* Revision 1.124 2004/03/08 00:10:30 steve
|
||||
* Verilog2001 new style port declartions for primitives.
|
||||
*
|
||||
|
|
|
|||
32
pform.h
32
pform.h
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: pform.h,v 1.77 2004/03/08 00:10:30 steve Exp $"
|
||||
#ident "$Id: pform.h,v 1.78 2004/05/25 19:21:07 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "netlist.h"
|
||||
|
|
@ -172,7 +172,7 @@ extern void pform_makewire(const struct vlltype&li, const char*name,
|
|||
extern void pform_makewire(const struct vlltype&li,
|
||||
svector<PExpr*>*range,
|
||||
bool signed_flag,
|
||||
list<char*>*names,
|
||||
list<perm_string>*names,
|
||||
NetNet::Type type,
|
||||
NetNet::PortType,
|
||||
svector<named_pexpr_t*>*attr);
|
||||
|
|
@ -190,17 +190,18 @@ extern void pform_make_reginit(const struct vlltype&li,
|
|||
i.e. input, output or inout. If the wire does not exist, create
|
||||
it. The second form takes a single name. */
|
||||
extern void pform_set_port_type(const struct vlltype&li,
|
||||
list<char*>*names,
|
||||
list<perm_string>*names,
|
||||
svector<PExpr*>*range,
|
||||
bool signed_flag,
|
||||
NetNet::PortType);
|
||||
extern void pform_set_port_type(const char*nm, NetNet::PortType pt,
|
||||
extern void pform_set_port_type(perm_string nm, NetNet::PortType pt,
|
||||
const char*file, unsigned lineno);
|
||||
|
||||
extern void pform_set_net_range(list<char*>*names, svector<PExpr*>*, bool);
|
||||
extern void pform_set_net_range(list<perm_string>*names,
|
||||
svector<PExpr*>*, bool);
|
||||
extern void pform_set_reg_idx(const char*name, PExpr*l, PExpr*r);
|
||||
extern void pform_set_reg_integer(list<char*>*names);
|
||||
extern void pform_set_reg_time(list<char*>*names);
|
||||
extern void pform_set_reg_integer(list<perm_string>*names);
|
||||
extern void pform_set_reg_time(list<perm_string>*names);
|
||||
extern void pform_set_task(perm_string name, PTask*);
|
||||
extern void pform_set_function(const char*, NetNet::Type,
|
||||
svector<PExpr*>*, PFunction*);
|
||||
|
|
@ -224,9 +225,9 @@ extern void pform_set_defparam(const hname_t&name, PExpr*expr);
|
|||
/*
|
||||
* Functions related to specify blocks.
|
||||
*/
|
||||
extern void pform_set_specparam(const string&name, PExpr*expr);
|
||||
extern void pform_make_specify_path(list<char*>*src, char pol,
|
||||
bool full_flag, list<char*>*dst);
|
||||
extern void pform_set_specparam(perm_string name, PExpr*expr);
|
||||
extern void pform_make_specify_path(list<perm_string>*src, char pol,
|
||||
bool full_flag, list<perm_string>*dst);
|
||||
|
||||
/*
|
||||
* pform_make_behavior creates processes that are declared with always
|
||||
|
|
@ -235,16 +236,16 @@ extern void pform_make_specify_path(list<char*>*src, char pol,
|
|||
extern PProcess* pform_make_behavior(PProcess::Type, Statement*,
|
||||
svector<named_pexpr_t*>*attr);
|
||||
|
||||
extern svector<PWire*>* pform_make_udp_input_ports(list<char*>*);
|
||||
extern svector<PWire*>* pform_make_udp_input_ports(list<perm_string>*);
|
||||
|
||||
extern bool pform_expression_is_constant(const PExpr*);
|
||||
|
||||
extern void pform_make_events(list<char*>*names,
|
||||
extern void pform_make_events(list<perm_string>*names,
|
||||
const char*file, unsigned lineno);
|
||||
/*
|
||||
* Make real datum objects.
|
||||
*/
|
||||
extern void pform_make_reals(list<char*>*names,
|
||||
extern void pform_make_reals(list<perm_string>*names,
|
||||
const char*file, unsigned lineno);
|
||||
|
||||
/*
|
||||
|
|
@ -275,7 +276,7 @@ extern void pform_make_pgassign_list(svector<PExpr*>*alist,
|
|||
extern svector<PWire*>*pform_make_task_ports(NetNet::PortType pt,
|
||||
bool signed_flag,
|
||||
svector<PExpr*>*range,
|
||||
list<char*>*names,
|
||||
list<perm_string>*names,
|
||||
const char* file,
|
||||
unsigned lineno);
|
||||
|
||||
|
|
@ -290,6 +291,9 @@ extern void pform_dump(ostream&out, Module*mod);
|
|||
|
||||
/*
|
||||
* $Log: pform.h,v $
|
||||
* Revision 1.78 2004/05/25 19:21:07 steve
|
||||
* More identifier lists use perm_strings.
|
||||
*
|
||||
* Revision 1.77 2004/03/08 00:10:30 steve
|
||||
* Verilog2001 new style port declartions for primitives.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: pform_dump.cc,v 1.85 2004/02/20 18:53:35 steve Exp $"
|
||||
#ident "$Id: pform_dump.cc,v 1.86 2004/05/25 19:21:07 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -756,7 +756,7 @@ void Module::dump(ostream&out) const
|
|||
out << "/* ERROR */;" << endl;
|
||||
}
|
||||
|
||||
typedef map<string,PExpr*>::const_iterator specparm_iter_t;
|
||||
typedef map<perm_string,PExpr*>::const_iterator specparm_iter_t;
|
||||
for (specparm_iter_t cur = specparams.begin()
|
||||
; cur != specparams.end() ; cur ++) {
|
||||
out << " specparam " << (*cur).first << " = "
|
||||
|
|
@ -772,7 +772,7 @@ void Module::dump(ostream&out) const
|
|||
out << "/* ERROR */;" << endl;
|
||||
}
|
||||
|
||||
for (map<string,PEvent*>::const_iterator cur = events.begin()
|
||||
for (map<perm_string,PEvent*>::const_iterator cur = events.begin()
|
||||
; cur != events.end() ; cur ++ ) {
|
||||
PEvent*ev = (*cur).second;
|
||||
out << " event " << ev->name() << "; // "
|
||||
|
|
@ -881,6 +881,9 @@ void PUdp::dump(ostream&out) const
|
|||
|
||||
/*
|
||||
* $Log: pform_dump.cc,v $
|
||||
* Revision 1.86 2004/05/25 19:21:07 steve
|
||||
* More identifier lists use perm_strings.
|
||||
*
|
||||
* Revision 1.85 2004/02/20 18:53:35 steve
|
||||
* Addtrbute keys are perm_strings.
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue