Logo Search packages:      
Sourcecode: fauhdlc version File versions

ast::GCTypes::GenTypeElements Class Reference

#include <GCTypes.hpp>

Inheritance diagram for ast::GCTypes::GenTypeElements:

ast::NullVisitor ast::Visitor

List of all members.


Detailed Description

generate type elements of composite types.

This class can be used, to generate type elements for composite types.

Definition at line 49 of file GCTypes.hpp.


Public Member Functions

 GenTypeElements (bool addInitializer, const char *uErrMsg, const AstNode &errNode, const AstNode *constInitExp)
 c'tor
std::list< DiscreteRange * > getIndices (void) const
void reset (void)
virtual void visit (AttributeSpecification &node)
virtual void visit (AttributeDeclaration &node)
virtual void visit (TypeConversion &node)
virtual void visit (Subscript &node)
virtual void visit (ConstArray &node)
virtual void visit (ConstInteger &node)
virtual void visit (Slice &node)
virtual void visit (LibraryList &node)
virtual void visit (Library &node)
virtual void visit (EnumerationElement &node)
virtual void visit (Aggregate &node)
virtual void visit (RecordTypeElement &node)
virtual void visit (PhysicalTypeUnit &node)
virtual void visit (CondalSigAssign &node)
virtual void visit (SubprogBody &node)
virtual void visit (Process &node)
virtual void visit (PackageBody &node)
virtual void visit (Package &node)
virtual void visit (CompInstStat &node)
virtual void visit (ProcedureDeclaration &node)
virtual void visit (FunctionDeclaration &node)
virtual void visit (AssociationElement &node)
virtual void visit (Architecture &node)
virtual void visit (Others &node)
virtual void visit (CaseAlternative &node)
virtual void visit (CaseStat &node)
virtual void visit (DiscreteRange &node)
virtual void visit (VarDeclaration &node)
virtual void visit (AssertStat &node)
virtual void visit (ProcCallStat &node)
virtual void visit (ReturnStat &node)
virtual void visit (WaveFormElem &node)
virtual void visit (SigAssignStat &node)
virtual void visit (ExitStat &node)
virtual void visit (WaitStat &node)
virtual void visit (VarAssignStat &node)
virtual void visit (NextStat &node)
virtual void visit (WhileLoopStat &node)
virtual void visit (ForLoopStat &node)
virtual void visit (NullStat &node)
virtual void visit (IfStat &node)
virtual void visit (FunctionCall &node)
virtual void visit (ConstantDeclaration &node)
virtual void visit (SignalDeclaration &node)
virtual void visit (Entity &node)
virtual void visit (AttributeName &node)
virtual void visit (SelectedName &node)
virtual void visit (TemporaryName &node)
virtual void visit (SimpleName &node)
virtual void visit (ConstReal &node)
virtual void visit (ElementAssociation &node)
virtual void visit (PhysicalType &node)
virtual void visit (UnconstrainedArrayType &node)
virtual void visit (RecordType &node)
virtual void visit (SubtypeIndication &node)
virtual void visit (EnumerationType &node)
virtual void visit (RangeConstraintType &node)

Public Attributes

std::list
< intermediate::TypeElement * > 
composite
std::list< TypeDeclaration * > referredTypes

Protected Member Functions

template<typename T>
void listTraverse (T &l, bool &deleteFlag)
 traverse a list of AST nodes, eventually deleting a node.
template<typename T>
void listTraverse (T l)
 traverse a list of AST nodes.
virtual void process (AstNode &node)
 Process a generic AstNode.
virtual void process (AttributableDeclaration &node)
 Process a AttributableDeclaration.
virtual void process (Name &node)
 Process a generic Name.
virtual void process (PrefixedName &node)
 Process a generic PrefixedName.
virtual void process (TypeDeclaration &node)
 Process a generic TypeDeclaration.
virtual void process (LibUnit &node)
 Process a generic LibUnit.
virtual void process (Callable &node)
 Process a generic Callable.
virtual void process (ConditionedStat &node)
 Process a generic ConditionedStat.
virtual void process (LoopStat &node)
 Process a generic LoopStat.
virtual void process (SeqStat &node)
 Process a generic SeqStat.
virtual void process (Expression &node)
 Process a generic Expression.
virtual void process (SymbolDeclaration &node)
 Process a generic SymbolDeclaration.
virtual void process (ValDeclaration &node)
 Process a generic ValDeclaration.

Private Member Functions

universal_integer calcArrayBound (void) const
 calculate the upper bound of an array (if any)
template<typename T>
void processDR (DiscreteRange &node, TypeDeclaration *actualType)
template<typename T>
void processSI (SubtypeIndication &node)
void processSIArray (SubtypeIndication &node)

Static Private Member Functions

static std::string findName (const TypeDeclaration &node)
 find the name of a referenced array or record type.

Private Attributes

bool addInit
 add initializer to type elements?
const AstNodeconstInit
DiscreteRangeconstraint
 initializer constraint
const AstNodeerrorNode
std::list< DiscreteRange * > indexConstraint
 current set index constraints.
bool isForeign
bool mungeIndices
const char * uAErrMsg

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index