summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sol-pretty-printer/src/Parameters.java')
-rw-r--r--sol-pretty-printer/src/Parameters.java139
1 files changed, 139 insertions, 0 deletions
diff --git a/sol-pretty-printer/src/Parameters.java b/sol-pretty-printer/src/Parameters.java
new file mode 100644
index 0000000..92e9074
--- /dev/null
+++ b/sol-pretty-printer/src/Parameters.java
@@ -0,0 +1,139 @@
+import java.util.List;
+import java.util.ArrayList;
+
+public class Parameters
+{
+ private final List<String> sol_files;
+ private final List<String> pp_files;
+ private final List<String> model_files;
+ private final List<String> map_files;
+
+ private final boolean are_valid;
+
+ public static void print_usage ()
+ {
+ System.out.println
+ (
+ "Sol-Pretty-Printer\n"
+ + "USAGE:\n"
+ + "\tjava Main <MODEL_FILE|MAP_FILE>+ <SOL_AND_PP_FILES>+\n"
+ + "PARAMETERS:\n"
+ + "\t- <MODEL_FILE|MAP_FILE>\tInstr. model files, string map files.\n"
+ + "\t- <SOL_AND_PP_FILES>\tOne solution file, followed by one pretty"
+ + " print file."
+ + "NOTES:\n"
+ + "\t- Model files have a \".mod\" extension.\n"
+ + "\t- Solution files have a \".sol\" extension.\n"
+ + "\t- Map files have a \".map\" extension.\n"
+ + "\t- Pretty-print files have a \".pp\" extension.\n"
+ + "\t- Solution files may contain any number of solutions.\n"
+ );
+ }
+
+ public Parameters (final String... args)
+ {
+ boolean has_error, prev_was_a_sol;
+
+ map_files = new ArrayList<String>();
+ model_files = new ArrayList<String>();
+ sol_files = new ArrayList<String>();
+ pp_files = new ArrayList<String>();
+
+ if (args.length < 2)
+ {
+ print_usage();
+
+ are_valid = false;
+
+ return;
+ }
+
+ has_error = false;
+ prev_was_a_sol = false;
+
+ for (int i = 0; i < args.length; ++i)
+ {
+ if (args[i].endsWith(".mod"))
+ {
+ model_files.add(args[i]);
+ }
+ else if (args[i].endsWith(".map"))
+ {
+ map_files.add(args[i]);
+ }
+ else if (args[i].endsWith(".sol"))
+ {
+ sol_files.add(args[i]);
+
+ if (prev_was_a_sol)
+ {
+ System.err.println
+ (
+ "[F] Two solution files followed one another. You must give"
+ + "<SOLUTION_FILE> <PRETTY_PRINT_FILE> pairs as parameters."
+ );
+
+ System.exit(-1);
+ }
+
+ prev_was_a_sol = true;
+ }
+ else if (args[i].endsWith(".pp"))
+ {
+ if (!prev_was_a_sol)
+ {
+ System.err.println
+ (
+ "[F] Two pretty print files followed one another. You must"
+ + " give <SOLUTION_FILE> <PRETTY_PRINT_FILE> pairs as"
+ + " parameters."
+ );
+
+ System.exit(-1);
+ }
+
+ pp_files.add(args[i]);
+
+ prev_was_a_sol = false;
+ }
+ else
+ {
+ System.err.println
+ (
+ "[E] Unknown file type \""
+ + args[i]
+ + "\"."
+ );
+
+ has_error = true;
+ }
+ }
+
+ are_valid = !has_error;
+ }
+
+ public List<String> get_map_files ()
+ {
+ return map_files;
+ }
+
+ public List<String> get_model_files ()
+ {
+ return model_files;
+ }
+
+ public List<String> get_solution_files ()
+ {
+ return sol_files;
+ }
+
+ public List<String> get_pretty_print_files ()
+ {
+ return pp_files;
+ }
+
+ public boolean are_valid ()
+ {
+ return are_valid;
+ }
+}