diff --git a/CoolUtils.ml b/CoolUtils.ml index bf60d093209ad929114761b1911e999a92b13d3b..d2da1160ba8df39e4deb221b5828d4c0dc8916d9 100644 --- a/CoolUtils.ml +++ b/CoolUtils.ml @@ -42,3 +42,4 @@ let cl_set_agents arr = ignore ( agents := TArray.uniq !agents) +let intlist_of_string str = List.map int_of_string (Str.split (Str.regexp "[ \t,]+") str) diff --git a/CoolUtils.mli b/CoolUtils.mli index 73e7e53eacd0eecd30988334368851013011b1e0..d8cd77144cda90b1efa6c0bd4a8affe88d791e10 100644 --- a/CoolUtils.mli +++ b/CoolUtils.mli @@ -18,3 +18,5 @@ end val cl_get_agents : unit -> int array val cl_set_agents : int array -> unit +val intlist_of_string : string -> int list + diff --git a/coalgcompare.ml b/coalgcompare.ml index 81a9edb0a07c6f3a8e4d3b3fc696aada392fa809..30f86abbf9d86b406f2ccb131778647903ff97d3 100644 --- a/coalgcompare.ml +++ b/coalgcompare.ml @@ -231,9 +231,20 @@ let doGenCL aglist sizelist : unit = List.iter (fun sz -> printformula (genF sz)) sizelist let _ = + let argidx = ref (1) in + let fail str = raise (CoAlgFormula.CoAlgException (str)) in + let getarg () = + if !argidx >= Array.length Sys.argv then fail "Missing argument" else (); + let str = Sys.argv.(!argidx) in + argidx := 1 + !argidx; + str + in if Array.length Sys.argv < 2 then printUsage () else match Sys.argv.(1) with | "K" -> printRawData (doTestK ()) + | "genCL" -> let p1 = getarg () in + let p2 = getarg () in + doGenCL (intlist_of_string p1) (intlist_of_string p2) | _ -> raise (CoAlgFormula.CoAlgException ("Unknown Logic name »" ^ (Sys.argv.(1)) ^ "«"))