10 #ifndef _EMBEDDED_RPC__UNIONTYPE_H_ 11 #define _EMBEDDED_RPC__UNIONTYPE_H_ 14 #include "StructType.h" 15 #include "UnionCase.h" 41 UnionType(
const std::string &name,
const std::string &discriminatorName)
42 :
DataType(name, kUnionType, kUnionTypeSymbol)
43 , m_discriminator(discriminatorName)
44 , m_members(
"(union)")
45 , m_parentStruct(nullptr)
59 :
DataType(tok, kUnionType, kUnionTypeSymbol)
60 , m_discriminator(discriminatorName)
61 , m_members(
"(union)")
62 , m_parentStruct(nullptr)
174 std::string m_discriminator;
175 case_vector_t m_unionCases;
193 #endif // _EMBEDDED_RPC__UNIONTYPE_H_ case_vector_t getUniqueCases()
This function returns unique union cases vector.
Definition: Type.cpp:592
virtual bool isUnion() const
This function return "true" value for identify union type.
Definition: UnionType.h:103
Member of a struct.
Definition: StructMember.h:37
void printUnionMembers()
This function prints information about union members.
Definition: Type.cpp:667
std::vector< UnionCase * > case_vector_t
Definition: UnionType.h:30
StructMember * getUnionMemberDeclaration(const std::string &name)
This function returns union member declaration.
Definition: Type.cpp:655
Discriminated union case type.
Definition: UnionCase.h:26
Structure data type.
Definition: StructType.h:28
void setParentStruct(StructType *parent)
Sets the struct owning this union.
Definition: UnionType.h:74
void addCase(UnionCase *unionCase)
This function will add union case to current union.
Definition: Type.cpp:576
virtual std::string getDescription() const
This function returns description about the union.
Definition: Type.cpp:582
StructType & getUnionMembers()
This function returns struct of union members.
Definition: UnionType.h:140
UnionType(const Token &tok, const std::string &discriminatorName)
Constructor.
Definition: UnionType.h:58
std::string getDiscriminatorName()
This function returns union discriminator name.
Definition: UnionType.h:156
Base class for data types.
Definition: DataType.h:25
Encapsulates all information about a token.
Definition: Token.h:60
UnionType(const std::string &name, const std::string &discriminatorName)
Constructor.
Definition: UnionType.h:41
bool isNonEncapsulatedUnion() const
This function return "true" value for identify non-encapsulated discriminated union type...
Definition: UnionType.h:111
Discriminated union data type.
Definition: UnionType.h:27
StructType * getParentStruct()
Returns the struct owning this union.
Definition: UnionType.h:69
bool addUnionMemberDeclaration(const std::string &name, DataType *dataType)
This function adds unique union member declaration.
Definition: Type.cpp:632
case_vector_t & getCases()
This function returns union cases vector.
Definition: UnionType.h:118
bool declarationExists(const std::string &name)
This function is looking for member declaration.
Definition: Type.cpp:643