bbc-basic: Minimal step 1.
[jackhill/mal.git] / bbc-basic / printer
1 REM Printer library for mal in BBC BASIC
2
3 DEF FNpr_str(val%)
4 LOCAL ret$
5 IF FNis_int(val%) THEN =STR$(FNunbox_int(val%))
6 IF FNis_symbol(val%) THEN =FNunbox_symbol(val%)
7 IF FNis_list(val%) THEN
8 ret$ = "("
9 WHILE NOT FNis_empty(val%)
10 IF LEN(ret$) > 1 THEN ret$ += " "
11 ret$ += FNpr_str(FNlist_car(val%))
12 val% = FNlist_cdr(val%)
13 ENDWHILE
14 =ret$ + ")"
15 ENDIF
16 ERROR 1, "Unprintable value"