comparison src/flat_print.sml @ 52:198172560b73

FFI through cloconv
author Adam Chlipala <adamc@hcoop.net>
date Sun, 22 Jun 2008 10:17:34 -0400
parents 1c91c5e6840f
children 717b6f8d8505
comparison
equal deleted inserted replaced
51:92361a008a10 52:198172560b73
64 | TNamed n => 64 | TNamed n =>
65 if !debug then 65 if !debug then
66 string (#1 (E.lookupTNamed env n) ^ "__" ^ Int.toString n) 66 string (#1 (E.lookupTNamed env n) ^ "__" ^ Int.toString n)
67 else 67 else
68 string (#1 (E.lookupTNamed env n)) 68 string (#1 (E.lookupTNamed env n))
69 | TFfi (m, x) => box [string "FFI(", string m, string ".", string x, string ")"]
69 70
70 and p_typ env = p_typ' false env 71 and p_typ env = p_typ' false env
71 72
72 fun p_exp' par env (e, _) = 73 fun p_exp' par env (e, _) =
73 case e of 74 case e of
81 | ENamed n => 82 | ENamed n =>
82 if !debug then 83 if !debug then
83 string (#1 (E.lookupENamed env n) ^ "__" ^ Int.toString n) 84 string (#1 (E.lookupENamed env n) ^ "__" ^ Int.toString n)
84 else 85 else
85 string (#1 (E.lookupENamed env n)) 86 string (#1 (E.lookupENamed env n))
87 | EFfi (m, x) => box [string "FFI(", string m, string ".", string x, string ")"]
88 | EFfiApp (m, x, es) => box [string "FFI(",
89 string m,
90 string ".",
91 string x,
92 string "(",
93 p_list (p_exp env) es,
94 string "))"]
86 | ECode n => string ("code$" ^ Int.toString n) 95 | ECode n => string ("code$" ^ Int.toString n)
87 | EApp (e1, e2) => parenIf par (box [p_exp env e1, 96 | EApp (e1, e2) => parenIf par (box [p_exp env e1,
88 space, 97 space,
89 p_exp' true env e2]) 98 p_exp' true env e2])
90 99