From d97e032fcfe6e1c1a080aa66f435426330e8585e Mon Sep 17 00:00:00 2001 From: Dale Weiler Date: Fri, 4 Jan 2013 10:05:41 +0000 Subject: [PATCH] Cleanups and add the corrector to the makefile. Starting integration with the parser. --- Makefile | 2 +- correct.c | 36 +----------------------------------- gmqcc.h | 15 +++++++++++---- util.c | 18 +++--------------- 4 files changed, 16 insertions(+), 55 deletions(-) diff --git a/Makefile b/Makefile index 2ac7d4f..9e367e0 100644 --- a/Makefile +++ b/Makefile @@ -37,7 +37,7 @@ ifeq ($(track), no) CFLAGS += -DNOTRACK endif -OBJ_D = util.o code.o ast.o ir.o conout.o ftepp.o opts.o file.o utf8.o +OBJ_D = util.o code.o ast.o ir.o conout.o ftepp.o opts.o file.o utf8.o correct.o OBJ_T = test.o util.o conout.o file.o OBJ_C = main.o lexer.o parser.o file.o OBJ_X = exec-standalone.o util.o conout.o file.o diff --git a/correct.c b/correct.c index 0c1fc88..d144c31 100644 --- a/correct.c +++ b/correct.c @@ -342,7 +342,7 @@ void correct_add(ht table, size_t ***size, const char *ident) { } } -char *correct_correct(ht table, const char *ident) { +char *correct_str(ht table, const char *ident) { char **e1; char **e2; char *e1ident; @@ -385,37 +385,3 @@ void correct_del(ht dictonary, size_t **data) { vec_free(data); util_htdel(dictonary); } - -int main() { - opts.debug = true; - opts.memchk = true; - con_init(); - - ht t = util_htnew(1024); - size_t **d = NULL; - - correct_add(t, &d, "hellobain"); - correct_add(t, &d, "ellor"); - correct_add(t, &d, "world"); - - printf("found identifiers: (2)\n"); - printf(" 1: hellobain\n"); - printf(" 2: ellor\n"); - printf(" 3: world\n"); - - char *b = correct_correct(t, "rld"); - char *a = correct_correct(t, "ello"); - char *c = correct_correct(t, "helbain"); - - printf("invalid identifier: `%s` (did you mean: `%s`?)\n", "ello", a); - printf("invalid identifier: `%s` (did you mean: `%s`?)\n", "rld", b); - printf("invalid identifier: `%s` (did you mean: `%s`?)\n", "helbain", c); - - correct_del(t, d); - mem_d(b); - mem_d(a); - mem_d(c); - - /*util_meminfo();*/ - -} diff --git a/gmqcc.h b/gmqcc.h index 36a67fd..036cab9 100644 --- a/gmqcc.h +++ b/gmqcc.h @@ -245,9 +245,9 @@ /*===================================================================*/ /*=========================== util.c ================================*/ /*===================================================================*/ -void *util_memory_a (size_t, unsigned int, const char *); -void util_memory_d (void *, unsigned int, const char *); -void *util_memory_r (void *, size_t, unsigned int, const char *); +void *util_memory_a (size_t, /*****/ unsigned int, const char *); +void *util_memory_r (void *, size_t, unsigned int, const char *); +void util_memory_d (void *); void util_meminfo (); bool util_filexists (const char *); @@ -275,7 +275,7 @@ int util_asprintf (char **ret, const char *fmt, ...); # define mem_r(x, n) realloc((void*)x, n) #else # define mem_a(x) util_memory_a((x), __LINE__, __FILE__) -# define mem_d(x) util_memory_d((void*)(x), __LINE__, __FILE__) +# define mem_d(x) util_memory_d((void*)(x)) # define mem_r(x, n) util_memory_r((void*)(x), (n), __LINE__, __FILE__) #endif @@ -423,6 +423,13 @@ GMQCC_INLINE FILE *file_open (const char *, const char *); /*NOINLINE*/ int file_getline(char **, size_t *, FILE *); +/*===================================================================*/ +/*=========================== correct.c =============================*/ +/*===================================================================*/ +void correct_del(ht, size_t **); +void correct_add(ht, size_t ***, const char *); +char *correct_str(ht, /********/ const char *); + /*===================================================================*/ /*=========================== code.c ================================*/ /*===================================================================*/ diff --git a/util.c b/util.c index c2393f1..92a99f7 100644 --- a/util.c +++ b/util.c @@ -54,26 +54,18 @@ void *util_memory_a(size_t byte, unsigned int line, const char *file) { mem_start->prev = info; mem_start = info; - #if 0 - util_debug("MEM", "allocation: % 8u (bytes) address 0x%08X @ %s:%u\n", byte, data, file, line); - #endif - mem_at++; mem_ab += info->byte; return data; } -void util_memory_d(void *ptrn, unsigned int line, const char *file) { +void util_memory_d(void *ptrn) { struct memblock_t *info = NULL; if (!ptrn) return; info = ((struct memblock_t*)ptrn - 1); - #if 0 - util_debug("MEM", "released: % 8u (bytes) address 0x%08X @ %s:%u\n", info->byte, ptrn, file, line); - #endif - mem_db += info->byte; mem_dt++; @@ -95,20 +87,16 @@ void *util_memory_r(void *ptrn, size_t byte, unsigned int line, const char *file if (!ptrn) return util_memory_a(byte, line, file); if (!byte) { - util_memory_d(ptrn, line, file); + util_memory_d(ptrn); return NULL; } oldinfo = ((struct memblock_t*)ptrn - 1); newinfo = ((struct memblock_t*)malloc(sizeof(struct memblock_t) + byte)); - #if 0 - util_debug("MEM", "reallocation: % 8u -> %u (bytes) address 0x%08X -> 0x%08X @ %s:%u\n", oldinfo->byte, byte, ptrn, (void*)(newinfo+1), file, line); - #endif - /* new data */ if (!newinfo) { - util_memory_d(oldinfo+1, line, file); + util_memory_d(oldinfo+1); return NULL; } -- 2.39.2