stringify.ml 515 B

123456789101112131415161718
  1. open Types
  2. let omega = "\207\137"
  3. let string_of_basic ins = ins
  4. let string_of_primitive = function
  5. | Basic ins -> string_of_basic ins
  6. | Terminate -> "!"
  7. | Ptest ins -> "+" ^ string_of_basic ins
  8. | Ntest ins -> "-" ^ string_of_basic ins
  9. | Jump len -> "#" ^ string_of_int len
  10. let rec string_of_program = function
  11. | Primitive p -> string_of_primitive p
  12. | Concat l -> String.concat ";" (List.map string_of_program l)
  13. | Repeat p -> "(" ^ string_of_program p ^ ")" ^ omega
  14. | Empty -> ""