| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-08-03 15:28:17 +0200 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-08-03 15:28:17 +0200 |
| commit | 90bb7e959496c3a12bebe055f6344b9f06f22809 (patch) | |
| tree | 6635decc697d91c8cba6da9db8959b706ad9842f /cfg-to-paths/src | |
| parent | c5a23ef9d6ab1e89b85016831fc8b2431f68f87f (diff) | |
Improving clarity through better Makefiles.
Diffstat (limited to 'cfg-to-paths/src')
| -rw-r--r-- | cfg-to-paths/src/ControlFlow.java | 142 | ||||
| -rw-r--r-- | cfg-to-paths/src/Main.java | 114 | ||||
| -rw-r--r-- | cfg-to-paths/src/Node.java | 104 | ||||
| -rw-r--r-- | cfg-to-paths/src/Parameters.java | 72 | ||||
| -rw-r--r-- | cfg-to-paths/src/Path.java | 102 | ||||
| -rw-r--r-- | cfg-to-paths/src/QuickParser.java | 58 |
6 files changed, 0 insertions, 592 deletions
diff --git a/cfg-to-paths/src/ControlFlow.java b/cfg-to-paths/src/ControlFlow.java deleted file mode 100644 index 93d20ba..0000000 --- a/cfg-to-paths/src/ControlFlow.java +++ /dev/null @@ -1,142 +0,0 @@ -import java.io.*; - -public class ControlFlow -{ - public static boolean load_file - ( - final String filename - ) - throws FileNotFoundException - { - final QuickParser qp; - String[] input; - boolean success; - - 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("add_element")) - { - success = handle_add_element(input); - } - else if (input[0].equals("node_connect")) - { - success = handle_add_connect_to(input); - } - else if (input[0].equals("is_terminal")) - { - success = handle_is_terminal(input); - } - else - { - continue; - } - - if (!success) - { - System.err.println - ( - "[E] An erroneous instruction was found in file \"" - + filename - + "\"." - ); - - try - { - qp.finalize(); - } - catch (final Exception e) - { - System.err.println("[E] Additionally:"); - e.printStackTrace(); - } - - return false; - } - } - - return true; - } - - private static boolean handle_add_element - ( - final String[] input - ) - { - if (input.length != 3) - { - return false; - } - - if (!input[1].equals("node")) - { - return true; - } - - Node.handle_add_node(input[2]); - - return true; - } - - private static boolean handle_is_terminal - ( - final String[] input - ) - { - if (input.length != 2) - { - return false; - } - - Node.handle_is_terminal(input[1]); - - return true; - } - - private static boolean handle_add_connect_to - ( - final String[] input - ) - { - if ((input.length != 3)) - { - return false; - } - - return Node.handle_connect_to(input[1], input[2]); - } - - private ControlFlow () {} /* Utility Class */ -} diff --git a/cfg-to-paths/src/Main.java b/cfg-to-paths/src/Main.java deleted file mode 100644 index d5cc650..0000000 --- a/cfg-to-paths/src/Main.java +++ /dev/null @@ -1,114 +0,0 @@ -/* FIXME: Finer imports */ -import java.util.*; - -import java.io.*; - -public class Main -{ - private static Parameters PARAMETERS; - private static int path_counter = 0; - - public static void main (final String... args) - { - final FileWriter output; - final Collection<Path> all_paths; - final Collection<List<Node>> all_subpaths; - - PARAMETERS = new Parameters(args); - - if (!PARAMETERS.are_valid()) - { - return; - } - - try - { - ControlFlow.load_file(PARAMETERS.get_model_file()); - } - catch (final Exception e) - { - System.err.println - ( - "[E] Could not load model file \"" - + PARAMETERS.get_model_file() - + "\":" - ); - - e.printStackTrace(); - - return; - } - - all_paths = Path.get_all_paths_from(PARAMETERS.get_root_node()); - - all_subpaths = new ArrayList<List<Node>>(); - - for (final Path p: all_paths) - { - all_subpaths.addAll(p.get_all_subpaths()); - } - - try - { - output = new FileWriter(PARAMETERS.get_output_file()); - - for (final List<Node> tuple: all_subpaths) - { - node_tuple_to_predicates(tuple, output); - } - - output.close(); - } - catch (final Exception e) - { - System.err.println - ( - "[E] Could not write to output file \"" - + PARAMETERS.get_model_file() - + "\":" - ); - - e.printStackTrace(); - - return; - } - } - - private static void node_tuple_to_predicates - ( - final List<Node> tuple, - final FileWriter out - ) - throws IOException - { - final String id; - final int tuple_size; - - tuple_size = tuple.size(); - - id = (PARAMETERS.get_id_prefix() + path_counter); - path_counter += 1; - - out.write("(add_element path " + id + ")\n"); - out.write("(is_path_of " + id + " " + tuple.get(0) + ")\n"); - - for (int i = 0; i < tuple_size; ++i) - { - out.write("(contains_node " + id + " " + tuple.get(i) + ")\n"); - - for (int j = (i + 1); j < tuple_size; ++j) - { - out.write - ( - "(is_before " - + id - + " " - + tuple.get(i) - + " " - + tuple.get(j) - + ")\n" - ); - } - } - } -} diff --git a/cfg-to-paths/src/Node.java b/cfg-to-paths/src/Node.java deleted file mode 100644 index 3b6f2c1..0000000 --- a/cfg-to-paths/src/Node.java +++ /dev/null @@ -1,104 +0,0 @@ -import java.util.*; - -public class Node -{ - /** Static *****************************************************************/ - private static final Map<String, Node> NODE_FROM_STRING; - - static - { - NODE_FROM_STRING = new HashMap<String, Node>(); - } - - public static Node get_node (final String s) - { - return NODE_FROM_STRING.get(s); - } - - public static boolean handle_add_node (final String a) - { - if (!NODE_FROM_STRING.containsKey(a)) - { - NODE_FROM_STRING.put(a, new Node(a)); - } - - return true; - } - - public static boolean handle_is_terminal (final String a) - { - Node n; - - n = NODE_FROM_STRING.get(a); - - if (n == (Node) null) - { - n = new Node(a); - - NODE_FROM_STRING.put(a, n); - } - - n.set_as_terminal(); - - return true; - } - - public static boolean handle_connect_to (final String a, final String b) - { - final Node n_a, n_b; - - n_a = NODE_FROM_STRING.get(a); - n_b = NODE_FROM_STRING.get(b); - - if ((n_a == null) || (n_b == null)) - { - System.err.println - ( - "[E] Causality issue: Nodes \"" - + a - + "\" or \"" - + b - + "\" used but not defined." - ); - - return false; - } - n_a.next_nodes.add(n_b); - - return true; - } - - /** Non-Static *************************************************************/ - private final Collection<Node> next_nodes; - private final String name; - private boolean is_terminal; - - private Node (final String name) - { - this.name = name; - - next_nodes = new ArrayList<Node>(); - is_terminal = false; - } - - private void set_as_terminal () - { - is_terminal = true; - } - - public Collection<Node> next_nodes () - { - return next_nodes; - } - - public boolean is_terminal () - { - return is_terminal; - } - - @Override - public String toString () - { - return name; - } -} diff --git a/cfg-to-paths/src/Parameters.java b/cfg-to-paths/src/Parameters.java deleted file mode 100644 index 91303d2..0000000 --- a/cfg-to-paths/src/Parameters.java +++ /dev/null @@ -1,72 +0,0 @@ -public class Parameters -{ - private final String model_file; - private final String root_node; - private final String id_prefix; - private final String output_file; - private final boolean are_valid; - - public static void print_usage () - { - System.out.println - ( - "Instr-to-kodkod\n" - + "USAGE:\n" - + "\tjava Main <INSTRUCTIONS> <ROOT_NODE> <ID_PREFIX> <OUTPUT_FILE>\n" - + "PARAMETERS:\n" - + "\t<INSTRUCTIONS>\tInstruction file describing the model.\n" - + "\t<ROOT_NODE>\tID of the root node for this DAG.\n" - + "\t<ID_PREFIX>\tPrefix for the IDs of generated paths.\n" - + "\t<OUTPUT_FILE>\tFile in which to output the generated" - + " instructions." - ); - } - - public Parameters (final String... args) - { - if (args.length != 4) - { - print_usage(); - - model_file = new String(); - root_node = new String(); - id_prefix = new String(); - output_file = new String(); - - are_valid = false; - } - else - { - model_file = args[0]; - root_node = args[1]; - id_prefix = args[2]; - output_file = args[3]; - are_valid = true; - } - } - - public String get_model_file () - { - return model_file; - } - - public String get_root_node () - { - return root_node; - } - - public String get_id_prefix () - { - return id_prefix; - } - - public String get_output_file () - { - return output_file; - } - - public boolean are_valid () - { - return are_valid; - } -} diff --git a/cfg-to-paths/src/Path.java b/cfg-to-paths/src/Path.java deleted file mode 100644 index 9e0897f..0000000 --- a/cfg-to-paths/src/Path.java +++ /dev/null @@ -1,102 +0,0 @@ -import java.util.*; - -public class Path -{ - private final ArrayList<Node> nodes; - private final Node last_node; - - public static Collection<Path> get_all_paths_from (final String root) - { - final Collection<Path> result; - final Stack<Path> waiting_list; - final Node root_node; - - root_node = Node.get_node(root); - - if (root_node == null) - { - System.err.println - ( - "[E] Could not find root node \"" - + root - + "\"." - ); - - return null; - } - - result = new ArrayList<Path>(); - waiting_list = new Stack<Path>(); - - waiting_list.push((new Path(Node.get_node(root)))); - - while (!waiting_list.empty()) - { - final Path current_path; - final Node current_node; - final Collection<Node> next_nodes; - - current_path = waiting_list.pop(); - current_node = current_path.last_node; - next_nodes = current_node.next_nodes(); - - if (next_nodes.isEmpty()) - { - result.add(current_path); - } - else - { - if (current_node.is_terminal()) - { - result.add(current_path); - } - for (final Node next: next_nodes) - { - waiting_list.push(current_path.add_step(next)); - } - } - } - - return result; - } - - private Path (final Node start) - { - nodes = new ArrayList<Node>(); - - nodes.add(start); - - last_node = start; - } - - private Path (final ArrayList<Node> nodes, final Node last_node) - { - this.nodes = nodes; - this.last_node = last_node; - - this.nodes.add(last_node); - } - - @SuppressWarnings("unchecked") - /* 'nodes' is an ArrayList<Node>, and so should be its clone. */ - private Path add_step (final Node n) - { - return new Path((ArrayList<Node>) nodes.clone(), n); - } - - public Collection<List<Node>> get_all_subpaths () - { - final Collection<List<Node>> result; - final int path_length; - - result = new ArrayList<List<Node>>(); - path_length = nodes.size(); - - for (int i = 0; i < path_length; ++i) - { - result.add(nodes.subList(i, path_length)); - } - - return result; - } -} diff --git a/cfg-to-paths/src/QuickParser.java b/cfg-to-paths/src/QuickParser.java deleted file mode 100644 index 47cea27..0000000 --- a/cfg-to-paths/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>[a-z_0-9 \"]+)\\)"); - } - 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"); - } -} |


