diff options
Diffstat (limited to 'c_compiler/include/statement.hpp')
-rw-r--r-- | c_compiler/include/statement.hpp | 222 |
1 files changed, 111 insertions, 111 deletions
diff --git a/c_compiler/include/statement.hpp b/c_compiler/include/statement.hpp index 94c1a36..a01307f 100644 --- a/c_compiler/include/statement.hpp +++ b/c_compiler/include/statement.hpp @@ -16,227 +16,227 @@ typedef std::shared_ptr<Statement> StatementPtr; class Statement : public Node { protected: - StatementPtr next_statement_; + StatementPtr next_statement_; public: - Statement(Statement *statement = nullptr); + Statement(Statement *statement = nullptr); - virtual void print() const = 0; - virtual void printXml() const = 0; - virtual Bindings printAsm(Bindings bindings, int &label_count) const = 0; + virtual void print() const = 0; + virtual void printXml() const = 0; + virtual Bindings printAsm(Bindings bindings, int &label_count) const = 0; - virtual void countVariables(int &var_count) const = 0; - virtual void countArguments(int &argument_count) const = 0; - virtual void countExpressionDepth(int &depth_count) const = 0; + virtual void countVariables(int &var_count) const = 0; + virtual void countArguments(int &argument_count) const = 0; + virtual void countExpressionDepth(int &depth_count) const = 0; - virtual int constantFold() const; - virtual ExpressionPtr getExpression() const; - virtual bool isDefault() const; + virtual int constantFold() const; + virtual ExpressionPtr getExpression() const; + virtual bool isDefault() const; - void linkStatement(Statement *next); - StatementPtr getNext() const; + void linkStatement(Statement *next); + StatementPtr getNext() const; }; class LabelStatement : public Statement { private: - std::string label_; - StatementPtr statement_; + std::string label_; + StatementPtr statement_; public: - LabelStatement(const std::string &label, Statement *statement); + LabelStatement(const std::string &label, Statement *statement); - virtual void print() const; - virtual void printXml() const; - virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual void print() const; + virtual void printXml() const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; - virtual void countVariables(int &var_count) const; - virtual void countArguments(int &argument_count) const; - virtual void countExpressionDepth(int &depth_count) const; + virtual void countVariables(int &var_count) const; + virtual void countArguments(int &argument_count) const; + virtual void countExpressionDepth(int &depth_count) const; }; class CaseStatement : public Statement { private: - ExpressionPtr constant_expression_; - StatementPtr statement_; - bool default_; + ExpressionPtr constant_expression_; + StatementPtr statement_; + bool default_; public: - CaseStatement(Statement *statement, Expression *constant_expression_ = nullptr, const bool &_default = false); - - virtual void print() const; - virtual void printXml() const; - virtual Bindings printAsm(Bindings bindings, int &label_count) const; - - virtual void countVariables(int &var_count) const; - virtual void countArguments(int &argument_count) const; - virtual void countExpressionDepth(int &depth_count) const; - virtual int constantFold() const; - virtual ExpressionPtr getExpression() const; - virtual bool isDefault() const; + CaseStatement(Statement *statement, Expression *constant_expression_ = nullptr, const bool &_default = false); + + virtual void print() const; + virtual void printXml() const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; + + virtual void countVariables(int &var_count) const; + virtual void countArguments(int &argument_count) const; + virtual void countExpressionDepth(int &depth_count) const; + virtual int constantFold() const; + virtual ExpressionPtr getExpression() const; + virtual bool isDefault() const; }; class CompoundStatement : public Statement { protected: - DeclarationPtr declaration_; - StatementPtr statement_; + DeclarationPtr declaration_; + StatementPtr statement_; public: - CompoundStatement(Declaration *declaration = nullptr, Statement *statement = nullptr); - CompoundStatement(Statement *statement); + CompoundStatement(Declaration *declaration = nullptr, Statement *statement = nullptr); + CompoundStatement(Statement *statement); - virtual void print() const; - virtual void printXml() const; - virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual void print() const; + virtual void printXml() const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; - virtual void countVariables(int &var_count) const; - virtual void countArguments(int &argument_count) const; - virtual void countExpressionDepth(int &depth_count) const; + virtual void countVariables(int &var_count) const; + virtual void countArguments(int &argument_count) const; + virtual void countExpressionDepth(int &depth_count) const; - StatementPtr getStatementList() const; + StatementPtr getStatementList() const; }; class IfElseStatement : public Statement { private: - ExpressionPtr condition_; - StatementPtr if_; - StatementPtr else_; + ExpressionPtr condition_; + StatementPtr if_; + StatementPtr else_; public: - IfElseStatement(Expression *condition, Statement *_if, Statement *_else = nullptr); + IfElseStatement(Expression *condition, Statement *_if, Statement *_else = nullptr); - virtual void print() const; - virtual void printXml() const; - virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual void print() const; + virtual void printXml() const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; - virtual void countVariables(int &var_count) const; - virtual void countArguments(int &argument_count) const; - virtual void countExpressionDepth(int &depth_count) const; + virtual void countVariables(int &var_count) const; + virtual void countArguments(int &argument_count) const; + virtual void countExpressionDepth(int &depth_count) const; }; class SwitchStatement : public Statement { private: - ExpressionPtr condition_; - StatementPtr statement_; + ExpressionPtr condition_; + StatementPtr statement_; public: - SwitchStatement(Expression *condition, Statement *statement); - virtual void print() const; - virtual void printXml() const; - virtual Bindings printAsm(Bindings bindings, int &label_count) const; - - virtual void countVariables(int &var_count) const; - virtual void countArguments(int &argument_count) const; - virtual void countExpressionDepth(int &depth_count) const; + SwitchStatement(Expression *condition, Statement *statement); + virtual void print() const; + virtual void printXml() const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; + + virtual void countVariables(int &var_count) const; + virtual void countArguments(int &argument_count) const; + virtual void countExpressionDepth(int &depth_count) const; }; class ExpressionStatement : public Statement { protected: - ExpressionPtr expression_; + ExpressionPtr expression_; public: - ExpressionStatement(Expression *expression = nullptr); + ExpressionStatement(Expression *expression = nullptr); - virtual void print() const; - virtual void printXml() const; - virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual void print() const; + virtual void printXml() const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; - virtual void countVariables(int &var_count) const; - virtual void countArguments(int &argument_count) const; - virtual void countExpressionDepth(int &depth_count) const; + virtual void countVariables(int &var_count) const; + virtual void countArguments(int &argument_count) const; + virtual void countExpressionDepth(int &depth_count) const; }; class JumpStatement : public Statement { public: - virtual Bindings printAsm(Bindings bindings, int &label_count) const = 0; + virtual Bindings printAsm(Bindings bindings, int &label_count) const = 0; - virtual void print() const; - virtual void printXml() const; + virtual void print() const; + virtual void printXml() const; - virtual void countVariables(int &var_count) const; - virtual void countArguments(int &argument_count) const; - virtual void countExpressionDepth(int &depth_count) const; + virtual void countVariables(int &var_count) const; + virtual void countArguments(int &argument_count) const; + virtual void countExpressionDepth(int &depth_count) const; }; class ReturnStatement : public JumpStatement { private: - ExpressionPtr expression_; + ExpressionPtr expression_; public: - ReturnStatement(Expression *expression = nullptr); + ReturnStatement(Expression *expression = nullptr); - virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; - virtual void countVariables(int &var_count) const; - virtual void countArguments(int &argument_count) const; - virtual void countExpressionDepth(int &depth_count) const; + virtual void countVariables(int &var_count) const; + virtual void countArguments(int &argument_count) const; + virtual void countExpressionDepth(int &depth_count) const; }; class BreakStatement : public JumpStatement { public: - BreakStatement(); + BreakStatement(); - virtual Bindings printAsm(Bindings bindings, int &) const; + virtual Bindings printAsm(Bindings bindings, int &) const; }; class ContinueStatement : public JumpStatement { public: - ContinueStatement(); + ContinueStatement(); - virtual Bindings printAsm(Bindings bindings, int &) const; + virtual Bindings printAsm(Bindings bindings, int &) const; }; class GotoStatement : public JumpStatement { private: - std::string label_; + std::string label_; public: - GotoStatement(const std::string &label); + GotoStatement(const std::string &label); - virtual Bindings printAsm(Bindings bindings, int &) const; + virtual Bindings printAsm(Bindings bindings, int &) const; }; class IterationStatement : public Statement { protected: - ExpressionPtr condition_; - StatementPtr statement_; + ExpressionPtr condition_; + StatementPtr statement_; public: - IterationStatement(Expression *condition, Statement *statement); + IterationStatement(Expression *condition, Statement *statement); - virtual void print() const; - virtual void printXml() const; - virtual Bindings printAsm(Bindings bindings, int &label_count) const = 0; + virtual void print() const; + virtual void printXml() const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const = 0; - virtual void countVariables(int &var_count) const; - virtual void countArguments(int &argument_count) const; - virtual void countExpressionDepth(int &depth_count) const; + virtual void countVariables(int &var_count) const; + virtual void countArguments(int &argument_count) const; + virtual void countExpressionDepth(int &depth_count) const; }; class WhileLoop : public IterationStatement { private: - bool is_while_; + bool is_while_; public: - WhileLoop(Expression *condition, Statement *statement, const bool &is_while = true); + WhileLoop(Expression *condition, Statement *statement, const bool &is_while = true); - virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; }; class ForLoop : public IterationStatement { private: - ExpressionPtr initializer_; - ExpressionPtr incrementer_; + ExpressionPtr initializer_; + ExpressionPtr incrementer_; public: - ForLoop(Expression *initializer, Expression *condition, Expression *incrementer, Statement *statement); + ForLoop(Expression *initializer, Expression *condition, Expression *incrementer, Statement *statement); - virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; }; |