(* 
 File: Options.sml

 User-controllable options for the PEPA Workbench.
*)

structure Options :> Options =
struct
  (* The recognised solvers *)
  datatype solver = Maple | Matlab | Mathematica | BCG

  (* gcla - for the moment, always produce BCG output too *)
  (* The user-selected solver (default: Maple) *)
  val solver = ref Maple
  fun setSolver s = solver := s

  (* The `no hashing' flag (default: false) *)
  val nohashing = ref false
  fun setNohashing () = nohashing := true

  (* The `no aggregation' flag (default: false) *)
  val noagg = ref false
  fun setNoAggregation () = noagg := true

  (* Preferred filename extension for the selected solver *)
  fun ext () =
    case !solver of
	Matlab => ".m"
      | Maple  => ".maple"
      | Mathematica  => ".m"
      | BCG  => ".var"

end;
