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/Semant/pickle/unpickmod.sml
ViewVC logotype

Diff of /sml/trunk/src/compiler/Semant/pickle/unpickmod.sml

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

revision 217, Sun Feb 28 23:41:30 1999 UTC revision 218, Tue Mar 2 08:12:06 1999 UTC
# Line 194  Line 194 
194    
195  val boolList = list(?bool, fn Ubool t => t, fn UboolList t => t, UboolList)  val boolList = list(?bool, fn Ubool t => t, fn UboolList t => t, UboolList)
196    
197  fun lvar #"x" = R.int (%Ulvar)  val lvar = R.int
198    | lvar _ = raise Fail "    | lvar"  val lvarList = list (fn f => R.int(f o Ulvar),
199                         fn Ulvar v => v,
200  val lvarList = list (?lvar, fn Ulvar v => v, fn UlvarList l => l, UlvarList)                       fn UlvarList l => l,
201                         UlvarList)
202    
203  fun numkind #"I" = R.int(fn i => %Unumkind(P.INT i))  fun numkind #"I" = R.int(fn i => %Unumkind(P.INT i))
204    | numkind #"U" = R.int(fn i => %Unumkind(P.UINT i))    | numkind #"U" = R.int(fn i => %Unumkind(P.UINT i))
# Line 429  Line 430 
430      and tyc #"A" = R.int (fn i => R.int (fn j =>      and tyc #"A" = R.int (fn i => R.int (fn j =>
431                        %Utyc (LT.tcc_var (DI.di_fromint i, j))))                        %Utyc (LT.tcc_var (DI.di_fromint i, j))))
432        | tyc #"B" = R.int (fn v =>        | tyc #"B" = R.int (fn v =>
433                       R.int (fn d =>                            %Utyc (LT.tcc_nvar v))
                        R.int (fn i =>  
                          %Utyc (LT.tcc_nvar v))))  
