lisp: implement TAG_VEC lisp_print method
This commit is contained in:
26
src/lisp.c
26
src/lisp.c
@@ -217,8 +217,34 @@ void lisp_print(FILE *fp, lisp_t *lisp)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TAG_VEC:
|
case TAG_VEC:
|
||||||
|
{
|
||||||
|
#if VERBOSE_LOGS
|
||||||
|
fprintf(fp, "VEC[");
|
||||||
|
#else
|
||||||
|
fprintf(fp, "[");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
vec_t *vec = as_vec(lisp);
|
||||||
|
for (u64 i = 1; i <= VEC_SIZE(vec, lisp_t *); ++i)
|
||||||
|
{
|
||||||
|
lisp_t *item = VEC_GET(vec, i - 1, lisp_t *);
|
||||||
|
lisp_print(fp, item);
|
||||||
|
if (i != VEC_SIZE(vec, lisp_t *))
|
||||||
|
{
|
||||||
|
fprintf(fp, " ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#if VERBOSE_LOGS
|
||||||
|
fprintf(fp, "]");
|
||||||
|
#else
|
||||||
|
fprintf(fp, "]");
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case NUM_TAGS:
|
case NUM_TAGS:
|
||||||
|
default:
|
||||||
|
FAIL("Unreachable");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user