summaryrefslogtreecommitdiffstats
path: root/cps.sml
diff options
context:
space:
mode:
authorRose Hogenson <rosehogenson@posteo.net>2025-05-16 16:43:49 -0700
committerRose Hogenson <rosehogenson@posteo.net>2025-05-16 16:46:51 -0700
commitff12ef4eea67453c1a6c1fa4614b74adf7c3caca (patch)
tree64911f7bb622075ce740c5ac4d1559295845f7d1 /cps.sml
parent907ade52d0703e95b2e29bd8933b1f57a3ba3e09 (diff)
downloadsml-ff12ef4eea67453c1a6c1fa4614b74adf7c3caca.tar.zst
Fix spelling in GenSym
Diffstat (limited to 'cps.sml')
-rw-r--r--cps.sml38
1 files changed, 19 insertions, 19 deletions
diff --git a/cps.sml b/cps.sml
index 2d9d85d..13dbbe8 100644
--- a/cps.sml
+++ b/cps.sml
@@ -5,8 +5,8 @@ struct
Syntax.LVar v => cont (Syntax.VVar v)
| Syntax.LFn (v, expr) =>
let
- val fnName = Gensym.new ()
- val k = Gensym.new ()
+ val fnName = GenSym.new ()
+ val k = GenSym.new ()
in
Syntax.CFix
([(fnName, [v, k], toCPS expr (fn ret => Syntax.CApp (Syntax.VVar k, [ret])))],
@@ -16,7 +16,7 @@ struct
Syntax.CFix
( map
(fn (name, arg, expr) =>
- let val w = Gensym.new ()
+ let val w = GenSym.new ()
in
( name
, [arg, w]
@@ -28,7 +28,7 @@ struct
)
| Syntax.LApp (Syntax.LPrim primop, Syntax.LRecord args) =>
let
- val temp = Gensym.new ()
+ val temp = GenSym.new ()
fun go [] acc = Syntax.CPrimop (primop, rev acc, [temp], [cont (Syntax.VVar temp)])
| go (arg :: args) acc = toCPS arg (fn arg' => go args (arg' :: acc))
in go args []
@@ -36,8 +36,8 @@ struct
| Syntax.LApp (Syntax.LPrim primop, arg) => toCPS (Syntax.LApp (Syntax.LPrim primop, Syntax.LRecord [arg])) cont
| Syntax.LApp (f, x) =>
let
- val addr = Gensym.new ()
- val arg = Gensym.new ()
+ val addr = GenSym.new ()
+ val arg = GenSym.new ()
in Syntax.CFix
([(addr, [arg], cont (Syntax.VVar arg))],
toCPS f (fn f' =>
@@ -46,7 +46,7 @@ struct
end
| Syntax.LInt i => cont (Syntax.VInt i)
| Syntax.LString s =>
- let val temp = Gensym.new ()
+ let val temp = GenSym.new ()
in
Syntax.CRecord
( [(map (fn c => (Syntax.VInt (Char.ord c), [])) (String.explode s), temp)]
@@ -55,13 +55,13 @@ struct
end
| Syntax.LRecord [] => cont (Syntax.VInt 0)
| Syntax.LSelect (i, expr) =>
- let val temp = Gensym.new ()
+ let val temp = GenSym.new ()
in toCPS expr (fn x => Syntax.CSelect (i, x, temp, cont (Syntax.VVar temp)))
end
| Syntax.LRecord exprs =>
let
fun go [] vars =
- let val temp = Gensym.new ()
+ let val temp = GenSym.new ()
in Syntax.CRecord ([(map (fn v => (v, [])) (rev vars), temp)], cont (Syntax.VVar temp))
end
| go (expr :: exprs) vars =
@@ -71,15 +71,15 @@ struct
| Syntax.LSwitch (expr, arms, otherwise) =>
let
val sortedArms = Sort.sort (fn ((x, _), (y, _)) => Int.compare (x, y)) arms
- val contAddr = Gensym.new ()
- val otherwiseAddr = Gensym.new ()
- val arg = Gensym.new ()
+ val contAddr = GenSym.new ()
+ val otherwiseAddr = GenSym.new ()
+ val arg = GenSym.new ()
fun go _ [] cont = Syntax.CApp (Syntax.VVar otherwiseAddr, [])
| go v [(x, arm)] cont =
(case otherwise of
NONE => toCPS arm cont
| SOME _ =>
- let val b = Gensym.new ()
+ let val b = GenSym.new ()
in
Syntax.CPrimop
( Syntax.PEq
@@ -96,7 +96,7 @@ struct
end)
| go v arms cont =
let
- val b = Gensym.new ()
+ val b = GenSym.new ()
val h = length arms div 2
val half1 = List.take (arms, h)
val half2 = List.drop (arms, h)
@@ -143,7 +143,7 @@ struct
| funs (Syntax.CFix (fs, body)) acc =
funs body (foldl (fn ((fName, fVars, fBody), acc) => (fName, fVars, exprs fBody) :: funs fBody acc) acc fs)
| funs (Syntax.CPrimop (_, _, _, ks)) acc = foldl (fn (x, acc) => funs x acc) acc ks
- val entryPoint = Gensym.new ()
+ val entryPoint = GenSym.new ()
in
Syntax.CFix ((entryPoint, [], exprs expr) :: funs expr [], Syntax.CApp (Syntax.VLabel entryPoint, []))
end
@@ -227,7 +227,7 @@ struct
Syntax.CSelect (i, translateValue arg, res, convertExpr varMap k)
| Syntax.CApp (func, args) =>
let
- val temp = Gensym.new ()
+ val temp = GenSym.new ()
val f = translateValue func
in Syntax.CSelect (0, f, temp,
Syntax.CApp (Syntax.VVar temp, f :: map translateValue args))
@@ -239,15 +239,15 @@ struct
(fn this as (name, args, body) =>
let
val funcFreeVars = freeVarsClosure this
- val varMap' = VarMap.union varMap (VarMap.fromList (map (fn v => (v, Gensym.new ())) funcFreeVars))
- val closure = Gensym.new ()
+ val varMap' = VarMap.union varMap (VarMap.fromList (map (fn v => (v, GenSym.new ())) funcFreeVars))
+ val closure = GenSym.new ()
val newBody =
foldl
(fn ((i, x), acc) => Syntax.CSelect (i + 1, Syntax.VVar closure, valOf (VarMap.lookup x varMap'), acc))
(convertExpr varMap' body)
(enumerate funcFreeVars)
in
- (Gensym.new (), closure :: args, newBody)
+ (GenSym.new (), closure :: args, newBody)
end)
funcs
val newBody =