Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/vis15/src/compiler/driver/main.sml
ViewVC logotype

Diff of /branches/vis15/src/compiler/driver/main.sml

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

revision 3394, Tue Nov 10 17:42:19 2015 UTC revision 3411, Thu Nov 12 03:42:25 2015 UTC
# Line 61  Line 61 
61              ()              ()
62            end            end
63    
64      fun doFile (target : TargetUtil.target_desc, filename) = let      fun doFile (target : Target.desc, filename) = let
65            val baseName = (case OS.Path.splitBaseExt filename            val baseName = (case OS.Path.splitBaseExt filename
66                   of {base, ext=SOME "diderot"} => base                   of {base, ext=SOME "diderot"} => base
67                    | _ => (errnl "expected diderot file"; quitWithError filename)                    | _ => (errnl "expected diderot file"; quitWithError filename)
# Line 80  Line 80 
80  (* TODO *)()  (* TODO *)()
81            end            end
82    
83      fun usage cmd = TextIO.output(TextIO.stdErr, Options.usage cmd)      fun usage (cmd, long) = TextIO.output(TextIO.stdErr, Options.usage (cmd, long))
84    
85      fun handleExn ERROR = OS.Process.failure      fun handleExn ERROR = OS.Process.failure
86        | handleExn exn = (        | handleExn exn = (
# Line 92  Line 92 
92            OS.Process.failure)            OS.Process.failure)
93    
94      fun main (name: string, args: string list) = let      fun main (name: string, args: string list) = let
95            val {help, version, log, target, defs, file} =            val {help, version, target, defs, file} =
96                  (Options.parseCmdLine args)                  (Options.parseCmdLine args)
97                    handle Options.Usage msg => (                    handle Options.Usage msg => (
98                      err(concat[msg, "\n"]);                      err(concat[msg, "\n"]);
99                      usage name;                      usage (name, false);
100                      OS.Process.exit OS.Process.failure)                      OS.Process.exit OS.Process.failure)
101            in            in
102              if help              case help
103                then (usage name; OS.Process.success)               of SOME long => (usage (name, long); OS.Process.success)
104              else if version                | NONE => if version
105                then (print(Version.message ^ "\n"); OS.Process.success)                then (print(Version.message ^ "\n"); OS.Process.success)
106                else let                else let
107                  val {base, ...} = OS.Path.splitBaseExt file                  val {base, ...} = OS.Path.splitBaseExt file
108                  in                  in
109                  (* set the default real type *)                  (* set the default real type *)
110                    if #double target then (RawTypes.realTy := RawTypes.RT_Double) else ();                    if #double target then (RawTypes.realTy := RawTypes.RT_Double) else ();
111                    if CmdLineInputs.initFromArgs defs                        if CmdLineConstants.initFromArgs defs
112                      then (                      then (
113                        if log then Log.init(base ^ ".log") else ();                            if Controls.get Ctl.enableLog
114                                then Log.init(base ^ ".log")
115                                else ();
116                        PhaseTimer.withTimer Timers.timeCompiler                        PhaseTimer.withTimer Timers.timeCompiler
117                          doFile (target, file);                          doFile (target, file);
118                        Stats.report ();                        Stats.report ();
# Line 119  Line 121 
121                      ) handle exn => handleExn exn                      ) handle exn => handleExn exn
122                      else (err "invalid command-line inputs\n"; OS.Process.failure)                      else (err "invalid command-line inputs\n"; OS.Process.failure)
123                  end                  end
124                (* end case *)
125            end            end
126    
127    end    end

Legend:
Removed from v.3394  
changed lines
  Added in v.3411

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