Design Patterns
variable_node.h
Go to the documentation of this file.
1 // Based on "Design Patterns: Elements of Reusable Object-Oriented Software"
2 // book by Erich Gamma, John Vlissides, Ralph Johnson, and Richard Helm
3 //
4 // Created by Bartosz Rachwal. The National Institute of Advanced Industrial Science and Technology, Japan.
5 
6 #ifndef STRUCTURAL_FACADE_VARIABLE_NODE_H_
7 #define STRUCTURAL_FACADE_VARIABLE_NODE_H_
8 
10 #include "program_node_interface.h"
11 
12 #include <string>
13 
14 #include "../../../operational/src/iterator/list.h"
15 
16 namespace structural
17 {
18 namespace facade
19 {
21 {
22  public:
23  explicit VariableNode(const std::string name);
24 
25  virtual void GetSourcePosition(int& line, int& index) override;
26 
27  virtual void Add(ProgramNodeInterface*) override;
28  virtual void Remove(ProgramNodeInterface*) override;
29 
30  virtual void Traverse(CodeGeneratorInterface&) override;
31 
32  virtual std::string name() const override;
33 
34  protected:
36  std::string name_;
37 };
38 }
39 }
40 
41 #endif
42 
virtual std::string name() const override
Definition: variable_node.cc:41
operational::iterator::List< ProgramNodeInterface * > * children_
Definition: variable_node.h:35
Definition: shape_interface.h:11
VariableNode(const std::string name)
Definition: variable_node.cc:12
Definition: list.h:17
virtual void GetSourcePosition(int &line, int &index) override
Definition: variable_node.cc:17
std::string name_
Definition: variable_node.h:36
Definition: code_generator_interface.h:17
Definition: variable_node_interface.h:15
virtual void Remove(ProgramNodeInterface *) override
Definition: variable_node.cc:24
Definition: program_node_interface.h:15
Definition: variable_node.h:20
virtual void Traverse(CodeGeneratorInterface &) override
Definition: variable_node.cc:29
virtual void Add(ProgramNodeInterface *) override
Definition: variable_node.cc:19