Delete garbage from main. Use GString to read in entire contents
authorMichael Welch <michaelgwelch@gmail.com>
Sat, 25 Feb 2012 21:15:16 +0000 (15:15 -0600)
committerMichael Welch <michaelgwelch@gmail.com>
Sat, 25 Feb 2012 21:15:16 +0000 (15:15 -0600)
csrc/Makefile
csrc/brainmess [deleted file]
csrc/brainmess.c

index 981a74c..9254542 100644 (file)
@@ -26,4 +26,4 @@ brainmess: $(OBJ)
 .PHONY: clean
 
 clean:
-       rm -f $(ODIR)/*.o *~ core $(INCDIR)/*~ 
+       rm -f $(ODIR)/*.o *~ core 
diff --git a/csrc/brainmess b/csrc/brainmess
deleted file mode 100755 (executable)
index 8fe1c8c..0000000
Binary files a/csrc/brainmess and /dev/null differ
index f0e041b..8633b14 100644 (file)
@@ -16,82 +16,34 @@ gchar getChar()
 int main(gint argc, gchar** args) 
 {
     Tape* t = tape_new();
-    if (argc > 1) printf("%s\n", args[1]);   
 
     FILE* file = fopen(args[1], "r");
     // Todo: use GString to build up and read whole file
-    int CHARS = 32000;
-    gchar* program_string = malloc(CHARS * sizeof(gchar));
-    size_t chars = fread(program_string, sizeof(gchar), CHARS, file);
+    
+    GString* program_string = g_string_sized_new(200);
+    const CHARS = 100;
+    gchar* buffer = malloc(CHARS * sizeof(gchar));
+    while(!feof(file))
+    {
+        size_t chars = fread(buffer, sizeof(gchar), CHARS, file);
+        g_string_append_len(program_string, buffer, chars);
+    }
 
-    if (!feof(file)) printf("Could not read the whole program");
     fclose(file);
+    free(buffer);
+
+    Program* prog = program_new(program_string->str);
+    g_string_free(program_string, TRUE);
 
-    Program* prog = program_new(program_string);
     while(!program_end(prog))
     {
         gchar instruction = program_fetch(prog);
         execute(instruction, prog, t, getChar, putChar);
     }
 
+    program_free(prog);
+    tape_free(t);
 
-    
-    Tape* tt = tape_new();
-    Program* p = program_new("[]");
-    execute('>', p, tt, getChar, putChar);
-    execute('+', p, tt, getChar, putChar);
-    printf("Enter a character\n");
-    execute(',', p, tt, getChar, putChar);
-    printf("Is this your character?\n");
-    execute('.', p, tt, getChar, putChar);
-    printf("%s\n", tape_to_string(tt));
-       
-    Tape* t1 = tape_new();
-    Tape* t2 = tape_new();
-
-    tape_increment(t1);
-    tape_increment(t2);
-    tape_move_forward(t1);
-    tape_move_forward(t2);
-    tape_move_backward(t1);
-    tape_move_backward(t1);
-    tape_move_backward(t2);
-    tape_move_backward(t2);
-    printf("Are equal 1? %s\n", tape_equals(t1, t2) ? "YES" : "NO");
-
-    Tape* tape = tape_new();
-    tape_increment(tape);
-    tape_increment(tape);
-    tape_increment(tape);
-    tape_move_forward(tape);
-    tape_increment(tape);
-    tape_increment(tape);
-    tape_move_backward(tape);
-    tape_move_backward(tape);
-    tape_increment(tape);
-    tape_move_forward(tape);
-    tape_move_forward(tape);
-    printf("%s\n", tape_to_string(tape)); 
-
-    Tape* tape2 = tape_new();
-    tape_move_backward(tape2);
-    tape_increment(tape2);
-    tape_move_forward(tape2);
-    tape_increment(tape2);
-    tape_increment(tape2);
-    tape_increment(tape2);
-    tape_move_forward(tape2);
-    tape_increment(tape2);
-    tape_increment(tape2);
-
-    printf("%s\n", tape_to_string(tape2));
-
-    gboolean equal = tape_equals(tape, tape2);
-    printf("Are equal? %s\n", equal ? "YES" : "NO");
-    tape_free(tape);
-    tape_free(tape2);
-
-    
-
+    printf("\n");
 
 }