From 1f78aa8783eba223427509834d64f8f5214f1a98 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Mon, 25 Aug 2025 14:00:30 -0400 Subject: Improved formatting --- src/parse/functions.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/parse/functions.c') diff --git a/src/parse/functions.c b/src/parse/functions.c index e820182b..b50519b7 100644 --- a/src/parse/functions.c +++ b/src/parse/functions.c @@ -26,6 +26,7 @@ arg_ast_t *parse_args(parse_ctx_t *ctx, const char **pos) { type_ast_t *type = NULL; typedef struct name_list_s { + const char *start, *end; const char *name; struct name_list_s *next; } name_list_t; @@ -35,21 +36,22 @@ arg_ast_t *parse_args(parse_ctx_t *ctx, const char **pos) { whitespace(ctx, pos); const char *name = get_id(pos); if (!name) break; + const char *name_start = *pos; whitespace(ctx, pos); if (match(pos, ":")) { type = expect(ctx, *pos - 1, pos, parse_type, "I expected a type here"); - names = new (name_list_t, .name = name, .next = names); whitespace(ctx, pos); if (match(pos, "=")) default_val = expect(ctx, *pos - 1, pos, parse_term, "I expected a value after this '='"); + names = new (name_list_t, .start = name_start, .end = *pos, .name = name, .next = names); break; } else if (strncmp(*pos, "==", 2) != 0 && match(pos, "=")) { default_val = expect(ctx, *pos - 1, pos, parse_term, "I expected a value after this '='"); - names = new (name_list_t, .name = name, .next = names); + names = new (name_list_t, .start = name_start, .end = *pos, .name = name, .next = names); break; } else if (name) { - names = new (name_list_t, .name = name, .next = names); + names = new (name_list_t, .start = name_start, .end = *pos, .name = name, .next = names); spaces(pos); if (!match(pos, ",")) break; } else { @@ -64,7 +66,8 @@ arg_ast_t *parse_args(parse_ctx_t *ctx, const char **pos) { REVERSE_LIST(names); for (; names; names = names->next) - args = new (arg_ast_t, .name = names->name, .type = type, .value = default_val, .next = args); + args = new (arg_ast_t, .start = names->start, .end = names->end, .name = names->name, .type = type, + .value = default_val, .next = args); if (!match_separator(ctx, pos)) break; } -- cgit v1.2.3