From e604d40fd32491696224900f36a16725c6cd5117 Mon Sep 17 00:00:00 2001 From: Christoffer Lerno Date: Sun, 29 Jan 2023 13:26:34 +0100 Subject: [PATCH] Added $$FILEPATH --- src/compiler/enums.h | 1 + src/compiler/sema_expr.c | 3 +++ src/compiler/symtab.c | 1 + src/version.h | 2 +- 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/compiler/enums.h b/src/compiler/enums.h index 259207d73..fb7eff074 100644 --- a/src/compiler/enums.h +++ b/src/compiler/enums.h @@ -918,6 +918,7 @@ typedef enum { BUILTIN_DEF_DATE, BUILTIN_DEF_FILE, + BUILTIN_DEF_FILEPATH, BUILTIN_DEF_FUNC, BUILTIN_DEF_FUNCTION, BUILTIN_DEF_LINE, diff --git a/src/compiler/sema_expr.c b/src/compiler/sema_expr.c index ca7ac1fd1..30b2756bf 100644 --- a/src/compiler/sema_expr.c +++ b/src/compiler/sema_expr.c @@ -5971,6 +5971,9 @@ static inline bool sema_expr_analyse_compiler_const(SemaContext *context, Expr * case BUILTIN_DEF_FILE: expr_rewrite_to_string(expr, context->compilation_unit->file->name); return true; + case BUILTIN_DEF_FILEPATH: + expr_rewrite_to_string(expr, context->compilation_unit->file->full_path); + return true; case BUILTIN_DEF_MODULE: expr_rewrite_to_string(expr, context->compilation_unit->module->name->module); return true; diff --git a/src/compiler/symtab.c b/src/compiler/symtab.c index 8c8562c2e..136448739 100644 --- a/src/compiler/symtab.c +++ b/src/compiler/symtab.c @@ -120,6 +120,7 @@ void symtab_init(uint32_t capacity) TokenType type = TOKEN_CONST_IDENT; builtin_defines[BUILTIN_DEF_DATE] = KW_DEF("DATE"); builtin_defines[BUILTIN_DEF_FILE] = KW_DEF("FILE"); + builtin_defines[BUILTIN_DEF_FILEPATH] = KW_DEF("FILEPATH"); builtin_defines[BUILTIN_DEF_FUNCTION] = KW_DEF("FUNCTION"); builtin_defines[BUILTIN_DEF_FUNC] = KW_DEF("FUNC"); builtin_defines[BUILTIN_DEF_LINE] = KW_DEF("LINE"); diff --git a/src/version.h b/src/version.h index 763f99b78..e1ff2218d 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define COMPILER_VERSION "0.4.30" \ No newline at end of file +#define COMPILER_VERSION "0.4.31" \ No newline at end of file