diff options
author | 2010-11-03 02:11:29 +0000 | |
---|---|---|
committer | 2010-11-03 02:11:29 +0000 | |
commit | 70ce39a7b9ecec3232841e9689f7d5622a9c13f1 (patch) | |
tree | 26caf38391b074654101a59396b65d9184f59062 /Source/ModelViewer/DafnyProvider.cs | |
parent | 930c874ea09664128d62adda16d0200d930b49cc (diff) |
Rework canonical name computation
Sort fields inteligently (allow for override as well)
Diffstat (limited to 'Source/ModelViewer/DafnyProvider.cs')
-rw-r--r-- | Source/ModelViewer/DafnyProvider.cs | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/Source/ModelViewer/DafnyProvider.cs b/Source/ModelViewer/DafnyProvider.cs index cf599dc1..fe2fd8a3 100644 --- a/Source/ModelViewer/DafnyProvider.cs +++ b/Source/ModelViewer/DafnyProvider.cs @@ -30,6 +30,11 @@ namespace Microsoft.Boogie.ModelViewer.Dafny // Namer.ComputeCanonicalNames(vm.states.Select(s => s.namer));
return dm.states;
}
+
+ public IEnumerable<string> SortFields(IEnumerable<string> fields)
+ {
+ return Namer.DefaultSortFields(fields);
+ }
}
class DafnyModel
@@ -189,18 +194,19 @@ namespace Microsoft.Boogie.ModelViewer.Dafny return elt;
}
}
-
- class StateNode : IState
+
+ class StateNode : IState, INamerCallbacks
{
internal readonly Model.CapturedState state;
readonly string name;
internal readonly DafnyModel dm;
internal readonly List<VariableNode> vars = new List<VariableNode>();
- internal readonly Namer namer = new Namer();
+ internal readonly Namer namer;
internal readonly int index;
public StateNode(int i, DafnyModel parent, Model.CapturedState s)
{
+ namer = new Namer(this);
dm = parent;
state = s;
index = i;
@@ -248,7 +254,12 @@ namespace Microsoft.Boogie.ModelViewer.Dafny if (e is Model.Number || e is Model.Boolean)
namer.AddName(e, new EdgeName(e.ToString()));
}
- }
+ }
+
+ public string CanonicalBaseName(Model.Element elt, IEdgeName edgeName, int stateIdx)
+ {
+ return Namer.DefaultCanonicalBaseName(elt, edgeName, stateIdx);
+ }
internal void ComputeNames()
{
|