comparison src/monoize.sml @ 395:9f67aac13cf7

ord_string
author Adam Chlipala <adamc@hcoop.net>
date Tue, 21 Oct 2008 11:22:10 -0400
parents 9f6fe6f32961
children 8084fa9216de
comparison
equal deleted inserted replaced
394:9f6fe6f32961 395:9f67aac13cf7
756 (L'.EAbs ("y", (L'.TFfi ("Basis", "bool"), loc), 756 (L'.EAbs ("y", (L'.TFfi ("Basis", "bool"), loc),
757 (L'.TFfi ("Basis", "bool"), loc), 757 (L'.TFfi ("Basis", "bool"), loc),
758 (L'.EBinop (s, (L'.ERel 1, loc), (L'.ERel 0, loc)), loc)), loc)), loc) 758 (L'.EBinop (s, (L'.ERel 1, loc), (L'.ERel 0, loc)), loc)), loc)), loc)
759 in 759 in
760 ordEx ((L'.TFfi ("Basis", "bool"), loc), 760 ordEx ((L'.TFfi ("Basis", "bool"), loc),
761 boolBin "<",
762 boolBin "<=")
763 end
764 | L.EFfi ("Basis", "ord_string") =>
765 let
766 fun boolBin s =
767 (L'.EAbs ("x", (L'.TFfi ("Basis", "string"), loc),
768 (L'.TFun ((L'.TFfi ("Basis", "string"), loc), (L'.TFfi ("Basis", "bool"), loc)), loc),
769 (L'.EAbs ("y", (L'.TFfi ("Basis", "string"), loc),
770 (L'.TFfi ("Basis", "bool"), loc),
771 (L'.EBinop (s,
772 (L'.EBinop ("strcmp",
773 (L'.ERel 1, loc),
774 (L'.ERel 0, loc)), loc),
775 (L'.EPrim (Prim.Int (Int64.fromInt 0)), loc)), loc)), loc)), loc)
776 in
777 ordEx ((L'.TFfi ("Basis", "string"), loc),
761 boolBin "<", 778 boolBin "<",
762 boolBin "<=") 779 boolBin "<=")
763 end 780 end
764 781
765 | L.ECApp ((L.EFfi ("Basis", "show"), _), t) => 782 | L.ECApp ((L.EFfi ("Basis", "show"), _), t) =>