Fix for assertion error when expanding macro.
[iverilog.git] / PEvent.h
blob71a1b66164a4dac5d4afc844e143e9bffa5e265a
1 #ifndef __PEvent_H
2 #define __PEvent_H
3 /*
4 * Copyright (c) 2000-2004 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)
10 * any later version.
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
21 #ifdef HAVE_CVS_IDENT
22 #ident "$Id: PEvent.h,v 1.9 2004/02/19 06:57:10 steve Exp $"
23 #endif
25 # include "LineInfo.h"
26 # include "StringHeap.h"
27 # include <string>
29 class Design;
30 class NetScope;
33 * The PEvent class represents event objects. These are things that
34 * are declared in Verilog as ``event foo;'' The name passed to the
35 * constructor is the "foo" part of the declaration.
37 class PEvent : public LineInfo {
39 public:
40 // The name is a perm-allocated string. It is the simple name
41 // of the event, without any scope.
42 explicit PEvent(perm_string name);
43 ~PEvent();
45 perm_string name() const;
47 void elaborate_scope(Design*des, NetScope*scope) const;
49 private:
50 perm_string name_;
52 private: // not implemented
53 PEvent(const PEvent&);
54 PEvent& operator= (const PEvent&);
58 * $Log: PEvent.h,v $
59 * Revision 1.9 2004/02/19 06:57:10 steve
60 * Memory and Event names use perm_string.
62 * Revision 1.8 2003/03/01 06:25:30 steve
63 * Add the lex_strings string handler, and put
64 * scope names and system task/function names
65 * into this table. Also, permallocate event
66 * names from the beginning.
68 * Revision 1.7 2003/01/30 16:23:07 steve
69 * Spelling fixes.
71 * Revision 1.6 2002/08/12 01:34:58 steve
72 * conditional ident string using autoconfig.
74 * Revision 1.5 2001/12/03 04:47:14 steve
75 * Parser and pform use hierarchical names as hname_t
76 * objects instead of encoded strings.
78 * Revision 1.4 2001/01/16 02:44:18 steve
79 * Use the iosfwd header if available.
81 * Revision 1.3 2000/04/09 17:44:30 steve
82 * Catch event declarations during scope elaborate.
84 * Revision 1.2 2000/04/04 03:20:15 steve
85 * Simulate named event trigger and waits.
87 * Revision 1.1 2000/04/01 19:31:57 steve
88 * Named events as far as the pform.
91 #endif