Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/src/compiler/DebugProf/profile/btrace.sml
ViewVC logotype

Diff of /sml/trunk/src/compiler/DebugProf/profile/btrace.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1640, Fri Oct 1 15:20:40 2004 UTC revision 1641, Wed Oct 6 20:18:55 2004 UTC
# Line 227  Line 227 
227                                                    VARexp result]))                                                    VARexp result]))
228                      end                      end
229              end              end
230            | i_exp tail loc (A.HANDLEexp (e, A.HANDLER (A.FNexp (rl, t)))) = let            | i_exp tail loc (A.HANDLEexp (e, (rl, t))) = let
231                  val restore = tmpvar ("tmprestore", u_u_Ty)                  val restore = tmpvar ("tmprestore", u_u_Ty)
232                  fun rule (r as A.RULE (p, e)) =                  fun rule (r as A.RULE (p, e)) =
233                      if is_raise_exp e then r                      if is_raise_exp e then r
234                      else A.RULE (p, A.SEQexp [AUexp restore, i_exp tail loc e])                      else A.RULE (p, A.SEQexp [AUexp restore, i_exp tail loc e])
235              in              in
236                  LETexp (restore, saveexp,                  LETexp (restore, saveexp,
237                          A.HANDLEexp (i_exp false loc e,                          A.HANDLEexp (i_exp false loc e, (map rule rl, t)))
                                      A.HANDLER (A.FNexp (map rule rl, t))))  
238              end              end
           | i_exp _ _ (A.HANDLEexp _) = impossible "bad HANDLEexp"  
239            | i_exp _ loc (A.RAISEexp (e, t)) =            | i_exp _ loc (A.RAISEexp (e, t)) =
240              A.RAISEexp (i_exp false loc e, t)              A.RAISEexp (i_exp false loc e, t)
241            | i_exp tail loc (A.CASEexp (e, rl, b)) =            | i_exp tail loc (A.CASEexp (e, rl, b)) =
# Line 280  Line 278 
278              A.CONSTRAINTexp (i_exp tail loc e, t)              A.CONSTRAINTexp (i_exp tail loc e, t)
279            | i_exp tail (n, _) (A.MARKexp (e, r)) =            | i_exp tail (n, _) (A.MARKexp (e, r)) =
280              A.MARKexp (i_exp tail (n, r) e, r)              A.MARKexp (i_exp tail (n, r) e, r)
281            | i_exp _ _ e = e            | i_exp _ _ (e as (A.VARexp _ | A.CONexp _ | A.INTexp _ |
282                                 A.WORDexp _ | A.REALexp _ | A.STRINGexp _ |
283                                 A.CHARexp _)) = e
284    
285          and i_dec loc (A.VALdec l) = A.VALdec (map (i_vb loc) l)          and i_dec loc (A.VALdec l) = A.VALdec (map (i_vb loc) l)
286            | i_dec loc (A.VALRECdec l) = A.VALRECdec (map (i_rvb loc) l)            | i_dec loc (A.VALRECdec l) = A.VALRECdec (map (i_rvb loc) l)
# Line 295  Line 295 
295              A.LOCALdec (i_dec loc d, i_dec loc d')              A.LOCALdec (i_dec loc d, i_dec loc d')
296            | i_dec loc (A.SEQdec l) = A.SEQdec (map (i_dec loc) l)            | i_dec loc (A.SEQdec l) = A.SEQdec (map (i_dec loc) l)
297            | i_dec (n, _) (A.MARKdec (d, r)) = A.MARKdec (i_dec (n, r) d, r)            | i_dec (n, _) (A.MARKdec (d, r)) = A.MARKdec (i_dec (n, r) d, r)
298            | i_dec _ d = d            | i_dec _ (d as (A.TYPEdec _ | A.DATATYPEdec _ |
299                               A.SIGdec _ | A.FSIGdec _ | A.OPENdec _ |
300                               A.OVLDdec _ | A.FIXdec _)) = d
301    
302          and i_rule tail loc (A.RULE (p, e)) = A.RULE (p, i_exp tail loc e)          and i_rule tail loc (A.RULE (p, e)) = A.RULE (p, i_exp tail loc e)
303    

Legend:
Removed from v.1640  
changed lines
  Added in v.1641

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0