-
Notifications
You must be signed in to change notification settings - Fork 0
/
kladd.txt
31 lines (26 loc) · 1.3 KB
/
kladd.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
let rec print_int_list (l : int list) =
match l with
[] -> printf "\n"
| _ -> printf "%d" (List.hd l); print_int_list (List.tl l)
let rec print_char_list (l : char list) =
match l with
[] -> printf "\n"
| _ -> printf "\ne: %d, " (Char.code (List.hd l)); print_char_list (List.tl l)
(************************************* debug **********************************)
let pretty_print (program : instr list) =
let rec pretty_print (program : instr list) (indent : string) =
print_string ("\n" ^ indent);
match program with
[] -> ()
| (Next i)::xs -> printf "Next %d" i; pretty_print xs indent
| (Prev i)::xs -> printf "Prev %d" i; pretty_print xs indent
| (Plus i)::xs -> printf "Plus %d" i; pretty_print xs indent
| (Minus i)::xs -> printf "Minus %d" i; pretty_print xs indent
| Input::xs -> printf "Input"; pretty_print xs indent
| Output::xs -> printf "Output"; pretty_print xs indent
| (Loop instrs)::xs -> printf "Loop [";
pretty_print instrs (" " ^ indent);
printf "]";
pretty_print xs indent
in
pretty_print program ""