Cleanups and add the corrector to the makefile. Starting integration with the parser.
authorDale Weiler <killfieldengine@gmail.com>
Fri, 4 Jan 2013 10:05:41 +0000 (10:05 +0000)
committerDale Weiler <killfieldengine@gmail.com>
Fri, 4 Jan 2013 10:05:41 +0000 (10:05 +0000)
Makefile
correct.c
gmqcc.h
util.c

index 2ac7d4fad87eb48b0986c42723c312da0395e764..9e367e05ddcdee65230281ed0321ea7b2b1be223 100644 (file)
--- 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
index 0c1fc88a348c87f656d3ec145a1beb18cefcb101..d144c31baab8afdcb1f22a2830ce46ec614ee0c1 100644 (file)
--- 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 36a67fdf282bb6f78b7a9cb3bb437f51912ad427..036cab99eb59d7b5fba3e52dbbd5770cc2d27ef2 100644 (file)
--- a/gmqcc.h
+++ b/gmqcc.h
 /*===================================================================*/
 /*=========================== 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 c2393f107bb1c205dcdf77167b521ff0560da2b3..92a99f76e463fb1e1d6289d53c629aa04cabfb21 100644 (file)
--- 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;
     }