#ifndef OBELISK_AST_EXPRESSION_AST_H #define OBELISK_AST_EXPRESSION_AST_H #include namespace obelisk { /** * @brief A generic AST expression which other expression will inherit from. * */ class ExpressionAST { public: /** * @brief Destroy the ExpressionAST object. * */ virtual ~ExpressionAST() = default; /** * @brief Generate LLVM IR code based on the AST expression. * * @return llvm::Value* Returns the LLVM code value from the * expression. */ virtual llvm::Value *codegen() = 0; }; } // namespace obelisk #endif