diff --git a/CoAlgFormula.ml b/CoAlgFormula.ml index 22da4d0550ae61a8e0cb012b4fc117b36c0717ad..489c2178077b7d7d1b6b6ec30276babde7c07226 100644 --- a/CoAlgFormula.ml +++ b/CoAlgFormula.ml @@ -156,12 +156,12 @@ let rec exportFormula_buffer sb f = prio 4 f1 | ALLOWS (s, f1) -> Buffer.add_string sb "<{"; - Buffer.add_string sb (Str.concat "" (L.map string_of_int s)); + Buffer.add_string sb (Str.concat " " (L.map string_of_int s)); Buffer.add_string sb "}>"; prio 4 f1 | ENFORCES (s, f1) -> Buffer.add_string sb "[{"; - Buffer.add_string sb (Str.concat "" (L.map string_of_int s)); + Buffer.add_string sb (Str.concat " " (L.map string_of_int s)); Buffer.add_string sb "}]"; prio 4 f1 | MIN (n, s, f1) -> diff --git a/coalgcompare.ml b/coalgcompare.ml index 30f86abbf9d86b406f2ccb131778647903ff97d3..7c3620574319369642498a5cde710bf71db2b7f9 100644 --- a/coalgcompare.ml +++ b/coalgcompare.ml @@ -43,12 +43,7 @@ let seed = Random.int ((1 lsl 30) - 1) *) -let seed = 209314489 - -let _ = - Random.init seed; - debugMsg ("seed is " ^ (string_of_int (seed))) - +let pseed = ref (209314489) let sortK = Array.make 1 (CoAlgMisc.MultiModalK, [0]) @@ -141,8 +136,13 @@ let solvers = [(solvFact, "fact"); (solvCoalg sortK, "CoAlg")] let printUsage () = - print_endline "Usage: \"coalgcompare <logic>\" does tests where"; - print_endline " <logic> in { K }"; + print_endline "Usage: \"coalgcompare [<flags>] <logic> <logicargs>\" does tests where"; + print_endline " <flags> in { --seed INITIALSEED }"; + print_endline " <logic> in {"; + print_endline " K"; + print_endline " genCL <agents> <list of sizes>"; + print_endline " (e.g. »genCL 1,2,3 4000,42«)"; + print_endline " }"; exit 1 let doTestK () : testresults = @@ -232,15 +232,26 @@ let doGenCL aglist sizelist : unit = let _ = let argidx = ref (1) in - let fail str = raise (CoAlgFormula.CoAlgException (str)) in + let fail str = (prerr_endline str ; printUsage ()) in let getarg () = - if !argidx >= Array.length Sys.argv then fail "Missing argument" else (); + if !argidx >= Array.length Sys.argv then (fail "Error: 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 + let pcmd = ref (getarg ()) in + let rec parseflags () = + match !pcmd with + | "--seed" -> (pseed := (int_of_string (getarg ())); + pcmd := getarg (); + parseflags ()) + | _ -> () + in + parseflags (); + Random.init !pseed; + debugMsg ("seed is " ^ (string_of_int (!pseed))); + let cmd = !pcmd in + match cmd with | "K" -> printRawData (doTestK ()) | "genCL" -> let p1 = getarg () in let p2 = getarg () in