Mercurial > urweb
diff src/cjr_print.sml @ 922:d6a71f19a3d8
Find chances to use mstrcat()
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Wed, 09 Sep 2009 08:15:46 -0400 |
parents | 7a4b026e45dd |
children | be6585b4058b |
line wrap: on
line diff
--- a/src/cjr_print.sml Wed Sep 09 08:00:45 2009 -0400 +++ b/src/cjr_print.sml Wed Sep 09 08:15:46 2009 -0400 @@ -1468,6 +1468,24 @@ | EApp ((EReturnBlob {blob, mimeType, t = (TFun (_, ran), _)}, loc), _) => p_exp env (EReturnBlob {blob = blob, mimeType = mimeType, t = ran}, loc) + | EFfiApp ("Basis", "strcat", [e1, e2]) => + let + fun flatten e = + case #1 e of + EFfiApp ("Basis", "strcat", [e1, e2]) => flatten e1 @ flatten e2 + | _ => [e] + in + case flatten e1 @ flatten e2 of + [e1, e2] => box [string "uw_Basis_strcat(ctx, ", + p_exp env e1, + string ",", + p_exp env e2, + string ")"] + | es => box [string "uw_Basis_mstrcat(ctx, ", + p_list (p_exp env) es, + string ", NULL)"] + end + | EFfiApp (m, x, []) => box [string "uw_", p_ident m, string "_",