4 * Copyright (c) 2000 Stephen Williams (steve@icarus.com)
6 * This source code is free software; you can redistribute it
7 * and/or modify it in source code form under the terms of the GNU
8 * General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option)
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
22 #ident "$Id: Attrib.h,v 1.5 2004/02/20 18:53:33 steve Exp $"
25 # include "StringHeap.h"
29 * This class keeps a map of key/value pairs. The map can be set from
30 * an STL map, or by setting individual mappings.
38 const verinum
&attribute(perm_string key
) const;
39 void attribute(perm_string key
, const verinum
&value
);
40 bool has_compat_attributes(const Attrib
&that
) const;
43 /* Provide a means of iterating over the entries in the map. */
44 unsigned attr_cnt() const;
45 perm_string
attr_key(unsigned idx
) const;
46 const verinum
& attr_value(unsigned idx
) const;
58 private: // not implemented
59 Attrib(const Attrib
&);
60 Attrib
& operator= (const Attrib
&);
65 * Revision 1.5 2004/02/20 18:53:33 steve
66 * Addtrbute keys are perm_strings.
68 * Revision 1.4 2002/08/12 01:34:58 steve
69 * conditional ident string using autoconfig.
71 * Revision 1.3 2002/05/26 01:39:02 steve
72 * Carry Verilog 2001 attributes with processes,
73 * all the way through to the ivl_target API.
75 * Divide signal reference counts between rval
76 * and lval references.
78 * Revision 1.2 2002/05/23 03:08:50 steve
79 * Add language support for Verilog-2001 attribute
80 * syntax. Hook this support into existing $attribute
81 * handling, and add number and void value types.
83 * Add to the ivl_target API new functions for access
84 * of complex attributes attached to gates.
86 * Revision 1.1 2000/12/04 17:37:03 steve
87 * Add Attrib class for holding NetObj attributes.