summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-07-18 17:47:49 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-07-18 17:47:49 +0200
commit64c8b8413db37494f118c7a2f50c186830fb64dc (patch)
tree705edf117c292f751a9f5d5912330c92c94bbf0d /instr-to-kodkod/src/VariableManager.java
parentf9a789dcc77a905849368dcbaaccb894698442e4 (diff)
Starting to link parser with the program.
But apparently I messed up some kodkod logic.
Diffstat (limited to 'instr-to-kodkod/src/VariableManager.java')
-rw-r--r--instr-to-kodkod/src/VariableManager.java57
1 files changed, 57 insertions, 0 deletions
diff --git a/instr-to-kodkod/src/VariableManager.java b/instr-to-kodkod/src/VariableManager.java
new file mode 100644
index 0000000..381a774
--- /dev/null
+++ b/instr-to-kodkod/src/VariableManager.java
@@ -0,0 +1,57 @@
+/* FIXME: finer imports. */
+import java.util.*;
+
+import kodkod.ast.*;
+
+public class VariableManager
+{
+ private final Map<String, Variable> from_string;
+ private final Map<String, String> tags;
+ private final String var_prefix;
+ private int next_id;
+
+ public VariableManager (final String var_prefix)
+ {
+ from_string = new HashMap<String, Variable>();
+ tags = new HashMap<String, String>();
+
+ this.var_prefix = var_prefix;
+ }
+
+ private String generate_new_id ()
+ {
+ final String result;
+
+ result = var_prefix + next_id;
+
+ next_id += 1;
+
+ return result;
+ }
+
+ public Variable get_variable (final String name)
+ {
+ Variable result;
+
+ result = from_string.get(name);
+
+ if (result == null)
+ {
+ result = Variable.unary(name);
+
+ from_string.put(name, result);
+ }
+
+ return result;
+ }
+
+ public Variable generate_new_variable ()
+ {
+ return get_variable(generate_new_id());
+ }
+
+ public void tag_variable (final String name, final String tag)
+ {
+ tags.put(name, tag);
+ }
+}