comparison src/monoize.sml @ 1602:e44be6ece475

COALESCE
author Adam Chlipala <adam@chlipala.net>
date Sat, 19 Nov 2011 10:43:57 -0500
parents 34364e383bed
children da788bd72c9e
comparison
equal deleted inserted replaced
1601:78e0d56b594e 1602:e44be6ece475
2806 2806
2807 | (L.ECApp ( 2807 | (L.ECApp (
2808 (L.ECApp ( 2808 (L.ECApp (
2809 (L.ECApp ( 2809 (L.ECApp (
2810 (L.ECApp ( 2810 (L.ECApp (
2811 (L.EFfi ("Basis", "sql_coalesce"), _), _),
2812 _), _),
2813 _), _),
2814 _), _)) =>
2815 let
2816 val s = (L'.TFfi ("Basis", "string"), loc)
2817 fun sc s = (L'.EPrim (Prim.String s), loc)
2818 in
2819 ((L'.EAbs ("x1", s, (L'.TFun (s, s), loc),
2820 (L'.EAbs ("x1", s, s,
2821 strcat [sc "COALESCE(",
2822 (L'.ERel 1, loc),
2823 sc ",",
2824 (L'.ERel 0, loc),
2825 sc ")"]), loc)), loc),
2826 fm)
2827 end
2828
2829 | (L.ECApp (
2830 (L.ECApp (
2831 (L.ECApp (
2832 (L.ECApp (
2811 (L.EFfi ("Basis", "sql_if_then_else"), _), _), 2833 (L.EFfi ("Basis", "sql_if_then_else"), _), _),
2812 _), _), 2834 _), _),
2813 _), _), 2835 _), _),
2814 _), _)) => 2836 _), _)) =>
2815 let 2837 let