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 380, Fri Jul 9 05:22:18 1999 UTC revision 397, Fri Aug 13 07:06:52 1999 UTC
# Line 142  Line 142 
142                       * data structures. *)                       * data structures. *)
143                      fun error r m =                      fun error r m =
144                          EM.error source r EM.COMPLAIN m EM.nullErrorBody                          EM.error source r EM.COMPLAIN m EM.nullErrorBody
145                        fun obsolete r =
146                            if EnvConfig.getSet StdConfig.warn_obsolete NONE then
147                                EM.error source r EM.WARN
148                                  "old-style operator (obsolete)" EM.nullErrorBody
149                            else ()
150    
151                      (* recParse returns a group (not an option).                      (* recParse returns a group (not an option).
152                       * This function is used to parse sub-groups.                       * This function is used to parse sub-groups.
# Line 245  Line 250 
250                            getS = getS,                            getS = getS,
251                            handleEof = handleEof,                            handleEof = handleEof,
252                            newline = newline,                            newline = newline,
253                              obsolete = obsolete,
254                            error = error,                            error = error,
255                            sync = sync}                            sync = sync}
256                      end                      end
# Line 256  Line 262 
262                      val (parseResult, _) =                      val (parseResult, _) =
263                          CMParse.parse (lookAhead, tokenStream,                          CMParse.parse (lookAhead, tokenStream,
264                                         fn (s,p1,p2) => error (p1, p2) s,                                         fn (s,p1,p2) => error (p1, p2) s,
265                                         (group, context, error,                                         (group, context, obsolete, error,
266                                          doMember, curlib, ginfo))                                          doMember, curlib, ginfo))
267                  in                  in
268                      if !(#anyErrors source) then NONE                      if !(#anyErrors source) then NONE
# Line 293  Line 299 
299      in      in
300          case mparse (group, [], ref false, stabthis, NONE) of          case mparse (group, [], ref false, stabthis, NONE) of
301              NONE => NONE              NONE => NONE
302            | SOME g =>            | SOME g => let
                 if CheckSharing.check (g, ginfo) then  
                     let  
303                          val reach1 = Reachable.reachable g                          val reach1 = Reachable.reachable g
304                          val reach2 = Reachable.reachable' (pending ())                          val reach2 = Reachable.reachable' (pending ())
305                          val reach = SrcPathSet.union (reach1, reach2)                          val reach = SrcPathSet.union (reach1, reach2)
# Line 303  Line 307 
307                          SmlInfo.forgetAllBut reach;                          SmlInfo.forgetAllBut reach;
308                          SOME (g, ginfo)                          SOME (g, ginfo)
309                      end                      end
                 else NONE  
310      end      end
311  end  end

Legend:
Removed from v.380  
changed lines
  Added in v.397

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