diff options
Diffstat (limited to 'cps.sml')
| -rw-r--r-- | cps.sml | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -45,7 +45,14 @@ struct Syntax.CApp (f', [x', Syntax.VVar addr])))) end | Syntax.LInt i => cont (Syntax.VInt i) - | Syntax.LString s => cont (Syntax.VString s) + | Syntax.LString s => + let val temp = Gensym.new () + in + Syntax.CRecord + ( [(map (fn c => (Syntax.VInt (Char.ord c), [])) (String.explode s), temp)] + , cont (Syntax.VVar temp) + ) + end | Syntax.LRecord [] => cont (Syntax.VInt 0) | Syntax.LSelect (i, expr) => let val temp = Gensym.new () |
