cosmetics
This commit is contained in:
@@ -8,12 +8,20 @@ Ast_Node* eval_expr(Ast_Node* node, Environment* env);
|
|||||||
int is_truthy (Ast_Node* expression, Environment* env);
|
int is_truthy (Ast_Node* expression, Environment* env);
|
||||||
|
|
||||||
int list_length(Ast_Node* node) {
|
int list_length(Ast_Node* node) {
|
||||||
|
if (node->type != Ast_Node_Type_Nil)
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (node->type != Ast_Node_Type_Pair) {
|
if (node->type != Ast_Node_Type_Pair) {
|
||||||
create_error(Error_Type_Type_Missmatch, node);
|
create_error(Error_Type_Type_Missmatch, node);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
int len = 1;
|
||||||
|
while (1) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
void eval_operands(Ast_Node* operands, Environment* env) {
|
void eval_operands(Ast_Node* operands, Environment* env) {
|
||||||
|
|||||||
@@ -96,10 +96,10 @@ void print(Ast_Node* node) {
|
|||||||
|
|
||||||
|
|
||||||
void log_error() {
|
void log_error() {
|
||||||
printf("\t%s%s%s\n", console_red,
|
printf("%s%s%s\n", console_red,
|
||||||
Error_Type_to_string(error->type),
|
Error_Type_to_string(error->type),
|
||||||
console_normal);
|
console_normal);
|
||||||
printf("\t in: %s", console_cyan);
|
printf(" in: %s", console_cyan);
|
||||||
print(error->location);
|
print(error->location);
|
||||||
printf("%s\n", console_normal);
|
printf("%s\n", console_normal);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,23 +5,22 @@
|
|||||||
#define fail 0
|
#define fail 0
|
||||||
|
|
||||||
#define print_assert_equal_fail(variable, value, type, format) \
|
#define print_assert_equal_fail(variable, value, type, format) \
|
||||||
printf("\n\tAssertion failed for '" #variable "'" \
|
printf("\nAssertion failed for '" #variable "'" \
|
||||||
"\n\t in %s:%d" \
|
"\n\t in %s:%d" \
|
||||||
"\n\texpected: " format \
|
"\n\texpected: " format \
|
||||||
"\n\tgot: " format "\n", \
|
"\n\tgot: " format "\n", \
|
||||||
__FILE__, __LINE__, (type)value, (type)variable)
|
__FILE__, __LINE__, (type)value, (type)variable)
|
||||||
|
|
||||||
#define print_assert_not_equal_fail(variable, value, type, format) \
|
#define print_assert_not_equal_fail(variable, value, type, format) \
|
||||||
printf("\n\tAssertion failed for '" #variable "'" \
|
printf("\nAssertion failed for '" #variable "'" \
|
||||||
"\n\t in %s:%d" \
|
"\n\t in %s:%d" \
|
||||||
"\n\texpected not: " format \
|
"\n\texpected not: " format \
|
||||||
"\n\tgot anyways: " format "\n", \
|
"\n\tgot anyways: " format "\n", \
|
||||||
__FILE__, __LINE__, (type)value, (type)variable)
|
__FILE__, __LINE__, (type)value, (type)variable)
|
||||||
|
|
||||||
/* print_assert_not_equal_fail(error, 0, int, "%d"); \ */
|
|
||||||
#define assert_no_error(error) \
|
#define assert_no_error(error) \
|
||||||
if (error) { \
|
if (error) { \
|
||||||
printf("\n\tExpected no error to occur," \
|
printf("\nExpected no error to occur," \
|
||||||
" but an error occured anyways:\n"); \
|
" but an error occured anyways:\n"); \
|
||||||
log_error(); \
|
log_error(); \
|
||||||
return fail; \
|
return fail; \
|
||||||
@@ -60,11 +59,14 @@
|
|||||||
|
|
||||||
#define invoke_test(name) \
|
#define invoke_test(name) \
|
||||||
printf("" #name ":"); \
|
printf("" #name ":"); \
|
||||||
for(int i = 0; i < 45 - strlen(#name); ++i) \
|
if (name() == pass) { \
|
||||||
printf(" "); \
|
for(int i = strlen(#name); i < 70; ++i) \
|
||||||
if (name() == pass) \
|
printf((i%3==1)? "." : " "); \
|
||||||
printf("%spassed%s\n", console_green, console_normal); \
|
printf("%spassed%s\n", console_green, console_normal); \
|
||||||
|
} \
|
||||||
else { \
|
else { \
|
||||||
|
for(int i = -1; i < 70; ++i) \
|
||||||
|
printf((i%3==1)? "." : " "); \
|
||||||
printf("%sfailed%s\n", console_red, console_normal); \
|
printf("%sfailed%s\n", console_red, console_normal); \
|
||||||
if(error) { \
|
if(error) { \
|
||||||
free(error); \
|
free(error); \
|
||||||
|
|||||||
Reference in New Issue
Block a user