434        | tyc #"C" = R.int (fn k => %Utyc (LT.tcc_prim (PT.pt_fromint k)))        | tyc #"C" = R.int (fn k => %Utyc (LT.tcc_prim (PT.pt_fromint k)))
435        | tyc #"D" = ?tkindList (fn UtkindList ks =>        | tyc #"D" = ?tkindList (fn UtkindList ks =>
436                        ?tyc (fn Utyc tc => %Utyc(LT.tcc_fn(ks, tc))))                        ?tyc (fn Utyc tc => %Utyc(LT.tcc_fn(ks, tc))))
# Line 493  Line 492 
492                  fn UtycsLvarPairList t => t, UtycsLvarPairList) x                  fn UtycsLvarPairList t => t, UtycsLvarPairList) x
493    
494      fun con #"." = ?dcon (fn Udcon (dc, ts) =>      fun con #"." = ?dcon (fn Udcon (dc, ts) =>
495                      ?lvar (fn Ulvar v  =>                      lvar (fn v  =>
496                       ?lexp (fn Ulexp e =>                       ?lexp (fn Ulexp e =>
497                        %Ucon (F.DATAcon (dc, ts, v), e))))                        %Ucon (F.DATAcon (dc, ts, v), e))))
498        | con #"," = R.int (fn i =>        | con #"," = R.int (fn i =>
# Line 580  Line 579 
579                          %Ulexp (F.SWITCH (v, crl, cel, eo))))))                          %Ulexp (F.SWITCH (v, crl, cel, eo))))))
580        | lexp #"q" = ?dcon (fn Udcon (c, ts) =>        | lexp #"q" = ?dcon (fn Udcon (c, ts) =>
581                       ?value (fn Uvalue u =>                       ?value (fn Uvalue u =>
582                        ?lvar (fn Ulvar v =>                        lvar (fn v =>
583                         ?lexp (fn Ulexp e =>                         ?lexp (fn Ulexp e =>
584                          %Ulexp (F.CON (c, ts, u, v,e ))))))                          %Ulexp (F.CON (c, ts, u, v,e ))))))
585        | lexp #"r" = ?rkind (fn Urkind rk =>        | lexp #"r" = ?rkind (fn Urkind rk =>
586                       ?valueList (fn UvalueList vl =>                       ?valueList (fn UvalueList vl =>
587                        ?lvar (fn Ulvar v =>                        lvar (fn v =>
588                         ?lexp (fn Ulexp e =>                         ?lexp (fn Ulexp e =>
589                          %Ulexp (F.RECORD(rk, vl, v, e))))))                          %Ulexp (F.RECORD(rk, vl, v, e))))))
590        | lexp #"s" = ?value (fn Uvalue u =>        | lexp #"s" = ?value (fn Uvalue u =>
591                        R.int (fn i =>                        R.int (fn i =>
592                         ?lvar (fn Ulvar v =>                         lvar (fn v =>
593                          ?lexp (fn Ulexp e =>                          ?lexp (fn Ulexp e =>
594                           %Ulexp (F.SELECT(u, i, v, e))))))                           %Ulexp (F.SELECT(u, i, v, e))))))
595        | lexp #"t" = ?value (fn Uvalue v =>        | lexp #"t" = ?value (fn Uvalue v =>
# Line 606  Line 605 
605                          %Ulexp (F.BRANCH(p, vs, e1, e2))))))                          %Ulexp (F.BRANCH(p, vs, e1, e2))))))
606        | lexp #"w" = ?fprim (fn Ufprim p =>        | lexp #"w" = ?fprim (fn Ufprim p =>
607                       ?valueList (fn UvalueList vs =>                       ?valueList (fn UvalueList vs =>
608                        ?lvar (fn Ulvar v =>                        lvar (fn v =>
609                         ?lexp (fn Ulexp e =>                         ?lexp (fn Ulexp e =>
610                          %Ulexp (F.PRIMOP(p, vs, v, e))))))                          %Ulexp (F.PRIMOP(p, vs, v, e))))))
611        | lexp _ = raise Fail "    | lexp"        | lexp _ = raise Fail "    | lexp"
# Line 620  Line 619 
619        | lexpOption _ = raise Fail "    | lexpOption"        | lexpOption _ = raise Fail "    | lexpOption"
620    
621      and fundec #"0" = ?fkind (fn Ufkind fk =>      and fundec #"0" = ?fkind (fn Ufkind fk =>
622                         ?lvar (fn Ulvar v =>                         lvar (fn v =>
623                          ?lvarLtyPairList (fn UlvarLtyPairList vts =>                          ?lvarLtyPairList (fn UlvarLtyPairList vts =>
624                           ?lexp (fn Ulexp e =>                           ?lexp (fn Ulexp e =>
625                             %Ufundec (fk, v, vts, e)))))                             %Ufundec (fk, v, vts, e)))))
# Line 634  Line 633 
633          list (?fundec, fn Ufundec x => x, fn UfundecList l => l,          list (?fundec, fn Ufundec x => x, fn UfundecList l => l,
634                UfundecList) x                UfundecList) x
635    
636      and lvarLtyPair #"T" = ?lvar (fn Ulvar v =>      and lvarLtyPair #"T" = lvar (fn v =>
637                              ?lty (fn Ulty t => %UlvarLtyPair (v, t)))                              ?lty (fn Ulty t => %UlvarLtyPair (v, t)))
638        | lvarLtyPair _ = raise Fail "   | lvarLtyPair"        | lvarLtyPair _ = raise Fail "   | lvarLtyPair"
639    
# Line 642  Line 641 
641          list (?lvarLtyPair, fn UlvarLtyPair x => x, fn UlvarLtyPairList l => l,          list (?lvarLtyPair, fn UlvarLtyPair x => x, fn UlvarLtyPairList l => l,
642                UlvarLtyPairList) x                UlvarLtyPairList) x
643    
644      and tvarTkPair #"T" = ?lvar (fn Ulvar tv =>      and tvarTkPair #"T" = lvar (fn tv =>
645                             ?tkind (fn Utkind tk => %UtvarTkPair (tv, tk)))                             ?tkind (fn Utkind tk => %UtvarTkPair (tv, tk)))
646        | tvarTkPair _ = raise Fail "   | tvarTkPair"        | tvarTkPair _ = raise Fail "   | tvarTkPair"
647    
# Line 650  Line 649 
649          list (?tvarTkPair, fn UtvarTkPair x => x, fn UtvarTkPairList l => l,          list (?tvarTkPair, fn UtvarTkPair x => x, fn UtvarTkPairList l => l,
650                UtvarTkPairList) x                UtvarTkPairList) x
651    
652      and tfundec #"0" = ?lvar (fn Ulvar v =>      and tfundec #"1" = lvar (fn v =>
653                          ?tvarTkPairList (fn UtvarTkPairList tvks =>                          ?tvarTkPairList (fn UtvarTkPairList tvks =>
654                           ?lexp (fn Ulexp e =>                           ?lexp (fn Ulexp e =>
655                             %Utfundec (v, tvks, e))))                             %Utfundec (v, tvks, e))))

Legend:
Removed from v.217  
changed lines
  Added in v.218

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