#ifndef PORYGONLANG_BOUNDREQUIREEXPRESSION_HPP #define PORYGONLANG_BOUNDREQUIREEXPRESSION_HPP #include "BoundExpression.hpp" #include "../../Script.hpp" namespace Porygon::Binder { class BoundRequireExpression : public BoundExpression { Script* _module; public: BoundRequireExpression(Script* script, unsigned int start, unsigned int length) : BoundExpression(start, length, script->GetReturnType()), _module(script){} ~BoundRequireExpression() final{ delete _module; } [[nodiscard]] inline Script* GetModule() const{ return _module; } [[nodiscard]] inline BoundExpressionKind GetKind() const final { return BoundExpressionKind::Require; } }; } #endif //PORYGONLANG_BOUNDREQUIREEXPRESSION_HPP