diff options
Diffstat (limited to 'src/settings.sml')
-rw-r--r-- | src/settings.sml | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/settings.sml b/src/settings.sml index 845683a7..ed3d1f14 100644 --- a/src/settings.sml +++ b/src/settings.sml @@ -274,4 +274,26 @@ val debug = ref false fun setDebug b = debug := b fun getDebug () = !debug +type dbms = { + name : string, + header : string, + link : string, + global_init : Print.PD.pp_desc, + init : string * (string * int) list -> Print.PD.pp_desc +} + +val dbmses = ref ([] : dbms list) +val curDb = ref ({name = "", + header = "", + link = "", + global_init = Print.box [], + init = fn _ => Print.box []} : dbms) + +fun addDbms v = dbmses := v :: !dbmses +fun setDbms s = + case List.find (fn db => #name db = s) (!dbmses) of + NONE => raise Fail ("Unknown DBMS " ^ s) + | SOME db => curDb := db +fun currentDbms () = !curDb + end |