From 3e20038bbf7206e2270655418d7884ccfe91a4e4 Mon Sep 17 00:00:00 2001 From: hachem Date: Mon, 31 Aug 2026 00:19:10 +0200 Subject: add directives and directive based entry points --- src/sema/sema.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/sema') diff --git a/src/sema/sema.c b/src/sema/sema.c index 99ec4f1..55f4a93 100644 --- a/src/sema/sema.c +++ b/src/sema/sema.c @@ -49,14 +49,16 @@ static bool check_duplicate_names(struct Program* program) static bool check_entry_point(struct Program* program) { + if (!program->config.has_entry) + return true; + + struct Token entry = program->config.entry; for (size_t i = 0; i < program->proc_count; i += 1) - { - struct Token name = program->procs[i].name; - if (name.length == 4 && memcmp(name.start, "main", 4) == 0) + if (names_equal(program->procs[i].name, entry)) return true; - } - fprintf(stderr, "error: no 'main' procedure defined\n"); + fprintf(stderr, "error: line %u: entry point '%.*s' is not defined\n", + entry.line, (int)entry.length, entry.start); return false; } -- cgit v1.3