diff --git a/inc/AST/ReturnStatement.h b/inc/AST/ReturnStatement.h new file mode 100644 index 0000000..284f6cd --- /dev/null +++ b/inc/AST/ReturnStatement.h @@ -0,0 +1,17 @@ +#ifndef RETURNSTATEMENT_H +#define RETURNSTATEMENT_H + +#include "AST/Statement.h" +#include "AST/Expression.h" + +class ReturnStatement : public Statement { +public: + ReturnStatement(Expression* expr); + virtual ~ReturnStatement(); + virtual void accept(ASTVisitor *visitor); + Expression* getExpr(); +private: + Expression* expr_; +}; + +#endif // RETURNSTATEMENT_H diff --git a/src/AST/ReturnStatement.cpp b/src/AST/ReturnStatement.cpp new file mode 100644 index 0000000..2a72035 --- /dev/null +++ b/src/AST/ReturnStatement.cpp @@ -0,0 +1,18 @@ +#include "AST/ReturnStatement.h" +#include "AST/ASTVisitor.h" + +ReturnStatement::ReturnStatement(Expression* expr): expr_(expr) { + // +} + +ReturnStatement::~ReturnStatement() { + // +} + +void ReturnStatement::accept(ASTVisitor* visitor) { + visitor->visit(this); +} + +Expression* ReturnStatement::getExpr() { + return expr_; +}