obelisk/src/ast/number_expression_ast.h

56 lines
1.2 KiB
C++

#ifndef OBELISK_AST_NUMBER_EXPRESSION_AST_H
#define OBELISK_AST_NUMBER_EXPRESSION_AST_H
#include "ast/expression_ast.h"
namespace obelisk
{
/**
* @brief A number expression AST node.
*
*/
class NumberExpressionAST : public ExpressionAST
{
private:
/**
* @brief The number.
*
*/
double number_;
/**
* @brief Get the number.
*
* @return double Returns the number.
*/
double getNumber();
/**
* @brief Set the number.
*
* @param[in] number The number.
*/
void setNumber(double number);
public:
/**
* @brief Construct a new NumberExpressionAST object.
*
* @param[in] number The number.
*/
NumberExpressionAST(double number) :
number_(number)
{
}
/**
* @brief Generate LLVM IR code for the number.
*
* @return llvm::Value* Returns the genrated IR code.
*/
llvm::Value *codegen() override;
};
} // namespace obelisk
#endif