| summaryrefslogtreecommitdiff | 
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-07-18 17:47:49 +0200 | 
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-07-18 17:47:49 +0200 | 
| commit | 64c8b8413db37494f118c7a2f50c186830fb64dc (patch) | |
| tree | 705edf117c292f751a9f5d5912330c92c94bbf0d /instr-to-kodkod/src/VariableManager.java | |
| parent | f9a789dcc77a905849368dcbaaccb894698442e4 (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.java | 57 | 
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); +   } +} | 


