Додате функције у сврху дебагирања, и мање стилске промене

This commit is contained in:
kappa 2019-11-03 14:02:03 +01:00
parent 4228b81870
commit bd36290735
3 changed files with 32 additions and 4 deletions

View file

@ -4,7 +4,7 @@ LIBPREFIX = $(PREFIX)/lib
# флегови за C компајлер и линкер # флегови за C компајлер и линкер
CPPFLAGS = -D_POSIX_C_SOURCE=2 -DDESTDIR=\"$(DESTDIR)\" -DVERSION=\"$(VERSION)\" CPPFLAGS = -D_POSIX_C_SOURCE=2 -DDESTDIR=\"$(DESTDIR)\" -DVERSION=\"$(VERSION)\"
# CFLAGS = -g -std=c99 -pedantic -Wall -Wextra -Wno-maybe-uninitialized -O0 # CFLAGS = -DDEBUG -g -std=c99 -pedantic -Wall -Wextra -Wno-maybe-uninitialized -O0
CFLAGS = -std=c99 -pedantic -Wall -Wextra -Wno-maybe-uninitialized -O3 CFLAGS = -std=c99 -pedantic -Wall -Wextra -Wno-maybe-uninitialized -O3
LDFLAGS = -lm LDFLAGS = -lm

View file

@ -168,8 +168,9 @@ int main(int argc, char **argv)
} }
printf("Добродошли у ЋИРИЛИСП ЧПШП окружење, верзија: " VERSION "\n"); printf("Добродошли у ЋИРИЛИСП ЧПШП окружење, верзија: " VERSION "\n");
while (Print(Eval(Read("Ћ> ", stdin), globalEnv))) object current;
; while (Print(current = Eval(Read("Ћ> ", stdin), globalEnv)))
deleteObject(current);
printf("\nДостигнут крај улазног тока.\nЗбогом и дођите нам опет!\n"); printf("\nДостигнут крај улазног тока.\nЗбогом и дођите нам опет!\n");
exitCirilisp(0); exitCirilisp(0);

29
print.c
View file

@ -20,7 +20,7 @@ int Print(object input)
printValue(input); printValue(input);
printf("\n\n"); printf("\n\n");
} }
deleteObject(input);
return 1; return 1;
} }
@ -101,3 +101,30 @@ void printValue(object input)
break; break;
} }
} }
#ifdef DEBUG
void PrintEntry(entry *e)
{
if (e == NULL)
{
return;
}
PrintEntry(e->left);
printf("%s: ", e->name);
Print(e->value);
PrintEntry(e->right);
}
void PrintEnv(env environment)
{
printf("%p", (void *) environment);
env enclosings = environment->enclosing;
while (enclosings != NULL)
{
printf(" <-- %p", (void *) enclosings);
enclosings = enclosings->enclosing;
}
printf("\n");
PrintEntry(environment->table);
}
#endif