summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-08-03 15:28:17 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-08-03 15:28:17 +0200
commit90bb7e959496c3a12bebe055f6344b9f06f22809 (patch)
tree6635decc697d91c8cba6da9db8959b706ad9842f /sol_pretty_printer
parentc5a23ef9d6ab1e89b85016831fc8b2431f68f87f (diff)
Improving clarity through better Makefiles.
Diffstat (limited to 'sol_pretty_printer')
-rw-r--r--sol_pretty_printer/src/Main.java144
-rw-r--r--sol_pretty_printer/src/Models.java248
-rw-r--r--sol_pretty_printer/src/Parameters.java139
-rw-r--r--sol_pretty_printer/src/QuickParser.java58
-rw-r--r--sol_pretty_printer/src/QuickSolParser.java117
-rw-r--r--sol_pretty_printer/src/SolutionItem.java82
-rw-r--r--sol_pretty_printer/src/Solutions.java96
-rw-r--r--sol_pretty_printer/src/Strings.java89
-rw-r--r--sol_pretty_printer/src/Waveforms.java40
9 files changed, 0 insertions, 1013 deletions
diff --git a/sol_pretty_printer/src/Main.java b/sol_pretty_printer/src/Main.java
deleted file mode 100644
index 7a7bfcd..0000000
--- a/sol_pretty_printer/src/Main.java
+++ /dev/null
@@ -1,144 +0,0 @@
-import java.util.List;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-public class Main
-{
- private static Parameters PARAMETERS;
-
- private static boolean load_model_files ()
- {
- for (final String model_file: PARAMETERS.get_model_files())
- {
- try
- {
- if (!Models.load_file(model_file))
- {
- System.err.println
- (
- "[F] Something went wrong while loading the model file \""
- + model_file
- + "\""
- );
-
- return false;
- }
- }
- catch (final FileNotFoundException fnfe)
- {
- System.err.println
- (
- "[F] Could not find model file \""
- + model_file
- + "\""
- );
-
- return false;
- }
- }
-
- return Models.propagate_filenames();
- }
-
- private static boolean load_map_files ()
- {
- for (final String map_file: PARAMETERS.get_map_files())
- {
- try
- {
- if (!Strings.load_file(map_file))
- {
- System.err.println
- (
- "[F] Something went wrong while loading the map file \""
- + map_file
- + "\""
- );
-
- return false;
- }
- }
- catch (final FileNotFoundException fnfe)
- {
- System.err.println
- (
- "[F] Could not find map file \""
- + map_file
- + "\""
- );
-
- return false;
- }
- }
-
- return true;
- }
-
- private static void print_solutions ()
- {
- final List<String> sol_files, pp_files;
- final int solutions_count;
-
- sol_files = PARAMETERS.get_solution_files();
- pp_files = PARAMETERS.get_pretty_print_files();
-
- solutions_count = sol_files.size();
-
- if (solutions_count != pp_files.size())
- {
- System.err.println
- (
- "[F] Not as many solution files as pretty-print files."
- );
-
- return;
- }
-
- for (int i = 0; i < solutions_count; ++i)
- {
- try
- {
- Solutions.print(sol_files.get(i), pp_files.get(i));
- }
- catch (final IOException ioe)
- {
- System.err.println
- (
- "[F] Something went wrong while printing the solution linked to"
- + " \""
- + sol_files.get(i)
- + "\" and \""
- + sol_files.get(i)
- + "\":"
- );
-
- ioe.printStackTrace();
-
- return;
- }
- }
- }
-
- public static void main (final String... args)
- {
- PARAMETERS = new Parameters(args);
-
- if (!PARAMETERS.are_valid())
- {
- return;
- }
-
- if (!load_map_files())
- {
- return;
- }
-
- if (!load_model_files())
- {
- return;
- }
-
- print_solutions();
- }
-}
diff --git a/sol_pretty_printer/src/Models.java b/sol_pretty_printer/src/Models.java
deleted file mode 100644
index 097e76f..0000000
--- a/sol_pretty_printer/src/Models.java
+++ /dev/null
@@ -1,248 +0,0 @@
-import java.util.Map;
-import java.util.HashMap;
-import java.util.Set;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-public class Models
-{
- public static Map<String, String> IS_IN_FILE;
- public static Map<String, String> IS_IN_ARCHITECTURE;
- public static Map<String, String> IS_IN_ENTITY;
-
- static
- {
- IS_IN_FILE = new HashMap<String, String>();
- IS_IN_ARCHITECTURE = new HashMap<String, String>();
- IS_IN_ENTITY = new HashMap<String, String>();
- }
-
- public static boolean load_file (final String filename)
- throws FileNotFoundException
- {
- final QuickParser qp;
- String[] input;
-
- qp = new QuickParser(filename);
-
- for (;;)
- {
- try
- {
- input = qp.parse_line();
-
- if (input == null)
- {
- qp.finalize();
-
- return false;
- }
- else if (input.length == 0)
- {
- qp.finalize();
-
- break;
- }
- }
- catch (final IOException e)
- {
- System.err.println
- (
- "[E] IO error while parsing file \""
- + filename
- + "\":"
- /* FIXME: can be null */
- + e.getMessage()
- );
-
- return false;
- }
-
- if (input[0].equals("set_function"))
- {
- handle_set_function(input);
- }
- else if (input[0].equals("is_waveform_of"))
- {
- handle_is_waveform_of(input);
- }
- else
- {
- handle_parent_predicate(input);
- }
- }
-
- return true;
- }
-
- private static void handle_is_waveform_of
- (
- final String[] input
- )
- {
- if (input.length != 3)
- {
- return;
- }
-
- SolutionItem.handle_is_waveform_of
- (
- input[1],
- input[2]
- );
- }
-
- private static void handle_set_function
- (
- final String[] input
- )
- {
- if (input.length != 4)
- {
- return;
- }
-
- SolutionItem.handle_unary_set_function
- (
- input[1],
- input[2],
- input[3]
- );
- }
-
- private static void handle_parent_predicate
- (
- final String[] input
- )
- {
- if (input.length != 3)
- {
- return;
- }
-
- if (input[0].equals("is_in_file"))
- {
- IS_IN_FILE.put(input[1], input[2]);
- }
- else if (input[0].equals("belongs_to_architecture"))
- {
- IS_IN_ARCHITECTURE.put(input[1], input[2]);
- }
- else if
- (
- input[0].equals("is_port_of")
- || input[0].equals("is_generic_of")
- )
- {
- IS_IN_ENTITY.put(input[1], input[2]);
- }
- }
-
- public static boolean propagate_filenames ()
- {
- for (final Map.Entry<String, String> file_ref: IS_IN_FILE.entrySet())
- {
- final SolutionItem file_si;
-
- file_si =
- SolutionItem.get_item_from_id
- (
- file_ref.getValue()
- );
-
- if (file_si == null)
- {
- System.err.println
- (
- "[E] Can't find any file with id \""
- + file_ref.getValue()
- + "\", yet the item with id \""
- + file_ref.getKey()
- + "\" is supposed to be in it."
- );
-
- return false;
- }
-
- SolutionItem.handle_unary_set_function
- (
- "file",
- file_ref.getKey(),
- file_si.get_function_value("filename")
- );
- }
-
- for
- (
- final Map.Entry<String, String> arch_ref: IS_IN_ARCHITECTURE.entrySet()
- )
- {
- final SolutionItem arch_si;
-
- arch_si =
- SolutionItem.get_item_from_id
- (
- arch_ref.getValue()
- );
-
- if (arch_si == null)
- {
- System.err.println
- (
- "[E] Can't find any architecture with id \""
- + arch_ref.getValue()
- + "\", yet the item with id \""
- + arch_ref.getKey()
- + "\" is supposed to be in it."
- );
-
- return false;
- }
-
- SolutionItem.handle_unary_set_function
- (
- "file",
- arch_ref.getKey(),
- arch_si.get_function_value("file")
- );
- }
-
- for
- (
- final Map.Entry<String, String> entity_ref: IS_IN_ENTITY.entrySet()
- )
- {
- final SolutionItem entity_si;
-
- entity_si =
- SolutionItem.get_item_from_id
- (
- entity_ref.getValue()
- );
-
- if (entity_si == null)
- {
- System.err.println
- (
- "[E] Can't find any entity with id \""
- + entity_ref.getValue()
- + "\", yet the item with id \""
- + entity_ref.getKey()
- + "\" is supposed to be in it."
- );
-
- return false;
- }
-
- SolutionItem.handle_unary_set_function
- (
- "file",
- entity_ref.getKey(),
- entity_si.get_function_value("file")
- );
- }
-
- return true;
- }
-}
diff --git a/sol_pretty_printer/src/Parameters.java b/sol_pretty_printer/src/Parameters.java
deleted file mode 100644
index 92e9074..0000000
--- a/sol_pretty_printer/src/Parameters.java
+++ /dev/null
@@ -1,139 +0,0 @@
-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;
- }
-}
diff --git a/sol_pretty_printer/src/QuickParser.java b/sol_pretty_printer/src/QuickParser.java
deleted file mode 100644
index 19d29e7..0000000
--- a/sol_pretty_printer/src/QuickParser.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/* FIXME: Finer imports */
-import java.io.*;
-import java.util.regex.*;
-import java.util.*;
-
-public class QuickParser
-{
- private static final Pattern instr_pattern;
- private final BufferedReader buffered_reader;
-
- static
- {
- instr_pattern = Pattern.compile("\\((?<list>[^)]+)\\)");
- }
- public QuickParser (final String filename)
- throws FileNotFoundException
- {
- buffered_reader = new BufferedReader(new FileReader(filename));
- }
-
- public void finalize ()
- throws IOException
- {
- buffered_reader.close();
- }
-
- public String[] parse_line ()
- throws IOException
- {
- final List<String> result;
- final Matcher matcher;
- String line;
-
- do
- {
- line = buffered_reader.readLine();
-
- if (line == null)
- {
- return new String[0];
- }
-
- line = line.replaceAll("\\s+"," ");
- }
- while (line.length() < 3 || line.startsWith(";"));
-
- matcher = instr_pattern.matcher(line);
-
- if (!matcher.find())
- {
- System.err.println("[E] Invalid instruction \"" + line + "\"");
-
- return null;
- }
-
- return matcher.group(1).split(" |\t");
- }
-}
diff --git a/sol_pretty_printer/src/QuickSolParser.java b/sol_pretty_printer/src/QuickSolParser.java
deleted file mode 100644
index e162096..0000000
--- a/sol_pretty_printer/src/QuickSolParser.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/* FIXME: Finer imports */
-import java.io.*;
-import java.util.regex.*;
-import java.util.*;
-
-public class QuickSolParser
-{
- private static final Pattern SOL_ITEM_PATTERN;
- private final BufferedReader buffered_reader;
-
- static
- {
- SOL_ITEM_PATTERN = Pattern.compile("\\((?<list>[a-zA-Z_0-9 \t]+)\\)");
- }
- public QuickSolParser (final String filename)
- throws FileNotFoundException
- {
- buffered_reader = new BufferedReader(new FileReader(filename));
- }
-
- public void finalize ()
- throws IOException
- {
- buffered_reader.close();
- }
-
- public List<String[]> next_solution ()
- throws IOException
- {
- final List<String[]> result;
- final Matcher matcher;
- boolean has_started_sol;
- String line;
-
- result = new ArrayList<String[]>();
- has_started_sol = false;
-
- matcher = SOL_ITEM_PATTERN.matcher("");
-
- for (;;)
- {
- line = buffered_reader.readLine();
-
- if (line == null)
- {
- return null;
- }
-
- line = line.replaceAll("\\s+"," ");
-
- if (line.equals(")"))
- {
- if (!has_started_sol)
- {
- throw
- new IOException
- (
- "[E] Incorrect solution structure. (found a \")\" before a"
- + " \"(solution\""
- );
- }
-
- return result;
- }
- else if (line.equals("(solution"))
- {
- if (has_started_sol)
- {
- throw
- new IOException
- (
- "[E] Incorrect solution structure. (found a second"
- + "\"(solution\" before the \")\" ending the previous one."
- );
- }
-
- has_started_sol = true;
- }
- else if (line.startsWith(";") || line.length() < 3)
- {
- continue;
- }
- else
- {
- final String[] item;
-
- matcher.reset(line);
-
- if (!matcher.find())
- {
- throw
- new IOException
- (
- "[E] Incorrect solution structure. \""
- + line
- + "\" does not form a correct solution item."
- );
- }
-
- item = matcher.group(1).split(" |\t");
-
- if (item.length != 3)
- {
- throw
- new IOException
- (
- "[E] Incorrect solution item. \""
- + line
- + "\" should match the form \"(NAME ID TAG)\"."
- );
- }
-
- result.add(item);
- }
- }
- }
-}
diff --git a/sol_pretty_printer/src/SolutionItem.java b/sol_pretty_printer/src/SolutionItem.java
deleted file mode 100644
index f251b62..0000000
--- a/sol_pretty_printer/src/SolutionItem.java
+++ /dev/null
@@ -1,82 +0,0 @@
-import java.util.Map;
-import java.util.HashMap;
-import java.util.Set;
-
-public class SolutionItem
-{
- private static final Map<String, SolutionItem> FROM_ID;
-
- static
- {
- FROM_ID = new HashMap<String, SolutionItem>();
- }
-
- public static void handle_is_waveform_of
- (
- final String wfm_id,
- final String origin_id
- )
- {
- SolutionItem si;
-
- si = FROM_ID.get(origin_id);
-
- if (si == null)
- {
- si = new SolutionItem(origin_id);
-
- FROM_ID.put(origin_id, si);
- }
-
- FROM_ID.put(wfm_id, si);
- }
-
- public static void handle_unary_set_function
- (
- final String function,
- final String id,
- final String value
- )
- {
- SolutionItem si;
-
- si = FROM_ID.get(id);
-
- if (si == null)
- {
- si = new SolutionItem(id);
-
- FROM_ID.put(id, si);
- }
-
- si.function_values.put(function.toLowerCase(), value);
- }
-
- public static SolutionItem get_item_from_id (final String id)
- {
- return FROM_ID.get(id);
- }
-
- /** Non-Static *************************************************************/
- private final Map<String, String> function_values;
-
- private SolutionItem
- (
- final String id
- )
- {
- function_values = new HashMap<String, String>();
-
- function_values.put("ID", id);
- }
-
- public Set<Map.Entry<String, String>> get_functions_data ()
- {
- return function_values.entrySet();
- }
-
- public String get_function_value (final String fun)
- {
- return function_values.get(fun);
- }
-}
diff --git a/sol_pretty_printer/src/Solutions.java b/sol_pretty_printer/src/Solutions.java
deleted file mode 100644
index 38a426a..0000000
--- a/sol_pretty_printer/src/Solutions.java
+++ /dev/null
@@ -1,96 +0,0 @@
-import java.util.Map;
-import java.util.List;
-
-import java.io.IOException;
-
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.nio.charset.StandardCharsets;
-
-
-public class Solutions
-{
- private static String load_file (final String filename)
- throws IOException
- {
- return
- new String
- (
- Files.readAllBytes(Paths.get(filename)),
- StandardCharsets.UTF_8
- );
- }
-
- public static boolean print (final String sol_file, final String pp_file)
- throws IOException
- {
- final String pp_content;
- final QuickSolParser qsp;
- List<String[]> solution;
-
- pp_content = load_file(pp_file);
-
- qsp = new QuickSolParser(sol_file);
-
- for (;;)
- {
- solution = qsp.next_solution();
-
- if (solution == null)
- {
- return true;
- }
-
- if (!handle_solution(solution, pp_content))
- {
- return false;
- }
- }
- }
-
- private static boolean handle_solution
- (
- final List<String[]> solution,
- String pp_content
- )
- {
- for (final String[] sol_data: solution)
- {
- final SolutionItem si;
-
- si = SolutionItem.get_item_from_id(sol_data[1]);
-
- if (si == null)
- {
- System.err.println
- (
- "[E] There is no element in the model with an ID of \""
- + sol_data[1]
- + "\", yet the solution file refers to it."
- );
-
- return false;
- }
-
- for (final Map.Entry<String, String> me: si.get_functions_data())
- {
- pp_content =
- pp_content.replace
- (
- (
- "$"
- + sol_data[0]
- + "."
- + me.getKey().toUpperCase()
- + "$"
- ),
- Strings.get_string_from_id(me.getValue())
- );
- }
- }
-
- System.out.println(pp_content);
-
- return true;
- }
-}
diff --git a/sol_pretty_printer/src/Strings.java b/sol_pretty_printer/src/Strings.java
deleted file mode 100644
index 31f6145..0000000
--- a/sol_pretty_printer/src/Strings.java
+++ /dev/null
@@ -1,89 +0,0 @@
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import java.util.Map;
-import java.util.HashMap;
-
-public class Strings
-{
- private static final Map<String, String> FROM_ID;
-
- static
- {
- FROM_ID = new HashMap<String, String>();
- }
-
- private static void add_mapping (final String id, final String str)
- {
- FROM_ID.put(id, str);
- }
-
- public static String get_string_from_id (final String id)
- {
- return FROM_ID.get(id);
- }
-
- private static boolean handle_mapping_instruction (final String... instr)
- {
- if (instr.length < 3)
- {
- return false;
- }
-
- if (!instr[0].equals("string->instr"))
- {
- return false;
- }
-
- add_mapping(instr[2], instr[1]);
-
- return true;
- }
-
- public static boolean load_file (final String filename)
- throws FileNotFoundException
- {
- final QuickParser qp;
- String[] input;
-
- qp = new QuickParser(filename);
-
- for (;;)
- {
- try
- {
- input = qp.parse_line();
-
- if (input == null)
- {
- qp.finalize();
-
- return false;
- }
- else if (input.length == 0)
- {
- qp.finalize();
-
- break;
- }
- }
- catch (final IOException e)
- {
- System.err.println
- (
- "[E] IO error while parsing file \""
- + filename
- + "\":"
- /* FIXME: can be null */
- + e.getMessage()
- );
-
- return false;
- }
-
- handle_mapping_instruction(input);
- }
-
- return true;
- }
-}
diff --git a/sol_pretty_printer/src/Waveforms.java b/sol_pretty_printer/src/Waveforms.java
deleted file mode 100644
index 3a40869..0000000
--- a/sol_pretty_printer/src/Waveforms.java
+++ /dev/null
@@ -1,40 +0,0 @@
-import java.util.Map;
-import java.util.HashMap;
-
-public class Waveforms
-{
- private static final Map<String, String> FROM_WAVEFORM;
-
- static
- {
- FROM_WAVEFORM = new HashMap<String, String>();
- }
-
- private Waveforms () {} /* Utility class. */
-
- public static void register_map (final String wfm_id, final String elem_id)
- {
- FROM_WAVEFORM.put(wfm_id, elem_id);
- }
-
- public static String get_id_from_waveform_id (final String wfm_id)
- {
- final String result;
-
- result = FROM_WAVEFORM.get(wfm_id);
-
- if (result == null)
- {
- System.err.println
- (
- "[F] There is no element associated with waveform \""
- + wfm_id
- + "\". Is the model complete?"
- );
-
- System.exit(-1);
- }
-
- return result;
- }
-}