From d9a4e38f5c090a2bd6dc8da4e45e4fd35f81548e Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 9 Jul 2020 13:25:11 -0500 Subject: [PATCH] Bugfix for directive parsing --- include/onyxmsgs.h | 2 ++ onyx | Bin 224840 -> 225096 bytes src/onyxchecker.c | 2 +- src/onyxmsgs.c | 4 +++- src/onyxparser.c | 17 ++++++++++++++++- 5 files changed, 22 insertions(+), 3 deletions(-) diff --git a/include/onyxmsgs.h b/include/onyxmsgs.h index 8490bd06..9c23a1a4 100644 --- a/include/onyxmsgs.h +++ b/include/onyxmsgs.h @@ -16,6 +16,8 @@ typedef enum OnyxMessageType { ONYX_MESSAGE_TYPE_NOT_LVAL, ONYX_MESSAGE_TYPE_ASSIGN_CONST, ONYX_MESSAGE_TYPE_UNKNOWN_SYMBOL, + ONYX_MESSAGE_TYPE_UNKNOWN_DIRECTIVE, + ONYX_MESSAGE_TYPE_CONFLICTING_GLOBALS, ONYX_MESSAGE_TYPE_BINOP_MISMATCH_TYPE, ONYX_MESSAGE_TYPE_ASSIGNMENT_TYPE_MISMATCH, diff --git a/onyx b/onyx index c96373e52331992eb241a71850623ece26fa74f4..aeaff62dad6084b1132b65650cf6ecd9d46eebae 100755 GIT binary patch delta 63737 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

mPjDUuHlWfN(p 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.type != actual_param->base.type) { onyx_message_add(state->msgs, ONYX_MESSAGE_TYPE_FUNCTION_PARAM_TYPE_MISMATCH, - call->base.token->pos, + actual_param->value->token->pos, callee->base.token->text, callee->base.token->length, formal_param->base.type->name, arg_pos, actual_param->base.type->name); diff --git a/src/onyxmsgs.c b/src/onyxmsgs.c index 959c7969..4ef2848c 100644 --- a/src/onyxmsgs.c +++ b/src/onyxmsgs.c @@ -10,6 +10,8 @@ static const char* msg_formats[] = { "expected lval '%b'", "attempt to assign to constant '%b'", "unknown symbol '%s'", + "unknown directive '%b'", + "conflicting declarations of global '%s'", "mismatched types for binary operator, '%s', '%s'", "mismatched types on assignment, expected '%s', got '%s'", @@ -63,7 +65,7 @@ void onyx_message_print(OnyxMessages* msgs) { OnyxMessage* msg = msgs->first; i32 msg_count = 3; - while (msg && msg_count--) { + while (msg && msg_count-- > 0) { if (msg->pos.filename) { bh_file_contents* fc = &bh_table_get(bh_file_contents, *msgs->file_contents, (char *) msg->pos.filename); diff --git a/src/onyxparser.c b/src/onyxparser.c index b286f4c2..260217a7 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -688,7 +688,12 @@ static b32 parse_possible_directive(OnyxParser* parser, const char* dir) { expect(parser, '#'); OnyxToken* sym = expect(parser, TOKEN_TYPE_SYMBOL); - return strncmp(dir, sym->text, sym->length) == 0; + b32 match = (strlen(dir) == sym->length) && (strncmp(dir, sym->text, sym->length) == 0); + if (!match) { + parser_prev_token(parser); + parser_prev_token(parser); + } + return match; } static AstNodeFunction* parse_function_definition(OnyxParser* parser) { @@ -704,6 +709,16 @@ static AstNodeFunction* parse_function_definition(OnyxParser* parser) { else if (parse_possible_directive(parser, "inline")) { func_def->base.flags |= ONYX_AST_FLAG_INLINE; } + + else { + OnyxToken* directive_token = expect(parser, '#'); + OnyxToken* symbol_token = expect(parser, TOKEN_TYPE_SYMBOL); + + onyx_message_add(parser->msgs, + ONYX_MESSAGE_TYPE_UNKNOWN_DIRECTIVE, + directive_token->pos, + symbol_token->text, symbol_token->length); + } } AstNodeLocal* params = parse_function_params(parser); -- 2.25.1