obelisk/src/ast/call_expression_ast.h

36 lines
903 B
C
Raw Normal View History

2022-10-17 22:26:36 -03:00
#ifndef OBELISK_AST_CALL_EXPRESSION_AST_H
#define OBELISK_AST_CALL_EXPRESSION_AST_H
#include "ast/expression_ast.h"
#include <memory>
#include <string>
#include <vector>
namespace obelisk
{
class CallExpressionAST : public ExpressionAST
{
private:
std::string callee_;
std::vector<std::unique_ptr<ExpressionAST>> args_;
std::string getCallee();
void setCallee(std::string callee);
std::vector<std::unique_ptr<ExpressionAST>> getArgs();
void setArgs(std::vector<std::unique_ptr<ExpressionAST>> args);
public:
2022-12-13 17:35:14 -03:00
CallExpressionAST(const std::string &callee, std::vector<std::unique_ptr<ExpressionAST>> args) :
2022-10-17 22:26:36 -03:00
callee_(callee),
args_(std::move(args))
{
}
2022-11-21 21:24:44 -03:00
llvm::Value *codegen() override;
2022-10-17 22:26:36 -03:00
};
} // namespace obelisk
#endif