obelisk/src/ast/number_expression_ast.h

56 lines
1.2 KiB
C
Raw Normal View History

2022-10-17 22:26:36 -03:00
#ifndef OBELISK_AST_NUMBER_EXPRESSION_AST_H
#define OBELISK_AST_NUMBER_EXPRESSION_AST_H
#include "ast/expression_ast.h"
namespace obelisk
{
2023-02-20 22:01:14 -03:00
/**
* @brief A number expression AST node.
*
*/
2022-10-17 22:26:36 -03:00
class NumberExpressionAST : public ExpressionAST
{
private:
2023-02-20 22:01:14 -03:00
/**
* @brief The number.
*
*/
2022-10-17 22:26:36 -03:00
double number_;
2023-02-20 22:01:14 -03:00
/**
* @brief Get the number.
*
* @return double Returns the number.
*/
2022-10-17 22:26:36 -03:00
double getNumber();
2023-02-20 22:01:14 -03:00
/**
* @brief Set the number.
*
* @param[in] number The number.
*/
2022-10-17 22:26:36 -03:00
void setNumber(double number);
public:
2023-02-20 22:01:14 -03:00
/**
* @brief Construct a new NumberExpressionAST object.
*
* @param[in] number The number.
*/
2022-10-17 22:26:36 -03:00
NumberExpressionAST(double number) :
number_(number)
{
}
2022-11-21 21:24:44 -03:00
2023-02-20 22:01:14 -03:00
/**
* @brief Generate LLVM IR code for the number.
*
* @return llvm::Value* Returns the genrated IR code.
*/
2022-11-21 21:24:44 -03:00
llvm::Value *codegen() override;
2022-10-17 22:26:36 -03:00
};
} // namespace obelisk
#endif