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/branches/primop-branch-3/compiler/Elaborator/print/ppmod.sml
ViewVC logotype

Diff of /sml/branches/primop-branch-3/compiler/Elaborator/print/ppmod.sml

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

revision 3321, Wed May 6 22:40:39 2009 UTC revision 3322, Wed May 6 22:47:35 2009 UTC
# Line 40  Line 40 
40                      -> Modules.entityEnv * StaticEnv.staticEnv * int                      -> Modules.entityEnv * StaticEnv.staticEnv * int
41                      -> unit                      -> unit
42    
43      val ppEPC : PrettyPrintNew.stream
44                  -> EntPathContext.context * int
45                  -> unit
46    
47  end (* signature PPMOD *)  end (* signature PPMOD *)
48    
49    
# Line 132  Line 136 
136                   in (TU.equalTycon                   in (TU.equalTycon
137                        (LU.lookTyc                        (LU.lookTyc
138                           (env,                           (env,
139                            SP.SPATH[IP.last(TU.tycPath tyc)],                            SP.SPATH[IP.last(TU.tycPath tyc) handle InvPath.InvPath => bug "ppmod:is_ppable_Consbinding"],
140                            fn _ => raise Hidden),                            fn _ => raise Hidden),
141                         tyc)                         tyc)
142                         handle Hidden => false)                         handle Hidden => false)
# Line 161  Line 165 
165         pr=ppEntVar}         pr=ppEntVar}
166  *)  *)
167    
168    local
169       open EntPathContext
170    in
171    fun ppEPC ppstrm (context, d) =
172        (case context
173          of EMPTY => pps ppstrm "[<empty>]"
174           | LAYER{locals, context, outer} =>
175               (pps ppstrm "[LAYER ";
176                ppEntPath ppstrm context;
177                ppEPC ppstrm (outer, d);
178                pps ppstrm "]"))
179    end
180    
181  fun ppTycExp ppstrm (tycExp,depth) =  fun ppTycExp ppstrm (tycExp,depth) =
182      if depth <= 0 then pps ppstrm "<tycExp>" else      if depth <= 0 then pps ppstrm "<tycExp>" else
183      case tycExp      case tycExp
# Line 670  Line 687 
687                        pps "type";                        pps "type";
688                        ppFormals ppstrm arity;                        ppFormals ppstrm arity;
689                        pps " ";                        pps " ";
690                        ppSym ppstrm (IP.last path);                        ppSym ppstrm (IP.last path handle InvPath.InvPath => bug "ppmod:ppTycBind");
691                        closeBox())                        closeBox())
692                     | (_, T.DATATYPE{index,family={members,...},...}) =>                     | (_, T.DATATYPE{index,family={members,...},...}) =>
693                       (* ordinary datatype *)                       (* ordinary datatype *)
# Line 682  Line 699 
699                           pps "datatype";                           pps "datatype";
700                           ppFormals ppstrm arity;                           ppFormals ppstrm arity;
701                           pps " ";                           pps " ";
702                           ppSym ppstrm (IP.last path);                           ppSym ppstrm (IP.last path handle InvPath.InvPath => bug "ppmod:ppTycBind 2");
703                           case visdcons                           case visdcons
704                             of nil => pps " = ..."                             of nil => pps " = ..."
705                              | first :: rest =>                              | first :: rest =>
# Line 705  Line 722 
722                        else pps "type";                        else pps "type";
723                        ppFormals ppstrm arity;                        ppFormals ppstrm arity;
724                        pps " ";                        pps " ";
725                        ppSym ppstrm (IP.last path);                        ppSym ppstrm (IP.last path handle IP.InvPath => bug "ppmod:ppTycBind 3");
726                        closeBox()))                        closeBox()))
727                | T.DEFtyc{path,tyfun=T.TYFUN{arity,body},...} =>                | T.DEFtyc{path,tyfun=T.TYFUN{arity,body},...} =>
728                  (openHOVBox 2;                  (openHOVBox 2;
729                   pps "type";                   pps "type";
730                   ppFormals ppstrm arity;                   ppFormals ppstrm arity;
731                   break{nsp=1,offset=0};                   break{nsp=1,offset=0};
732                   ppSym ppstrm (InvPath.last path);                   ppSym ppstrm (InvPath.last path handle InvPath.InvPath => bug "ppmod:ppTycBind 2");
733                   pps " =";                   pps " =";
734                   break{nsp=1,offset=0};                   break{nsp=1,offset=0};
735                   ppType env ppstrm body;                   ppType env ppstrm body;
# Line 738  Line 755 
755                replication tycs are GENtycs after elaboration *)                replication tycs are GENtycs after elaboration *)
756             (openHOVBox 2;             (openHOVBox 2;
757              pps "datatype"; break{nsp=1,offset=0};              pps "datatype"; break{nsp=1,offset=0};
758              ppSym ppstrm (IP.last path);              ppSym ppstrm (IP.last path handle InvPath.InvPath => bug "ppmod:ppReplBind");
759              pps " ="; break{nsp=1,offset=0};              pps " ="; break{nsp=1,offset=0};
760              pps "datatype"; break{nsp=1,offset=0};              pps "datatype"; break{nsp=1,offset=0};
761              ppTycon env ppstrm rightTyc;              ppTycon env ppstrm rightTyc;
# Line 746  Line 763 
763           | (tyc as T.GENtyc{stamp, arity, eq, kind, path, stub}, env) =>           | (tyc as T.GENtyc{stamp, arity, eq, kind, path, stub}, env) =>
764             (openHOVBox 2;             (openHOVBox 2;
765              pps "datatype"; break{nsp=1,offset=0};              pps "datatype"; break{nsp=1,offset=0};
766              ppSym ppstrm (IP.last path);              ppSym ppstrm (IP.last path handle InvPath.InvPath => bug "ppmod:ppReplBind 2");
767              pps " ="; break{nsp=1,offset=0};              pps " ="; break{nsp=1,offset=0};
768              ppTycBind ppstrm (tyc, env);              ppTycBind ppstrm (tyc, env);
769              closeBox())              closeBox())

Legend:
Removed from v.3321  
changed lines
  Added in v.3322

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