]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/pxp/pxp/rtests/dumpfiles.ml
Initial revision
[helm.git] / helm / DEVEL / pxp / pxp / rtests / dumpfiles.ml
diff --git a/helm/DEVEL/pxp/pxp/rtests/dumpfiles.ml b/helm/DEVEL/pxp/pxp/rtests/dumpfiles.ml
new file mode 100644 (file)
index 0000000..d5f9e50
--- /dev/null
@@ -0,0 +1,56 @@
+
+
+let dump_file name =
+  let ch = open_in_bin name in
+  let len = in_channel_length ch in
+  let sin = String.create len in
+  really_input ch sin 0 len;
+  close_in ch;
+
+  Printf.printf "\\noindent\\begin{minipage}{5.5cm}\n";
+  (* Printf.printf "\\rule{5.5cm}{1pt}\n"; *)
+  Printf.printf "\\footnotesize\\bf File %s:\\\\\n" name;
+  Printf.printf "\\tt{}";
+  
+  for i = 0 to len - 1 do
+    match sin.[i] with
+       ('\000'..'\008'|'\011'|'\012'|'\014'..'\031'|'\127'..'\255') as c ->
+         Printf.printf "{\\sl (%02x)}\\linebreak[2]" (Char.code c)
+      | '\009' ->
+         Printf.printf "{\\sl HT}\\linebreak[3]"
+      | '\010' ->
+         Printf.printf "{\\sl LF}\\\\\n"
+      | '\013' ->
+         Printf.printf "{\\sl CR}";
+         if not(i < len - 1 && sin.[i+1] = '\010') then
+           Printf.printf "\\\\\n";
+      | ' ' ->
+         Printf.printf "\\symbol{32}\\linebreak[3]"
+
+      | ('"'|'#'|'$'|'%'|'&'|'-'|'<'|'>'|'['|'\\'|']'|'^'|'_'|'`'|
+        '{'|'|'|'}'|'~') as c ->
+         Printf.printf "\\symbol{%d}\\linebreak[2]" (Char.code c)
+      | c ->
+         print_char c;
+         print_string "\\linebreak[0]"
+  done;
+
+  Printf.printf "\\mbox{}\\\\\n";
+  Printf.printf "\\rule{5.5cm}{1pt}\n";
+  Printf.printf "\\end{minipage}\n"
+;;
+
+
+print_endline "\\documentclass[a4paper]{article}";
+print_endline "\\usepackage{multicol}";
+print_endline "\\begin{document}";
+print_endline "\\begin{multicols}{2}";
+for i = 1 to Array.length(Sys.argv)-1 do
+  dump_file Sys.argv.(i)
+done;
+print_endline "\\end{multicols}";
+print_endline "\\end{document}"
+;;
+
+
+