diff --git a/ast.h b/ast.h index 56f9e75..88562cd 100644 --- a/ast.h +++ b/ast.h @@ -38,6 +38,7 @@ #define _H_ast #include // for NULL +#include "irgen.h" #include "location.h" #include @@ -68,7 +69,7 @@ class Node { void Print(int indentLevel, const char *label = NULL); virtual void PrintChildren(int indentLevel) {} - virtual void Emit() {} + virtual llvm::Value* Emit() { return NULL; } }; diff --git a/ast_stmt.cc b/ast_stmt.cc index 81dd227..2c37830 100644 --- a/ast_stmt.cc +++ b/ast_stmt.cc @@ -23,7 +23,7 @@ void Program::PrintChildren(int indentLevel) { printf("\n"); } -void Program::Emit() { +llvm::Value* Program::Emit() { // TODO: // This is just a reference for you to get started // diff --git a/ast_stmt.h b/ast_stmt.h index 8d782ac..ff644f1 100644 --- a/ast_stmt.h +++ b/ast_stmt.h @@ -32,7 +32,7 @@ class Program : public Node Program(List *declList); const char *GetPrintNameForNode() { return "Program"; } void PrintChildren(int indentLevel); - virtual void Emit(); + virtual llvm::Value* Emit(); }; class Stmt : public Node