Files
iverilog/PClass.h
T

50 lines
1.5 KiB
C++
Raw Normal View History

#ifndef IVL_PClass_H
#define IVL_PClass_H
2012-03-11 13:18:24 -07:00
/*
2025-10-20 22:45:05 -07:00
* Copyright (c) 2012-2025 Stephen Williams ([email protected])
2012-03-11 13:18:24 -07:00
*
* This source code is free software; you can redistribute it
* and/or modify it in source code form under the terms of the GNU
* General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
2012-08-28 18:41:23 -07:00
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
2012-03-11 13:18:24 -07:00
*/
# include "PScope.h"
# include "PNamedItem.h"
2012-03-11 13:18:24 -07:00
# include "StringHeap.h"
2012-11-11 17:42:31 -08:00
# include <iostream>
2012-03-11 13:18:24 -07:00
class PChainConstructor;
2012-03-11 13:18:24 -07:00
/*
* SystemVerilog supports class declarations with their own lexical
* scope, etc. The parser arranges for these to be created and
* collected.
*/
class PClass : public PScopeExtra, public PNamedItem {
2012-03-11 13:18:24 -07:00
public:
explicit PClass (perm_string name, LexicalScope*parent);
2025-10-20 22:45:05 -07:00
~PClass() override;
2012-03-11 13:18:24 -07:00
2012-11-11 17:42:31 -08:00
void dump(std::ostream&out, unsigned indent) const;
2025-10-20 22:45:05 -07:00
SymbolType symbol_type() const override;
public:
class_type_t*type;
2012-03-11 13:18:24 -07:00
};
#endif /* IVL_PClass_H */