diff --git a/src/codegen.cpp b/src/codegen.cpp index e1381ab..f2b9eb6 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -77,7 +78,13 @@ namespace AST { } codegen::StackValue FunctionCallExpression::codegen(codegen::Builder& builder, codegen::Scope& scope) { - // TODO + std::vector args{}; + for (auto& arg : this->m_args) { + args.push_back(arg->codegen(builder, scope).value); + } + auto function = this->m_fn_expr->codegen(builder, scope); + + builder.builder->CreateCall(dyn_cast(function.ty->codegen(builder)), function.value); } void ReturnStatement::codegen(codegen::Builder& builder, codegen::Scope& scope) {