| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- open Types
- let utf8_omega = "\xcf\x89"
- let utf8_pound = "\xc2\xa3"
- let utf8_super = [|
- "\xe2\x81\xb0"; "\xc2\xb9"; "\xc2\xb2"; "\xc2\xb3"; "\xe2\x81\xb4";
- "\xe2\x81\xb5"; "\xe2\x81\xb6"; "\xe2\x81\xb7"; "\xe2\x81\xb8"; "\xe2\x81\xb9"
- |]
- let cat string_of_ins instrs =
- "(" ^ String.concat ";" (List.map string_of_ins instrs) ^ ")"
- let rec string_of_ins_ascii = function
- | Basic c -> Char.escaped c
- | Terminate -> "!"
- | Ptest c -> "+" ^ Char.escaped c
- | Ntest c -> "-" ^ Char.escaped c
- | Jump len -> "#" ^ string_of_int len
- | Concat l -> cat string_of_ins_ascii l
- | Repeat (i, n) -> string_of_ins_ascii i ^ string_of_int n
- | Loop i -> string_of_ins_ascii i ^ "*"
- | Program c -> Char.escaped c
- | Empty -> ""
- let rec string_of_ins_utf8 = function
- | Concat l -> cat string_of_ins_utf8 l
- | Repeat (i, n) when n <= 9 -> string_of_ins_utf8 i ^ utf8_super.(n)
- | Loop i -> string_of_ins_utf8 i ^ utf8_omega
- | i -> string_of_ins_ascii i
- let rec string_of_ins_latex = function
- | Concat l -> cat string_of_ins_latex l
- | Repeat (i, n) -> string_of_ins_latex i ^ "^{" ^ string_of_int n ^ "}"
- | Loop i -> string_of_ins_latex i ^ "^\\omega"
- | i -> string_of_ins_ascii i
- let string_of_program_ascii instrs =
- String.concat ";" (List.map string_of_ins_ascii instrs)
- let string_of_program_utf8 instrs =
- String.concat ";" (List.map string_of_ins_utf8 instrs)
- let string_of_program_latex instrs =
- "$" ^ String.concat ";" (List.map string_of_ins_latex instrs) ^ "$"
- let string_of_natural = function
- | N i -> string_of_int i
- | Infinity -> "oo"
|