| summaryrefslogtreecommitdiff | 
path: root/cfg-to-paths
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-07-17 16:16:27 +0200 | 
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-07-17 16:16:27 +0200 | 
| commit | c5caca06e411066828cec2a6008c126d64ffabb6 (patch) | |
| tree | 0ec591283648f273dbb5ef1b5e47303385c21a01 /cfg-to-paths | |
| parent | 580018e419c1c0d6cdc4f47103be2d7c1aad1eb7 (diff) | |
First shot at cfg-to-paths.
Diffstat (limited to 'cfg-to-paths')
| -rw-r--r-- | cfg-to-paths/src/ControlFlow.java | 2 | ||||
| -rw-r--r-- | cfg-to-paths/src/Main.java | 58 | 
2 files changed, 59 insertions, 1 deletions
| diff --git a/cfg-to-paths/src/ControlFlow.java b/cfg-to-paths/src/ControlFlow.java index a0863d8..bca72d5 100644 --- a/cfg-to-paths/src/ControlFlow.java +++ b/cfg-to-paths/src/ControlFlow.java @@ -51,7 +51,7 @@ public class ControlFlow           {              success = handle_add_element(input);           } -         else if (input[0].equals("connect_to")) +         else if (input[0].equals("node_connect"))           {              success = handle_add_connect_to(input);           } diff --git a/cfg-to-paths/src/Main.java b/cfg-to-paths/src/Main.java index f81b22f..f49a357 100644 --- a/cfg-to-paths/src/Main.java +++ b/cfg-to-paths/src/Main.java @@ -1,12 +1,16 @@  /* 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; @@ -43,5 +47,59 @@ public class Main        {           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(); + +      if (tuple_size == 1) +      { +         return; +      } + +      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 = 1; i < tuple_size; ++i) +      { +         out.write("(contains_node " + id + " " + tuple.get(i) + ")\n"); +      }     }  } | 


