aboutsummaryrefslogtreecommitdiffstats
path: root/c_parser/include
diff options
context:
space:
mode:
Diffstat (limited to 'c_parser/include')
-rw-r--r--c_parser/include/ast_base.hpp2
-rw-r--r--c_parser/include/ast_declaration.hpp4
-rw-r--r--c_parser/include/ast_function.hpp26
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);
}
};