ICG 2
Electric Boogaloo
GetValue.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 #include "Value/Value.hpp"
6 
7 #include <vector>
8 #include <stack>
9 
10 
11 namespace GetValue {
12 
13  typedef Value* Result;
14 
16 
17  public:
18  GetValueVisitor(void * address);
19 
20  // Visitor Interface
21 
22  virtual bool visitPrimitiveDataType(std::shared_ptr<const PrimitiveDataType> node) override;
23  virtual bool visitCompositeType(std::shared_ptr<const CompositeDataType> node) override;
24  virtual bool visitArrayType(std::shared_ptr<const ArrayDataType> node) override;
25  virtual bool visitPointerType(std::shared_ptr<const PointerDataType> node) override;
26  virtual bool visitEnumeratedType(std::shared_ptr<const EnumDataType> node) override;
27  virtual bool visitStringType (std::shared_ptr<const StringDataType> node) override;
28  virtual bool visitSequenceType (std::shared_ptr<const SequenceDataType> node) override;
29 
30  Result getResult();
31 
32  private:
33  // Visitor State
34  void * address;
35 
36  Result result;
37  };
38 }
Abstract base class for a DataTypeVisitor.
Definition: DataTypeVisitor.hpp:20
Definition: GetValue.hpp:15
virtual bool visitSequenceType(std::shared_ptr< const SequenceDataType > node) override
Definition: GetValue.cpp:62
GetValueVisitor(void *address)
Definition: GetValue.cpp:27
virtual bool visitStringType(std::shared_ptr< const StringDataType > node) override
Definition: GetValue.cpp:37
virtual bool visitCompositeType(std::shared_ptr< const CompositeDataType > node) override
Definition: GetValue.cpp:42
virtual bool visitPrimitiveDataType(std::shared_ptr< const PrimitiveDataType > node) override
Definition: GetValue.cpp:29
virtual bool visitPointerType(std::shared_ptr< const PointerDataType > node) override
Definition: GetValue.cpp:52
virtual bool visitArrayType(std::shared_ptr< const ArrayDataType > node) override
Definition: GetValue.cpp:47
Result getResult()
Definition: GetValue.cpp:67
virtual bool visitEnumeratedType(std::shared_ptr< const EnumDataType > node) override
Definition: GetValue.cpp:57
Value is an abstract base-class that represents a value on the right-hand-side of an assignment.
Definition: Value.hpp:9
get a leaf value.
Definition: GetValue.hpp:11
Value * Result
Definition: GetValue.hpp:13