ICG 2
Electric Boogaloo
DataTypeVisitor.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 
5 // Abstract class for a DataTypeVisitor
6 
7 class DataType;
9 class ArrayDataType;
10 class PointerDataType;
11 class EnumDataType;
12 class StringDataType;
13 class PrimitiveDataType;
14 class SequenceDataType;
15 
21  public:
22  virtual bool visitPrimitiveDataType(std::shared_ptr<const PrimitiveDataType> node) = 0;
23  virtual bool visitEnumeratedType(std::shared_ptr<const EnumDataType> node) = 0;
24  virtual bool visitCompositeType(std::shared_ptr<const CompositeDataType> node) = 0;
25  virtual bool visitArrayType(std::shared_ptr<const ArrayDataType> node) = 0;
26  virtual bool visitPointerType(std::shared_ptr<const PointerDataType> node) = 0;
27  virtual bool visitStringType (std::shared_ptr<const StringDataType> node) = 0;
28  virtual bool visitSequenceType(std::shared_ptr<const SequenceDataType> node) = 0;
29 
30  virtual bool go(std::shared_ptr<const DataType> node);
31 };
Definition: ArrayDataType.hpp:13
Definition: CompositeDataType.hpp:16
Abstract base class for a DataTypeVisitor.
Definition: DataTypeVisitor.hpp:20
virtual bool visitCompositeType(std::shared_ptr< const CompositeDataType > node)=0
virtual bool visitPointerType(std::shared_ptr< const PointerDataType > node)=0
virtual bool visitEnumeratedType(std::shared_ptr< const EnumDataType > node)=0
virtual bool visitPrimitiveDataType(std::shared_ptr< const PrimitiveDataType > node)=0
virtual bool visitArrayType(std::shared_ptr< const ArrayDataType > node)=0
virtual bool go(std::shared_ptr< const DataType > node)
Definition: DataTypeVisitor.cpp:4
virtual bool visitSequenceType(std::shared_ptr< const SequenceDataType > node)=0
virtual bool visitStringType(std::shared_ptr< const StringDataType > node)=0
Abstract base class for DataTypes.
Definition: DataType.hpp:11
Enum represents an Enumerated data type.
Definition: EnumDataType.hpp:18
Definition: PointerDataType.hpp:12
Definition: PrimitiveDataType.hpp:12
Represents an STL sequence type - vector, list, deque, array.
Definition: SequenceDataType.hpp:15
Definition: StringDataType.hpp:12