From 9a97b73c7cd72812bdd517f4d34df89c2c8d51a6 Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Wed, 28 Apr 2021 16:10:17 -0700 Subject: [PATCH] rename compiler to codegen + handle file not found --- CMakeLists.txt | 4 ++-- src/{compiler.c => codegen.c} | 2 +- src/codegen.h | 8 ++++++++ src/compiler.h | 8 -------- src/main.c | 4 ++-- src/parser.c | 14 +++++++++++--- 6 files changed, 24 insertions(+), 16 deletions(-) rename src/{compiler.c => codegen.c} (99%) create mode 100644 src/codegen.h delete mode 100644 src/compiler.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 984d814..d298384 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,11 +40,11 @@ add_executable( lib/dropt/dropt_handlers.c # Source src/ast.h - src/compiler.h + src/codegen.h src/parser.h src/stack.h src/ast.c - src/compiler.c + src/codegen.c src/parser.c src/stack.c src/main.c diff --git a/src/compiler.c b/src/codegen.c similarity index 99% rename from src/compiler.c rename to src/codegen.c index 53168d8..563eb6c 100644 --- a/src/compiler.c +++ b/src/codegen.c @@ -813,7 +813,7 @@ static void Compile(LLVMModuleRef module, LLVMContextRef context, Node *node) } } -int Build(Node *node, uint32_t optimizationLevel) +int Codegen(Node *node, uint32_t optimizationLevel) { scope = CreateScope(); diff --git a/src/codegen.h b/src/codegen.h new file mode 100644 index 0000000..ef59af2 --- /dev/null +++ b/src/codegen.h @@ -0,0 +1,8 @@ +#ifndef WRAITH_CODEGEN_H +#define WRAITH_CODEGEN_H + +#include "ast.h" + +int Codegen(Node *node, uint32_t optimizationLevel); + +#endif /* WRAITH_CODEGEN_H */ diff --git a/src/compiler.h b/src/compiler.h deleted file mode 100644 index 216d2c5..0000000 --- a/src/compiler.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef WRAITH_COMPILER_H -#define WRAITH_COMPILER_H - -#include "ast.h" - -int Build(Node *node, uint32_t optimizationLevel); - -#endif /* WRAITH_COMPILER_H */ diff --git a/src/main.c b/src/main.c index ff231a1..48a2301 100644 --- a/src/main.c +++ b/src/main.c @@ -2,7 +2,7 @@ #include "../lib/dropt/dropt.h" #include "parser.h" -#include "compiler.h" +#include "codegen.h" int main(int argc, char *argv[]) { @@ -64,7 +64,7 @@ int main(int argc, char *argv[]) } else { - exitCode = Build(rootNode, optimizationLevel); + exitCode = Codegen(rootNode, optimizationLevel); } } } diff --git a/src/parser.c b/src/parser.c index 69d9603..856504c 100644 --- a/src/parser.c +++ b/src/parser.c @@ -14,9 +14,17 @@ int Parse(char *inputFilename, Node **pRootNode, uint8_t parseVerbose) yydebug = parseVerbose; FILE *fp = fopen(inputFilename, "r"); - yyin = fp; - result = yyparse(fp, stack, pRootNode); - fclose(fp); + if (fp != NULL) + { + yyin = fp; + result = yyparse(fp, stack, pRootNode); + fclose(fp); + } + else + { + fprintf(stderr, "File not found.\n"); + return 3; + } /* TODO: free stack */ /* TODO: free AST on error */