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/cm/parse/parse.sml
ViewVC logotype

Diff of /sml/trunk/src/cm/parse/parse.sml

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

revision 459, Fri Oct 29 06:22:25 1999 UTC revision 493, Mon Nov 29 07:13:22 1999 UTC
# Line 11  Line 11 
11          GeneralParams.param -> bool option ->          GeneralParams.param -> bool option ->
12          SrcPath.t -> (CMSemant.group * GeneralParams.info) option          SrcPath.t -> (CMSemant.group * GeneralParams.info) option
13      val reset : unit -> unit      val reset : unit -> unit
14      val listLibs : unit -> unit      val listLibs : unit -> SrcPath.t list
15      val dismissLib : SrcPath.t -> unit      val dismissLib : SrcPath.t -> unit
16  end  end
17    
# Line 36  Line 36 
36      val sgc = ref (SrcPathMap.empty: CMSemant.group SrcPathMap.map)      val sgc = ref (SrcPathMap.empty: CMSemant.group SrcPathMap.map)
37      fun reset () = sgc := SrcPathMap.empty      fun reset () = sgc := SrcPathMap.empty
38    
39      fun listLibs () = let      fun listLibs () = map #1 (SrcPathMap.listItemsi (!sgc))
         fun show (sp, _) =  
             Say.say [SrcPath.descr sp, "\n"]  
     in  
         SrcPathMap.appi show (!sgc)  
     end  
40    
41      fun dismissLib l =      fun dismissLib l =
42          (sgc := #1 (SrcPathMap.remove (!sgc, l)))          (sgc := #1 (SrcPathMap.remove (!sgc, l)))
# Line 136  Line 131 
131                              (sgc := SrcPathMap.insert (!sgc, gpath, g);                              (sgc := SrcPathMap.insert (!sgc, gpath, g);
132                               Say.vsay ["[library ", SrcPath.descr gpath,                               Say.vsay ["[library ", SrcPath.descr gpath,
133                                         " is stable]\n"];                                         " is stable]\n"];
134                                 SrcPathSet.app SmlInfo.cleanGroup
135                                                (Reachable.groupsOf g);
136                               SOME g)                               SOME g)
137                  end                  end
138              in              in
# Line 212  Line 209 
209                          (error (p1, p2) (General.exnMessage exn);                          (error (p1, p2) (General.exnMessage exn);
210                           CMSemant.emptyGroup group)                           CMSemant.emptyGroup group)
211    
212                      fun doMember (p, p1, p2, c) =                      fun doMember ({ name, mkpath }, p1, p2, c) =
213                          CMSemant.member (ginfo, recParse (p1, p2))                          CMSemant.member (ginfo, recParse (p1, p2))
214                                   { sourcepath = p, class = c,                            { name = name, mkpath = mkpath,
215                                     group = (group, (p1, p2)) }                              class = c, group = (group, (p1, p2)),
216                                context = context }
217    
218                      (* Build the argument for the lexer; the lexer's local                      (* Build the argument for the lexer; the lexer's local
219                       * state is encapsulated here to make sure the parser                       * state is encapsulated here to make sure the parser
# Line 325  Line 323 
323                  case pro of                  case pro of
324                      NONE => NONE                      NONE => NONE
325                    | SOME pr =>                    | SOME pr =>
326                            (SmlInfo.cleanGroup group;
327                          if stabthis then stabilize pr                          if stabthis then stabilize pr
328                          else SOME pr                           else SOME pr)
329              end              end
330              handle LrParser.ParseError => NONE              handle LrParser.ParseError => NONE
331          in          in
# Line 334  Line 333 
333              else normal_processing ()              else normal_processing ()
334          end          end
335      in      in
336            SmlInfo.newGeneration ();
337          case mparse (group, [], ref false, stabthis, NONE) of          case mparse (group, [], ref false, stabthis, NONE) of
338              NONE => NONE              NONE => NONE
339            | SOME g => let            | SOME g => SOME (g, ginfo)
                 val reach1 = Reachable.reachable g  
                 val reach2 = Reachable.reachable' (pending ())  
                 val reach = SrcPathSet.union (reach1, reach2)  
             in  
                 SmlInfo.forgetAllBut reach;  
                 SOME (g, ginfo)  
             end  
340      end      end
341  end  end

Legend:
Removed from v.459  
changed lines
  Added in v.493

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