diff options
Diffstat (limited to 'c_parser/include')
-rw-r--r-- | c_parser/include/ast_base.hpp | 2 | ||||
-rw-r--r-- | c_parser/include/ast_declaration.hpp | 4 | ||||
-rw-r--r-- | c_parser/include/ast_function.hpp | 26 |
3 files changed, 23 insertions, 9 deletions
diff --git a/c_parser/include/ast_base.hpp b/c_parser/include/ast_base.hpp index c4293a8..b793a9b 100644 --- a/c_parser/include/ast_base.hpp +++ b/c_parser/include/ast_base.hpp @@ -10,7 +10,7 @@ public: virtual ~ast_Base() {} virtual void print() const = 0; - virtual void push(const ast_Base* var) const = 0; + virtual void push(const ast_Base* _var) const = 0; }; #endif diff --git a/c_parser/include/ast_declaration.hpp b/c_parser/include/ast_declaration.hpp index 50cff2a..01b1498 100644 --- a/c_parser/include/ast_declaration.hpp +++ b/c_parser/include/ast_declaration.hpp @@ -29,8 +29,8 @@ public: } } - virtual void push(const ast_Base* var) const { - var_list.push_back(var); + virtual void push(const ast_Base* _var) const { + var_list.push_back(_var); } }; diff --git a/c_parser/include/ast_function.hpp b/c_parser/include/ast_function.hpp index 60a1670..9383601 100644 --- a/c_parser/include/ast_function.hpp +++ b/c_parser/include/ast_function.hpp @@ -8,23 +8,37 @@ class ast_Function : public ast_Base { private: - std::string name; + std::string id; + const ast_Base* param; +public: + ast_Function(const std::string& _id, const ast_Base* _param) : id(_id), param(_param) {} + + virtual void print() const { + std::cout << "<Function id=\"" << id << "\">" << std::endl; + param->print(); + std::cout << "</Function>" << std::endl; + } + + virtual void push(const ast_Base* var) const {} +}; + +class ast_ParamList : public ast_Base { +private: mutable std::vector<const ast_Base*> param_list; + public: - ast_Function(const std::string& _name) : name(_name) {} - ast_Function(const ast_Base* param) { + ast_ParamList(const ast_Base* param) { param_list.push_back(param); } virtual void print() const { - std::cout << "<Function id=\"" << name << "\">" << std::endl; for(size_t i = 0; i < param_list.size(); ++i) { param_list[i]->print(); } } - virtual void push(const ast_Base* var) const { - param_list.push_back(var); + virtual void push(const ast_Base* _var) const { + param_list.push_back(_var); } }; |