| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'instr-to-kodkod/src/Parameters.java')
| -rw-r--r-- | instr-to-kodkod/src/Parameters.java | 79 |
1 files changed, 68 insertions, 11 deletions
diff --git a/instr-to-kodkod/src/Parameters.java b/instr-to-kodkod/src/Parameters.java index d3bc0f1..7c80474 100644 --- a/instr-to-kodkod/src/Parameters.java +++ b/instr-to-kodkod/src/Parameters.java @@ -7,7 +7,8 @@ public class Parameters private final List<String> model_files; private final List<String> map_files; private final String property_file; - private final String var_prefix; + private final String output_file; + private final boolean be_verbose; private final boolean are_valid; @@ -17,12 +18,14 @@ public class Parameters ( "Instr-to-kodkod\n" + "USAGE:\n" - + "\tjava Main <VAR_PREFIX> <FILES>+\n" + + "\tjava Main <OUTPUT_FILE> <FILES|OPTIONS>+\n" + "PARAMETERS:\n" - + "\t- <VAR_PREFIX>\tPrefix for anonymous variables (e.g. \"_anon_\").\n" + + "\t- <OUTPUT_FILE>\tFile to write the solutions in.\n" + "\t- <FILES>\tList of files to be loaded.\n" + + "OPTIONS:\n" + + "\t- -v|--verbose\tPrint informative messages to STDOUT.\n" + "NOTES:\n" - + "\t- One, single, property file MUST be in <FILES>.\n" + + "\t- Exactly one property file must be in <FILES>.\n" + "\t- Property files have a \".pro\" extension.\n" + "\t- Model files have a \".mod\" extension.\n" + "\t- Level files have a \".lvl\" extension.\n" @@ -31,23 +34,26 @@ public class Parameters ); } - public Parameters (String... args) + public Parameters (final String... args) { - boolean has_pro_file, has_error; + boolean has_pro_file, has_error, should_be_verbose; String prop_file; level_files = new ArrayList<String>(); model_files = new ArrayList<String>(); map_files = new ArrayList<String>(); + should_be_verbose = false; + if (args.length < 2) { print_usage(); property_file = new String(); - var_prefix = new String(); + output_file = new String(); are_valid = false; + be_verbose = false; return; } @@ -55,7 +61,48 @@ public class Parameters has_pro_file = false; has_error = false; - var_prefix = args[0]; + output_file = args[0]; + + if + ( + (output_file.equals("-v") || output_file.equals("--verbose")) + /* || ... */ + ) + { + print_usage(); + + System.err.println + ( + "[F] An option was found in lieu of the output file." + ); + + System.exit(-1); + } + + if + ( + output_file.endsWith(".lvl") + || output_file.endsWith(".mod") + || output_file.endsWith(".map") + || output_file.endsWith(".pro") + ) + { + print_usage(); + + System.err.println + ( + "[F] The output file has an extension that could be used in an" + + " input file. It is most likely that you did not indicate an" + + " output file, meaning that one of the input files was about to" + + " be written over. So likely, in fact, that we'll abort here. The" + + " output file you indicated was \"" + + output_file + + "\"." + ); + + System.exit(-1); + } + prop_file = new String(); for (int i = 1; i < args.length; ++i) @@ -65,7 +112,7 @@ public class Parameters level_files.add(args[i]); } else if (args[i].endsWith(".mod")) - { + { model_files.add(args[i]); } else if (args[i].endsWith(".map")) @@ -93,6 +140,10 @@ public class Parameters prop_file = args[i]; } } + else if (output_file.equals("-v") || output_file.equals("--verbose")) + { + should_be_verbose = true; + } else { System.err.println @@ -115,6 +166,7 @@ public class Parameters has_error = true; } + be_verbose = should_be_verbose; are_valid = !has_error; } @@ -138,9 +190,14 @@ public class Parameters return property_file; } - public String get_variables_prefix () + public String get_output_file () + { + return output_file; + } + + public boolean be_verbose () { - return var_prefix; + return be_verbose; } public boolean are_valid () |


