Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/ein16/src/compiler/high-il/normalize-ein.sml
ViewVC logotype

Diff of /branches/ein16/src/compiler/high-il/normalize-ein.sml

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

revision 2506, Fri Nov 8 00:05:57 2013 UTC revision 2507, Mon Nov 11 20:03:02 2013 UTC
# Line 398  Line 398 
398                          end                          end
399                      (*end case*))                      (*end case*))
400                  end                  end
401                | E.Prod[e1,e2]=> E.Prod[rewriteBody e1, rewriteBody e2]                | E.Prod[e1,e2]=> let val (_,b)=mkProd[rewriteBody e1, rewriteBody e2] in b end
402                | E.Prod(e::es)=>let                | E.Prod(e::es)=>let
403                      val e'=rewriteBody e                      val e'=rewriteBody e
404                      val e2=rewriteBody(E.Prod es)                      val e2=rewriteBody(E.Prod es)
# Line 503  Line 503 
503                  (changed:=true;E.Sub(rewriteBody(E.Probe(a,x)), rewriteBody(E.Probe(b,x))))                  (changed:=true;E.Sub(rewriteBody(E.Probe(a,x)), rewriteBody(E.Probe(b,x))))
504              | E.Probe(E.Div (a,b),x) =>              | E.Probe(E.Div (a,b),x) =>
505                  (changed:=true;E.Div(rewriteBody(E.Probe(a, x)),b))                  (changed:=true;E.Div(rewriteBody(E.Probe(a, x)),b))
   
   
   
                 (*  
                 | E.Probe(E.Prod([E.Sum s] @es),x)  
                 | E.Probe(E.Prod([E.Neg e] @es),x)  
                   | E.Probe(E.Prod([E.Apply e] @es),x) needs to be rewritten  
                 *)  
   
   
             (*Should be taken care of in next rule.  
             | E.Probe(E.Prod([E.Add e] @es),x)  
             | E.Probe(E.Prod([E.Sub (e1,e2)] @es),x)=>  
             | E.Probe(E.Prod([E.Div e] @es),x)=>  
             *)  
   
   
   
506              | E.Probe(E.Prod p, x)=>let              | E.Probe(E.Prod p, x)=>let
507                  val (p',x')= (rewriteBody (E.Prod p), rewriteBody x)                  val (p',x')= (rewriteBody (E.Prod p), rewriteBody x)
508                  fun  probeprod([],rest) =                  fun  probeprod([],rest) =

Legend:
Removed from v.2506  
changed lines
  Added in v.2507

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