diff options
Diffstat (limited to 'c_parser/include/ast_statement.hpp')
-rw-r--r-- | c_parser/include/ast_statement.hpp | 123 |
1 files changed, 41 insertions, 82 deletions
diff --git a/c_parser/include/ast_statement.hpp b/c_parser/include/ast_statement.hpp index 224a809..4761efb 100644 --- a/c_parser/include/ast_statement.hpp +++ b/c_parser/include/ast_statement.hpp @@ -1,122 +1,81 @@ #ifndef AST_STATEMENT_HPP #define AST_STATEMENT_HPP -class ast_StatementList : public ast_Base { -protected: - mutable std::vector<const ast_Base*> statement_list; - -public: - ast_StatementList(const ast_Base* _statement) { - statement_list.push_back(_statement); - } - - virtual void print() const { - for(size_t i = 0; i < statement_list.size(); ++i) { - statement_list[i]->print(); - } - } +#include "ast.hpp" - virtual void push(const ast_Base* _statement) const { - statement_list.push_back(_statement); - } -}; - -class ast_Statement : public ast_Base { +class Statement : public Base { protected: - mutable std::vector<const ast_Base*> ast_list; + mutable std::vector<const Base*> list; public: - ast_Statement() {} + Statement() {} - ast_Statement(const ast_Base* _el) { - ast_list.push_back(_el); + Statement(const Base* _el) { + list.push_back(_el); } - ast_Statement(const ast_Base* _dec, const ast_Base* _statement) { - ast_list.push_back(_dec); - ast_list.push_back(_statement); + Statement(const Base* _dec, const Base* _statement) { + list.push_back(_dec); + list.push_back(_statement); } virtual void print() const { - for(size_t i = 0; i < ast_list.size(); ++i) { - ast_list[i]->print(); + for(size_t i = 0; i < list.size(); ++i) { + list[i]->print(); } } - virtual void push(const ast_Base* _var) const { - ast_list.push_back(_var); + virtual void push(const Base* _var) const { + list.push_back(_var); } }; -class ast_CompoundStatement : public ast_Statement { +class StatementList : public Statement { public: - ast_CompoundStatement() : ast_Statement() {} - ast_CompoundStatement(const ast_Base* _el) : ast_Statement(_el) {} - ast_CompoundStatement(const ast_Base* _dec, const ast_Base* _statement) : - ast_Statement(_dec, _statement) {} + StatementList(const Base* _statement) : Statement(_statement) {} +}; + +class CompoundStatement : public Statement { +public: + CompoundStatement() : Statement() {} + CompoundStatement(const Base* _el) : Statement(_el) {} + CompoundStatement(const Base* _dec, const Base* _statement) : + Statement(_dec, _statement) {} virtual void print() const override { std::cout << "<Scope>" << std::endl; - for(size_t i = 0; i < ast_list.size(); ++i) { - ast_list[i]->print(); + for(size_t i = 0; i < list.size(); ++i) { + list[i]->print(); } std::cout << "</Scope>" << std::endl; } }; -class ast_SelectionStatement : public ast_Statement { +class SelectionStatement : public Statement { public: - ast_SelectionStatement() : ast_Statement() {} - ast_SelectionStatement(const ast_Base* _el) : ast_Statement(_el) {} - ast_SelectionStatement(const ast_Base* _if, const ast_Base* _else) : - ast_Statement(_if, _else) {} - - virtual void print() const override { - for(size_t i = 0; i < ast_list.size(); ++i) { - ast_list[i]->print(); - } - } + SelectionStatement() : Statement() {} + SelectionStatement(const Base* _el) : Statement(_el) {} + SelectionStatement(const Base* _if, const Base* _else) : + Statement(_if, _else) {} }; -class ast_ExpressionStatement : public ast_Statement { +class ExpressionStatement : public Statement { public: - ast_ExpressionStatement() : ast_Statement() {} - ast_ExpressionStatement(const ast_Base* _el) : ast_Statement(_el) {} - ast_ExpressionStatement(const ast_Base* _if, const ast_Base* _else) : - ast_Statement(_if, _else) {} - - virtual void print() const override { - for(size_t i = 0; i < ast_list.size(); ++i) { - ast_list[i]->print(); - } - } + ExpressionStatement() : Statement() {} + ExpressionStatement(const Base* _el) : Statement(_el) {} }; -class ast_JumpStatement : public ast_Statement { +class JumpStatement : public Statement { public: - ast_JumpStatement() : ast_Statement() {} - ast_JumpStatement(const ast_Base* _el) : ast_Statement(_el) {} - ast_JumpStatement(const ast_Base* _if, const ast_Base* _else) : - ast_Statement(_if, _else) {} - - virtual void print() const override { - for(size_t i = 0; i < ast_list.size(); ++i) { - ast_list[i]->print(); - } - } + JumpStatement() : Statement() {} + JumpStatement(const Base* _el) : Statement(_el) {} }; -class ast_IterationStatement : public ast_Statement { +class IterationStatement : public Statement { public: - ast_IterationStatement() : ast_Statement() {} - ast_IterationStatement(const ast_Base* _el) : ast_Statement(_el) {} - ast_IterationStatement(const ast_Base* _if, const ast_Base* _else) : - ast_Statement(_if, _else) {} - - virtual void print() const override { - for(size_t i = 0; i < ast_list.size(); ++i) { - ast_list[i]->print(); - } - } + IterationStatement() : Statement() {} + IterationStatement(const Base* _el) : Statement(_el) {} + IterationStatement(const Base* _if, const Base* _else) : + Statement(_if, _else) {} }; #endif |