1234567891011121314151617181920212223242526272829303132333435363738(***********************************************************************)(* *)(* Objective Caml *)(* *)(* François Pessaux, projet Cristal, INRIA Rocquencourt *)(* Pierre Weis, projet Cristal, INRIA Rocquencourt *)(* Jun Furuse, projet Cristal, INRIA Rocquencourt *)(* *)(* Copyright 1999-2004, *)(* Institut National de Recherche en Informatique et en Automatique. *)(* Distributed only by permission. *)(* *)(***********************************************************************)(* $Id: units.ml,v 1.1 2006/11/28 15:43:28 rousse Exp $ *)letinch_cm=2.54letinch_pt=72.0letunits=["mm",0.1/.inch_cm*.inch_pt;"cm",1.0/.inch_cm*.inch_pt;"pt",1.0;"in",inch_pt;]letparse_lengths=(* return in pt *)letv=letl=String.lengthsinletdigit,unit=ifl>2thenString.subs02,String.subs(l-2)2else"",""intry(List.assoc(String.lowercaseunit)units)*.float_of_stringdigitwith|Not_found->(* think it is in "pt" *)float_of_stringsinprerr_endline(Printf.sprintf"%s -> %fpt"sv);v