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/smlfile/smlinfo.sml
ViewVC logotype

Diff of /sml/trunk/src/cm/smlfile/smlinfo.sml

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

revision 703, Thu Sep 7 05:43:23 2000 UTC revision 710, Tue Oct 17 08:21:09 2000 UTC
# Line 275  Line 275 
275                      val _ = if noerrors orelse quiet then ()                      val _ = if noerrors orelse quiet then ()
276                              else Say.vsay ["[parsing ",                              else Say.vsay ["[parsing ",
277                                             SrcPath.descr sourcepath, "]\n"]                                             SrcPath.descr sourcepath, "]\n"]
278                        (* The logic is a bit tricky here:
279                         *  If "noerrors" is set we want to suppress error
280                         *  messages from the parser.  This is done using
281                         *  a dummy error consumer that does nothing.  However,
282                         *  if we do that we get a "source" object that has
283                         *  a dummy error consumer hard-wired into it.  As a
284                         *  result we also don't see error messages from the
285                         *  elaborator in this case -- bad.  So we make
286                         *  TWO "source" objects that share the same input
287                         *  stream but used different error consumers. *)
288                        val (source, parse_source) = let
289                      val normal_ec = #errcons gp                      val normal_ec = #errcons gp
290                            val source =
291                                Source.newSource (SrcPath.osstring' sourcepath,
292                                                  1, stream, false, normal_ec)
293                        in
294                            if noerrors then let
295                      val dummy_ec = { consumer = fn (x: string) => (),                      val dummy_ec = { consumer = fn (x: string) => (),
296                                       linewidth = #linewidth normal_ec,                                       linewidth = #linewidth normal_ec,
297                                       flush = fn () => () }                                       flush = fn () => () }
298                      val ec = if noerrors then dummy_ec else normal_ec                              val parse_source =
                     val source =  
299                          Source.newSource (SrcPath.osstring' sourcepath,                          Source.newSource (SrcPath.osstring' sourcepath,
300                                            1, stream, false, ec)                                                    1, stream, false, dummy_ec)
301                            in
302                                (source, parse_source)
303                            end
304                            else (source, source)
305                        end
306                  in                  in
307                      (SF.parse source, source)                      (SF.parse parse_source, source)
308                  end                  end
309                  fun openIt () = TextIO.openIn (SrcPath.osstring sourcepath)                  fun openIt () = TextIO.openIn (SrcPath.osstring sourcepath)
310                  val pto =                  val pto =

Legend:
Removed from v.703  
changed lines
  Added in v.710

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