| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-07-19 10:29:52 +0200 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-07-19 10:29:52 +0200 |
| commit | 70b40bfb6c032c0dead7069b2178a43e63a8e563 (patch) | |
| tree | fddf894ab2642aad5d6a87b85c00192833c0d64b /instr-to-kodkod/src/Main.java | |
| parent | 1cac6685e5dc334473c304194d5f816b6ecf3469 (diff) | |
First shot at the framework (it does compile).
Diffstat (limited to 'instr-to-kodkod/src/Main.java')
| -rw-r--r-- | instr-to-kodkod/src/Main.java | 118 |
1 files changed, 84 insertions, 34 deletions
diff --git a/instr-to-kodkod/src/Main.java b/instr-to-kodkod/src/Main.java index 41b8ef8..0b1d2e4 100644 --- a/instr-to-kodkod/src/Main.java +++ b/instr-to-kodkod/src/Main.java @@ -6,6 +6,9 @@ import kodkod.engine.config.*; import kodkod.engine.satlab.*; import kodkod.instance.*; + +import java.io.IOException; + public class Main { private static Parameters PARAMETERS; @@ -22,17 +25,80 @@ public class Main return VARIABLE_MANAGER; } - private static Formula get_formula (final VHDLModel model) + private static boolean load_levels () + { + for (final String lvl: PARAMETERS.get_level_files()) + { + try + { + VHDLLevel.add_to_model(MODEL, lvl); + } + catch (final Exception e) + { + System.err.println + ( + "[E] Could not load level file \"" + + lvl + + "\":" + ); + + e.printStackTrace(); + + return false; + } + } + + return true; + } + + private static Formula load_property () { - final Variable w; + final VHDLProperty pro; - w = Variable.unary("w"); + pro = new VHDLProperty(PARAMETERS.get_property_file()); - return - w.join + try + { + return pro.generate_formula(); + } + catch (final IOException e) + { + System.err.println ( - model.get_predicate_as_relation("is_accessed_by") - ).no().forSome(w.oneOf(model.get_type_as_relation("waveform"))); + "[E] Could not load property file \"" + + PARAMETERS.get_property_file() + + "\":" + ); + e.printStackTrace(); + + return null; + } + } + + private static boolean load_models () + { + for (final String mod: PARAMETERS.get_model_files()) + { + try + { + MODEL.parse_file(mod); + } + catch (final Exception e) + { + System.err.println + ( + "[E] Could not load instructions from file \"" + + mod + + "\":" + ); + + e.printStackTrace(); + + return false; + } + } + + return true; } public static void main (final String... args) @@ -65,42 +131,26 @@ public class Main MODEL = new VHDLModel(); /* 1/ Load Levels (Types + predicates) */ - try + if (!load_levels()) { - VHDLLevel.add_to_model - ( - MODEL, - ( - PARAMETERS.get_levels_directory() - + "/structural_level.data" - ) - ); + return; } - catch (final Exception e) - { - System.err.println("[E] Could not load structural level:"); - e.printStackTrace(); + /* 2/ Load Properties (will change 'is_used()' on predicates) */ + /* FIXME? Currently only one property, due to the 'is_used' */ + property = load_property(); + + if (property == null) + { return; } - /* 2/ Load Properties (will change 'is_used()' on predicates) */ - property = get_formula(MODEL); - /* TODO */ - - /* 3/ Generate complementary model according to used predicates. */ - /* TODO */ + /* 3/ Generate complementary model according to used predicates. */ + /* TODO */ /* 4/ Load Model, but only for used predicates and types. */ - try - { - MODEL.parse_file(PARAMETERS.get_model_file()); - } - catch (final Exception e) + if (!load_models()) { - System.err.println("[E] Could not load instructions:"); - e.printStackTrace(); - return; } |


