From a60337264c2551fffc2b5aeea12f40a06b7cb0e9 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Fri, 17 Feb 2017 10:55:21 +0000 Subject: Working variables finally by adding mutable --- c_parser/include/ast_declaration.hpp | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'c_parser/include/ast_declaration.hpp') diff --git a/c_parser/include/ast_declaration.hpp b/c_parser/include/ast_declaration.hpp index 98fe255..50cff2a 100644 --- a/c_parser/include/ast_declaration.hpp +++ b/c_parser/include/ast_declaration.hpp @@ -3,23 +3,35 @@ #include "ast.hpp" +#include + +// Declaration that holds a list of declarations + class ast_Declaration : public ast_Base { private: public: - virtual void print() const override = 0; + virtual void print() const = 0; }; -class ast_VariableDeclaration : public ast_Declartaion { +class ast_VariableDeclaration : public ast_Declaration { private: - const std::string id; - const std::string type; + mutable std::vector var_list; public: - ast_VariableDeclaration(const std::string& _id, const std::string& _type) : - id(_id), type(_type) {} + ast_VariableDeclaration(const ast_Base* _var) { + var_list.push_back(_var); + } + + virtual void print() const { + for(int i = 0; i < var_list.size(); ++i) { + var_list[i]->print(); + } + } - virtual void print() const override {} + virtual void push(const ast_Base* var) const { + var_list.push_back(var); + } }; #endif -- cgit